Sunday, November 25, 2012

patching fusion applications through adpatch

adpatch In fusion applications

we can user fapmgr.sh or adpatch or opatch to patching the artifacts of the fusion applications
       Oracle Fusion Applications AutoPatch is used to apply patches that contain fixes or updates to applications database artifacts..
The database artifacts which supported by the ad patch are 
[1]Applications Seed Data (XML,XLF files)
[2]Applications Database schema changes (SXML files)
[3]PL/SQL objects (PDQ, PCB files)
[4]SQL scripts

In fusion applications adpatch is located in two locations 

[1]$ATGPF_HOME/lcm/ad/bin/adpatch.sh [Oracle Fusion Middleware Extensions for Applications (Applications Core)]
[2]$AD_TOP/bin/adpatch.sh [Oracle Fusion Applications Patch Manager]

[1]ATGPF_HOME  adpatch will be located  under your base directory /basedir/products/fusionapps/atgpf/lcm/ad/bin before applying the auto patch we need to conform what ad patch we need to user

[2]AD_TOP  adpatch will be located under the/basedir/products/fusionapps/applications/lcm/ad

Using ATGPF adpatch

Step 1 
adpatch cn be applied in interactive mode and non interactive mode .. to start the adpatch we need to navigate to the $ATGPF_HOME/lcm/ad/bin/ and run the adpatch.sh or you can apply in non- interactive  mode

 To apply adpatch in non interactive Mode

  $ATGPF_HOME/lcm/ad/bin/adpatch.sh \
  patchtop=<location of the patch directory where the patch is stored > \
  driver=<patch driver> \
  interactive=No \
  workers=<no of workers assigned for patching>
  defaultsfile=$ATGPF_HOME/admin/TWO_TASK/defaults.txt \
  logfile=adpatch_<patch_number>.log wait_on_failed_job=yes

Legends

defaultsfile=The file which will be created automatically during the provisioning of the fusion applications and have the information about the particular environment.The file will be located at
$ATGPF_HOME/admin/<database_sid>/defaults.txt


To apply adpatch in interactive mode

start the adpatch from the patch directory and 
[oracle@fah 14794856]$ /u01/oracle/fa/products/fusionapps/atgpf/lcm/ad/bin/adpatch.sh

Your default directory is '/u01/oracle/fa/products/fusionapps/atgpf'.
Is this the correct APPL_TOP [Yes] ? yes 

Provide the appl_top for the atgpf_home .. hit yes to go with the default

Filename [adpatch.log] : 14794856.log     

provide the log file for the adpatch the default location of the logfile will be $ATGPF_HOME/admin/FUSION/log/
*.log = It is the main log file which contains all the details of the particular patch
*.lgi  = This file contains informational messages from your AutoPatch session

Please enter the batchsize [1000] :              --[hit enter to go with default batch size]

In your ORACLE database '<oracle_sid>'
using ORACLE executables in '/u01/oracle/fa/products/dbclient'.
Is this the correct database [Yes] ? --Check the correct database and hit yes

The default directory is [/u01/oracle/fa/Patch/14794856] :
The default directory where the Patch had been unzipped we need to specify until the patch number

Please enter the name of your AutoPatch driver file :  
Enter the driver name starting with u<patch_number>.drv wirh will be located under the patch directory

Two table are created during the patch process 
[1]AD_UTIL_PARAMS 
[2]FND_INSTALL_PROCESS 
Fnd_install_process the table which holds the patch session details which is created during the patch process if  any failed session of the patching is pending then it asks about the dropping the  previous FND_INSTALL_PROCESSES Table.. The table is created during the patch process and then droped after completing the patching session successful

Creating FND_INSTALL_PROCESSES table...
The table FND_INSTALL_PROCESSES created by AD Administration already exists.If you are sure you do not want to keep theinformation from the failed
AD Administration session,you may drop FND_INSTALL_PROCESSES table and
continue with AutoPatch.If you choose not to drop FND_INSTALL_PROCESSES table, AutoPatch cannot continue successfully.
Drop FND_INSTALL_PROCESSES table [No] ? 
If you are continuing from the failed patch session then  drop the Previous Fnd_install_process table and create the new table

Creating the AD_UTIL_PARAMS table...
Table AD_UTIL_PARAMS already exists, so dropping the table and recreating it.

SQL> desc AD_UTIL_PARAMS;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 WORKER_ID                                 NOT NULL NUMBER
 UTILITY_NAME                              NOT NULL VARCHAR2(100)
 TASK                                      NOT NULL VARCHAR2(30)
 STATUS                                    NOT NULL VARCHAR2(100)
 ARGUMENTS                                 NOT NULL VARCHAR2(2000)
 UTILITY_STATUS                            NOT NULL NUMBER
 SYMBOLIC_ARGUMENTS                        NOT NULL VARCHAR2(2560)

Ad_util_params is used to store the worker status while patch is in progress and once the patch is completed it will be purged ..when patch start the Process  it will drop the previous Ad_util_params and the recreate the table...
At the end of the patch process it will purge the ad_util_param table..

Timing report 
Timing report is generate with the execution time for each worker and all the actions of the script the timing report will be  located at the $ATGPF_HOME/admin/FUSION/log
 Jobdependencies
This file lists the jobs to be run After each job,
 this file contains the list of jobs which should run before starting the job's the dependencies of the  job's is listed in this file ..
jobdependencies.txt will  be located at $ATGPF_HOME/admin/FUSION/log

Incompatible Patch
when we try to apply the patch in the wrong oracle home it gives the message in the log file and the ad patch will fail with the below error massage..

[2012-11-22T17:06:39.956+04:00] [apps] [ERROR] [] [AutoPatch] [[Error: Incompatible Patch.Cannot apply ATGPF patch on FA_ORACLE_HOME]]



Sunday, November 11, 2012

ERROR OGG-00446 SQL operation failed: Inserting into checkpoint table


ERROR   OGG-00446  SQL operation failed: Inserting into checkpoint table,

When we are creating the Replicate  we need to create the checkpoint table which stores  metadata of the  replicates transaction details in it for the specified time..
The checkpoint table store the information from the last trail files records  which is inserted int to  the database.. If the replicated goes to improper shutdown or normal stop of the replicate then when we start the replicate... It refers to the checkpoint table for the last transactions in database and and according to it Replicate will write the records in the database
A checkpoint table can be created as common for more than one replicate's to store the metadata of the replicate 
Checkpoint table can be create in any schema as per your wish .. but it is recommend to create   in the gg schema 
we can use the GLOBALS parameter to create the default checkpoint for all the Replicates .. if we use the GLOBALS we no need to specify the checkpoint table at that time of add the replicate .. it will pick the default Checkpoint table from the GLOBALS parameter

To Create the check point table

Step 1

Log-in with the ggsci prompt and proceed with the edit parameter GLOBALS for creating the default checkpoint table

[oratest@fah gg]$ ./ggsci

GGSCI (fah) 2> edit params ./GLOBALS

Edit the GLOBALS parameter and add the checkpoint table in it format to add the checkpoint table is checkpoint table <table_name>
checkpointtable <table_name>
Now a file will be create as GLOBALS on the gg_home with the inserted recorded of table_name
Step 2

we need to login into the database for adding the checkpoint table

If you have set the Env variables like ORACLE_SID,ORACLE_HOME in replicate then you can issue the command

GGSCI (fah) 4> dblogin userid <username>,password <password>
Successfully logged into database.

If the env variables are not set then we have to issue 

GGSCI (fah) 8> DBLOGIN USERID  <username>@<hostname>:<database_port>/<database service name>,PASSWORD < password 
>
Successfully logged into database.

Step 3

Add the checkpoint table in  the database

GGSCI (fah) 17> add checkpointtable <table_name>

Successfully created checkpoint table <table_name>.

 A new table will be created in the default gg schema with the table_name which is specified 

Step 4

Add the replicate with the checkpoint table 

GGSCI (fah) 19> add replicat <replicte_name> exttrail ./dirdat/22 checkpointtable <table_name>
REPLICAT added.

GGSCI (fah) 20> start <replicate_name>

Sending START request to MANAGER ...
REPLICAT <replicate_name> starting

Step 5

Check the stats of the particular replicate

GGSCI (fah) 30> stats <replicte_name>

Sending STATS request to REPLICAT <replicate_name> ...

Start of Statistics at 2012-11-10 13:09:55. 

*** Total statistics since 2012-11-10 13:08:37 ***
        Total inserts                            14666.00
        Total updates                                0.00
        Total deletes                                0.00
        Total discards                            2249.00
        Total operations                         14666.00

Step 6

Check the checkpoint table which holds the checkpoint for the last transaction 


SQL> select * from GGSCHKPT;

GROUP_NA  GROUP_KEY      SEQNO        RBA AUDIT_TS                      CREATE_TS LAST_UPDA CURRENT_DIR
-------- ---------- ---------- ---------- ----------------------------- --------- --------- ------------------------------------------------------------
TRANR1      5870815         29    6411875 2012-11-11 00:05:29.758380    10-NOV-12 11-NOV-12 /u06/app/oracle/product/gg

It stores the sequence number and last RBA and time stamp in it

and undet the 
Note : if you are not specifying  the the checkpoint table a the time of creation of replicate then you will get the below error message

ERROR   OGG-00446  SQL operation failed: Inserting into checkpoint table GGSCHKPT, group TRANR1, SQL <INSERT INTO "GGSCHKPT" (group_name, group_key, current_dir, create_ts, last_update_ts,  seqno, rba, audit_ts) VALUES (:group_name, :group_key, :current_dir, :create_ts, sysdate, :seqno, :rba, :audit_t> SQL Error 942: ORA-00942: table or view does not exist

For Solving this error we need to create the checkpoint table 






Tuesday, November 6, 2012

Configuring SSL [HTTPS] on OHS in fusion applications

Configuring SSL  [HTTPS]  on OHS in  fusion applications with Open ssl and oracle  wallet manager

To enable the fusion applications with the https[encrypted connection between the client and the server] we need to have the vendor ssl [root ca] certificate[ like verisign..etc...] or we can create our own Root certificate by using Open SSL 
once the root ca is created  we need to authorize the usr certificate with the root ca and Place the root ca and user certificate  in the wallet  and link the wallet to the OHS in the fusion application to enable the https..

First we need to create a new empty wallet with the certificate request 

Creating Wallet using OWM[oracle wallet manager]

For creating the empty wallet we can using the GUI tool know as the OWM or Orapki in the command line 
Here we are using OWM for creating the oracle wallet

The location of the OWM in the fusion applications is /base path/products/dbclinet/bin/owm

Step1
Start the OWM 


Step 2

Select wallet and click new to create a new wallet 


Step 3

Click Yes to proceed to choose the location for creating the wallet 


Step4

There are two type's of wallet we can create 
[1] Standard [PKCS#12] 
[2]PKCS #11
The standard wallet [PKCS#12]
In the standard wallet  credentials are store in the file system  which we use for the fusion applications
The PKCS#11
IN PKCS#11 credentials are store in the  hardware security module for servers, private keys on tokens for clients
we are selecting to use the standard wallet for the fusion applications
Provide the password according to the specific condition displayed 
Step 5
Click no as we can create the certificate request later 


Once we click No then the new empty wallet will be create with out [RootCa trusted certificate or user certificate] we need to certificate request For user certificate


Step 6

Creating New certificate request in the wallet 
click the certificate[empty] and Select add certificate request fill the necessary details according to your organization and save the certificate select the certificate key size as 4096 for the strong key  



Save the wallet under the /basepath/config/CommonDomain_webtier/config/OHS/ohs1/keystores/<wallet directoryname>


Step 7

export the certificate request to the file 
give the file name and click save 


Now you will see three files inside the wallet directory

[oracle@fah]$ ls
cwallet.sso  ewallet.p12  user_certificate_request.req

Once the certificate request is create the we need to use the root authority to sign this certificate.. we can get the root ca from the vendors are we can create the root ca from the OPEN SSL
here we are creating the root ca through the open ssl


Creating the RootCa with Open SSL

Step1
Creating the private key by using openssl

Syntax :openssl genrsa -out <private_key_cert_file> <keysize>

[oracle@fah]$ openssl genrsa  -out fa_privkey.prm  4096
Generating RSA private key, 4096 bit long modulus
.........................................................................................................................................................................++
.......................................................................++
e is 65537 (0x10001)

Step 2

Create the root certificate with the privatekey
Syntax opensslreq -new -x509 -keyout <provate key file name> -out <certificate name> -days <number of days the cert lives>

[oracle@fah]$ openssl req -new -x509 -keyout fa_privkey.pem -out fa_root_cert.pem -days 3650
Generating a 1024 bit RSA private key
............++++++
...++++++
writing new private key to 'fa_privkey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
phrase is too short, needs to be at least 4 chars
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:
State or Province Name (full name) [Berkshire]:
Locality Name (eg, city) [Newbury]:
Organization Name (eg, company) [My Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []
Email Address []:palaneandavar@alshirawi.ae
[oracle@fah]$

Legends
Country Name              [two digit country code for your country]
State or Province Name[name of the state or province where company is located]
Locality Name              [address of the locality]
Organization Name       [Company name]
Common Name             [any name like companyname_rootca]
Email Address               [email id]
x509                               [X.509 is an ITU-T standard for a public key infrastructure (PKI) and Privilege Management Infrastructure]
keyout                           [the file name contains the key]

Step 3

Creating the User certificate and authorizing with Root_Ca

Syntax :openssl x509 -req -in <certificate request file> -CA <root_ca certificate> -CAkey <privatekey> -CAcreateserial -out <usr_certificate_name>


[oracle@fahtestdb alshirawi]$ openssl x509 -req -in user_certificate_request.req -CA fa_root_cert.pem -CAkey fa_privkey.pem -CAcreateserial -out usersert.pem
Signature ok
subject=/CN=*.<domain_name>/OU= <organizational unit >/O=<organazatation>/L=<location>/C=AE
Getting CA Private Key
Enter pass phrase for fa_privkey.pem:

IMPORTING ROOTCA AND USER CETIFICATE INTO WALLET

Step1

Import RootCa to wallet
Navigate to Operations and select import trusted certificate for importing the root ca


Setp 2
Select the location off the root ca cert stored and import 

click ok and select the file from the location to import into the wallet 


Step 3
Now you can see the root certificate had been imported into the wallet

Step 4
Import the user certificate in to the wallet
Click ok and select the file from the location to import into the wallet 


     Step 5
    save the wallet with the option auto login 



CONFIGURE THE NEW WALLET WITH  OHS IN FUSION APPLICATIONS 


The configuration of the OHS server files are in the location of <basepath>/config/CommonDomain_webtier/config/OHS/ohs1/in the fusion applications there will be two files know as the 
[1]ssl.conf
[2]FusionSSL.conf
we need to add the location of the new wallet in this files to take effect

Edit the FusioSSL.conf and modify the location of the wallet

#Path to the wallet
   SSLWallet "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/keystores/<you
rwalletfolder>

Edit the ssl.conf 

#Path to the wallet
   SSLWallet "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/keystores/<your wallet folder location>"

your wallet folder location =we need to give the location of the Folder name where the new wallet is store the default location is 
<basepath>/config/CommonDomain_webtier/config/OHS/ohs1/keystore

Finally import the RootCa to the end user's desktop and place it on the trusted root authorities the Firefox is the recommended browser for the fusion applications 

NOTE:Place the Rootca in the trusted root authorities in the browsers 


Friday, November 2, 2012

Upgrading oracle ASMLib kernel driver

Oracle ASMLib kernel driver upgrade 

ORA-15183: ASMLIB initialization error [driver/agent not installed]

When we upgrade the kernel of the linux box  then we need to upgrade ASMlib according the newly upgraded kernal version ..
 After  upgrading the asmlib drivers only we can start the ASM .. if you have registered your system in the ULN then upgrade the kernal  the the latest by using  up2date
Once you update the kernel follow the below steps to update the ASMLib driver

Step 1

Stop the HAS or CRS according to your environment


[root@fah bin]# ./crsctl stop has
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'fah'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'fah'
CRS-2673: Attempting to stop 'ora.asm' on 'fah'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'fah' succeeded
CRS-2677: Stop of 'ora.asm' on 'fah' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'fah'
CRS-2677: Stop of 'ora.cssd' on 'fah' succeeded
CRS-2673: Attempting to stop 'ora.evmd' on 'fah'
CRS-2677: Stop of 'ora.evmd' on 'fah' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'fah' has completed
CRS-4133: Oracle High Availability Services has been stopped.

Step 2

Backup the oracleasm 
check the oracleasm and copy the oracleasm to another file for the percussion step

[root@fah sysconfig]# ls -ltr /etc/sysconfig/oracleasm
lrwxrwxrwx 1 root root 24 Feb 20  2012 /etc/sysconfig/oracleasm -> oracleasm-_dev_oracleasm

[root@fah sysconfig]# cp oracleasm-_dev_oracleasm oracleasm-_dev_oracleasm.orginal

[root@fah sysconfig]# ls -ltr /etc/sysconfig/oracle*
lrwxrwxrwx 1 root root  24 Feb 20  2012 /etc/sysconfig/oracleasm -> oracleasm-_dev_oracleasm
-rw-r--r-- 1 root root 777 Feb 20  2012 /etc/sysconfig/oracleasm-_dev_oracleasm
-rw-r--r-- 1 root root 777 Nov  2 15:12 /etc/sysconfig/oracleasm-_dev_oracleasm.orginal

Step 3

Comment the  respawn in the inittab file  
respawn is the process which helps to restart the particular process when it get's terminated according to the node numbers the respawn  lines will be in the inittab for each crs

[root@fah trace]$ vi /etc/inittab

#h1:35:respawn:/etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null

[root@fahtrace]$ /sbin/init q

init q is used to effect the change with out restart

Step 4

Check the status of linux and ASM

To find the release of the Linux 

root@fah oracle]# cat /etc/*release
Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)
Red Hat Enterprise Linux Server release 5.5 (Tikanga)

To find the kernel  version which is currently used 

[root@fahdb oracle]# uname -a
Linux <host_name> 2.6.18-308.16.1.0.1.el5 #1 SMP Tue Oct 2 14:31:21 PDT 2012 x86_64 x86_64 x86_64 GNU/Linux

To query what are the Rpms installed related to asm

[root@fah oracle]# rpm -qa |grep oracleasm
oracleasmlib-2.0.4-1.el5
oracleasm-support-2.1.3-1.el5
oracleasm-2.6.18-194.el5-2.0.5-1.el5

here you can find the the kernel version is upgraded to the latest and the asmlib driver is not upgraded to the kernel level

To the query the ASM 

[root@fah oracle]# ls -l /dev/oracleasm/disks
ls: /dev/oracleasm/disks: No such file or directory

In alert log of asm you will get the error's like 

ERROR: -15(asmlib ASM:/opt/oracle/extapi/64/asm/orcl/1/libasm.so op ioerror error I/O Error)
ERROR: -15(asmlib ASM:/opt/oracle/extapi/64/asm/orcl/1/libasm.so op ioerror error I/O Error)
ERROR: -15(asmlib ASM:/opt/oracle/extapi/64/asm/orcl/1/libasm.so op ioerror error I/O Error)
ASM Health Checker found 1 new failures
Sat Oct 06 21:50:39 2012
ERROR: -15(asmlib ASM:/opt/oracle/extapi/64/asm/orcl/1/libasm.so op ioerror error I/O Error)
ERROR: -15(asmlib ASM:/opt/oracle/extapi/64/asm/orcl/1/libasm.so op ioerror error I/O Error)
ERROR: -15(asmlib ASM:/opt/oracle/extapi/64/asm/orcl/1/libasm.so op ioerror error I/O Error)

ORA-15183: ASMLIB initialization error [driver/agent not installed]
WARNING: FAILED to load library: /opt/oracle/extapi/64/asm/orcl/1/libasm.so

Step 5

Stop the ASM for the ASMLib upgrade

To Stop the asmservice
[root@fah sysconfig]# /etc/init.d/oracleasm stop
Dropping Oracle ASMLib disks:                              [  OK  ]
Shutting down the Oracle ASMLib driver:                    [  OK  ]

To check the ASM status 

[root@fah sysconfig]# /etc/init.d/oracleasm status
Checking if ASM is loaded: no
Checking if /dev/oracleasm is mounted: no

To disable the ASM 

[root@fah sysconfig]# /etc/init.d/oracleasm disable
Writing Oracle ASM library driver configuration: done
Dropping Oracle ASMLib disks:                              [  OK  ]
Shutting down the Oracle ASMLib driver:                    [  OK  ]

Step 6

Install new ASMLib driver according the kernal

 use up2date -i oracleasm-support oracleasmlib oracleasm-`uname -r`command to install the drivers

[root@fah oracle]# up2date -i oracleasm-support oracleasmlib oracleasm-`uname -r`

Fetching Obsoletes list for channel: ol5_x86_64_latest...
########################################

Fetching rpm headers...
########################################

Name                                    Version        Rel
----------------------------------------------------------
oracleasm-2.6.18-308.16.1.0.1.el5       2.0.5          1.el5             x86_64
oracleasm-support                       2.1.7          1.el5             x86_64


Testing package set / solving RPM inter-dependencies...
########################################
oracleasm-2.6.18-308.16.1.0 ########################## Done.
oracleasm-support-2.1.7-1.e ########################## Done.
Preparing              ########################################### [100%]

Installing...
   1:oracleasm-support      ########################################### [100%]
   2:oracleasm-2.6.18-308.16########################################### [100%]

once install check the version of the ASMlib 

[root@fah oracle]# rpm -qa | grep oracleasm
oracleasmlib-2.0.4-1.el5
oracleasm-2.6.18-308.16.1.0.1.el5-2.0.5-1.el5
oracleasm-2.6.18-308.16.1.el5-2.0.5-1.el5
oracleasm-support-2.1.7-1.el5

Now the kernel and the ASMLib are at the same version

To Check the new ASM driver

[root@fah oracle]# ls -l /lib/modules/$(uname -r)/kernel/drivers/addon/oracleasm
total 120
-rw-r--r-- 1 root root 116168 Oct  3 05:06 oracleasm.ko

The new driver will be installed at the installation time stamp

Step 7

Start and configure the asm

To check  the status 

[root@fah oracle]# oracleasm status
Checking if ASM is loaded: no
Checking if /dev/oracleasm is mounted: no

To start the ASM

[root@fah oracle]# /etc/init.d/oracleasm start

To configure the ASM

[root@fah oracle]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface [grid]:
Default group to own the driver interface [asmadmin]:
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver:                     [  OK  ]
Scanning the system for Oracle ASMLib disks:               [  OK  ]
[root@fahdb oracle]# /etc/init.d/oracleasm status
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes

Check the disks

[root@fah oracle]# oracleasm listdisks
DTATAVOL1
FLASHVOL1
FLASH_VOL2

Start the crs

[root@fah bin]# ./crsctl start has
CRS-4123: Oracle High Availability Services has been started.

NOTE: To use the up2date you should register the system in the Unbreakable Linux Network if you have not registered then download the RPM's from the http://www.oracle.com/technetwork/server-storage/linux/downloads/rhel5-084877.html and install by rpm -ivh