Call now: 252-767-6166  
Oracle Training Oracle Support Development Oracle Apps

 E-mail Us
 Oracle Articles
New Oracle Articles

 Oracle Training
 Oracle Tips

 Oracle Forum
 Class Catalog

 Remote DBA
 Oracle Tuning
 Emergency 911
 RAC Support
 Apps Support
 Oracle Support

 SQL Tuning

 Oracle UNIX
 Oracle Linux
 Remote s
 Remote plans
 Application Server

 Oracle Forms
 Oracle Portal
 App Upgrades
 SQL Server
 Oracle Concepts
 Software Support

 Remote S


 Consulting Staff
 Consulting Prices
 Help Wanted!


 Oracle Posters
 Oracle Books

 Oracle Scripts

Don Burleson Blog 







Prepare for the 10g Software Install

Oracle Database Tips by Donald Burleson

Oracle states that only the gsdservice must be stopped for an install of 10g software. However, it is also important to stop any running databases and the 9i listeners. Doing so will free up the CPU, the RAM, and port 1521 for the 10g listener.

The following steps will stop all Oracle 9i services except the oracm. The 9i cluster manager process (oracm) must be running during the 10g CRS install.

1.      Shutdown any running database from one of the nodes using srvctl.

2.      Stop the gsdservice and the listener. Complete this step on all nodes.

3.      As root, edit the file /etc/init.d/oracle so the script continues to start oracmon boot. It is necessary to hardcode the 9i ORACLE_HOME as shown. Comment out the lines that start the listener and gsd. These two services will be started and maintained by 10g Cluster Ready Services. Complete this step on all nodes.

4.      Next, use a text editor to edit the ~oracle/.bash_profile login script on all nodes so the default environmental variables are properly set for a 10g environment. Simply editing this file now will not update the variables for the current login. This will prepare for future logins.

The 10g CRS Install

With the proper setup, the CRS install should complete easily. If an error is encountered, check Appendix C for a possible resolution. The following provides a walk through the steps of the install.

1.      Insert the install CD for 10g CRS into the drive on oracle1. Export the new environmental variables by running the .bash_profile script as shown. Next, export ORACLE_HOME to match ORA_CRS_HOME.

Note that the CRS home directory does not have to be pre-created!

Because Fedora is not a certified operating system, the launch of the software will fail unless the switch ?ignoreSysPrereqs is used.

Oracle is trying to make the point that, as a company, they will not be supporting a version of Linux that does not meet their requirements. Fortunately, they have included this switch to get beyond the prerequisite check. Be sure to read through the available switches by running the /mnt/cdrom/runInstaller ‑help command.

2.      Verify the path to the crs directory is correct as shown.

3.      Even though the gsdervice was already stopped on both nodes, it is likely this warning will appear. Click OK and continue.

4.      The default language ?English? is available. Add any additional language(s) desired.

5.      Indicate the public and private node names. The cluster name should be crs.

6.      Change the Interface Type by clicking on the rectangular area. This step identifies which network cards are being used for a given network.

7.      When upgrading from 9i to 10g, this screen will not appear because the installer will verify the OCR file by reading the path and filename identified in the /var/opt/oracle/srvConfig.loc file.

8.      The raw partition raw4 will be used for the voting file.

9.      As root, run the script /u01/app/oracle/oraInventory/ from each node.

10.  Review the summary of the install and proceed.

11.  Before running the script, change ownership and permissions of the parent directories of crs. The chmod go‑w command removes write access to group and others. Once ownership and permissions on these directories are changed, run the script. Allow the script to finish completely, then switch to the next node and run all of the same commands to complete this step.

12.  The install should finish without an error. If an error occurs, consult appendix C for a possible resolution.

Verifying the CRS Install

Oracle 10g CRS has installed three new daemons, namely evmd (Event Manager Daemon), cssd (Cluster Synchronization Services Daemon), and crsd (Cluster Ready ServicesDaemon). These three daemons should be running properly and should be spawned automatically on reboot. Use the command ps ‑ef | grep daemon_name to verify that a given daemon is running. This command should return many rows per daemon.

These daemons are not launched by a user created script like the ?oracle? script used to start the 9i services. Instead, these daemons are launched by the init service. The /etc/inittab file configures the init service to respawn evmd or crsd if one fails. If cssd fails, the init service will reboot the node. Enter the command tail /etc/inittab ‑n3 as shown in Figure 8.2. The tail command will display the last three lines of the inittab file.

With 10g CRS installed, the pointer file used to identify the repository has changed. It used to be identified by the file /var/opt/oracle/srvConfig. Now, it is identified by the file /etc/oracle/ocr.loc. Figure 8.3 displays the text of these files. Note that the old file has been changed to point to /dev/null.

Oracle provides the ocrcheckscript to verify CRS has been installed properly. It should be run on both nodes as root. Figure 8.4 shows the typical output of that script. It is important that the version is ?2? and that it states ?integrity check succeeded? as shown.

The Global Services Daemon (gsd) is a service that supports both 9i and 10g software such as srvctl. The gsd must not be managed with the 9i version of gsdctl. Figure 8.5 displays the command used to rename the 9i version of gsdctl to ensure it will not be used by mistake. It is a good idea to rename this file on each node.

Installing Oracle 10g Database Software

CRS has been installed and verified. Now it is time to install the database software. The following information provides a walk-through of the steps of installation.

1.      Start the install by unsetting the ORACLE_SID. In some cases, not doing so will cause an error. Run the bash_profile script as shown to export the environmental variables. As the image suggests, the runInstaller program has a help section that should be read. Launch the installer with the ?ignoreSysPrereqs switch.

2.      Verify the path for the Oracle home. The 10g installer will create any necessary directories.

3.      If the Cluster Installation screen does not appear as shown here, there is a problem with CRS, in which case quit the installer and debug. Otherwise, select all nodes and continue.

4.      Select an Enterprise Edition install.

5.      This system verify screen will appear briefly and then automatically move to the next screen. Do not click the back button to return to this screen! Doing so will make it impossible to proceed further, requiring a relaunch of the installer.

6.      Do not upgrade an existing database. That will be done later.

7.      Do not create a starter database. That will be done later.

8.      Review the summary details for accuracy

9.      When the installer states it is copying files on remote node(s), be patient. It may appear nothing is happening, but it is simply a slow process.

10.  As the script continues, answer ?y? to overwrite the old versions of dbhome, oraenv, and coraenv.

11.  The VIP Configuration Assistant will automatically launch from the root.shscript.

12.  Choose only the public ethernet card.

13.  Populating the first ?IP Alias Name? should automatically populate the remaining fields. If necessary, read the /etc/hosts file for the values that were added there for the virtual IP's.

14.  Review the summary and continue.

15.  Creating and starting VIP, GSD, and ONS should take less than three minutes. Occasionally, this step may hang when starting GSD. If this occurs, turn to Appendix C for a possible solution.

16.  Review the configuration results and continue.

17.  Don't forget to run the script from the other node(s).

18.  The installer reports the URLs of isqlplus and ultrasearch tools. All done!

Post Installation - Fixing Scripts that Set Environmental Variables

The first step after an install is to fix a bug with the dbhome script. After the 10g install when the dbhome command is run, it will return the incorrect path for the $ORACLE_HOME of a given database. Fixing this is vital because the oraenv and racenv scripts rely on the dbhome script.

For some unknown reason, the 10g version of dbhome was written to look for the oratab file in the directory /var/opt/oracle. This problem is easily fixed. Simply create a symbolic link in that directory as shown in Figure 8.6. Do this on all nodes.

The next task is to remove the 9i ORACLE_HOME as the default home in the /etc/oratab file. To do this, as root, open the /etc/oratab file in a text editor and comment out the line for the 9i default oracle home ?*? by placing a # at the beginning of the line, as shown in Figure 8.7. This should be done on all nodes.

Post Installation - Configuring the New Listener

Use the which command to ensure the netca to be used is the 10g version. If netca is not found, or if the 9i version is found, use oraenv to set the $PATH  variable, then double check it with the which command. Launch the network configuration assistant from oracle1 with the netca command as shown in Figure 8.8. Choose ?Cluster Configuration? to install the listener on all nodes and proceed by selecting all of the defaults.

Once the 10g listener is configured, forget about lsnrctlfor starting and stopping the listener! The 10g Cluster Ready Services will be in charge of this service from this point forward. CRS considers the listener to be a critical service and will start it up after each boot. The listener will now be run as a process called LISTENER_<node_name> and can be verified with the ps ?ef | grep LIS command.

The lsnrctl utility can be used to check the status of the listener with the command lsnrctl status LISTENER_<node_name>. However, attempting to start or stop the listener with lsnrctl will cause the lsnrctl program to hang. Using srvctl to start and stop the listener as a member of the nodeapps group is explained in Chapter 9.

Post Installation - Backing up the OCR

The OCR file for a 10g install contains far more configuration data than the srvctl repository from 9i. This file is far more likely to become corrupted, damaged, or mis-configured than in the case of a 9i install.

To prevent a potential problem, follow the steps in Figure 8.9 to backup the OCR and voting file. Although the ocrconfig and ocrdump scripts can get stuck, they should not take more than a minute to run. If they do get stuck, type [ctrl+C] to exit. Rebooting usually fixes the problem.

The ocrdump program produces a text file of all the OCR configurations. Open the after_install.txt file with geditto read through the settings saved in the OCR repository.  

Oracle CRS automatically takes a backup of the OCR file once every four hours. Unfortunately, the backup is taken after the first four hours, which is a good reason for exporting the OCR immediately after install. The periodic backups will be copied into the directory $ORA_CRS_HOME/cdata/<cluster_name[crs]> in the following format:

$ORA_CRS_HOME/cdata/crs/backup00.ocr  #( 4 hours old)
$ORA_CRS_HOME/cdata/crs/backup01.ocr  #( 8 hours old)
$ORA_CRS_HOME/cdata/crs/backup02.ocr  #(12 hours old)
$ORA_CRS_HOME/cdata/crs/day.ocr       #( 1 day   old)
$ORA_CRS_HOME/cdata/crs/week.ocr      #( 1 week  old)

After the install has been running for at least four hours, check both nodes for these files. You will likely find that these files are saved to only one node. The following is an example of restoring from the OCR from a saved backup:

### As root:

/etc/init.d/ disable  # run on all nodes to disable crs
/etc/init.d/ stop     # run on all to stop crs - allow 2-3 minutes!
cd $ORA_CRS_HOME/cdata/crs
dd if=/dev/zero of=/dev/raw/raw3 bs=1M count=100
$ORA_CRS_HOME/bin/ocrconfig -restore week.ocr
/etc/init.d/ enable   # run on all nodes to enable crs
/sbin/init 6                  # run on all nodes to reboot

To restore from the export file after_install.exp, use the following commands:

### as root:
/etc/init.d/ disable  # run on all nodes to disable crs
/etc/init.d/ stop     # run on all to stop crs - allow 2-3 minutes!
cd $ORA_CRS_HOME/cdata/crs
dd if=/dev/zero of=/dev/raw/raw3 bs=1M count=100
$ORA_CRS_HOME/bin/ocrconfig -import after_install.exp
/etc/init.d/ enable   # run on all nodes to enable crs
/sbin/init 6                  # run on all nodes to reboot


Learn More about PC RAC:

If you want to learn RAC at home, get the bestselling book "Personal Oracle Real Application Clusters" by Edward Stoever.

You can buy it direct from the publisher for 30%-off and get instant access to the code depot of Oracle tuning scripts.



Oracle Training at Sea
oracle dba poster

Follow us on Twitter 
Oracle performance tuning software 
Oracle Linux poster


Burleson is the American Team

Note: This Oracle documentation was created as a support and Oracle training reference for use by our DBA performance tuning consulting professionals.  Feel free to ask questions on our Oracle forum.

Verify experience! Anyone considering using the services of an Oracle support expert should independently investigate their credentials and experience, and not rely on advertisements and self-proclaimed expertise. All legitimate Oracle experts publish their Oracle qualifications.

Errata?  Oracle technology is changing and we strive to update our BC Oracle support information.  If you find an error or have a suggestion for improving our content, we would appreciate your feedback.  Just  e-mail:  

and include the URL for the page.


Burleson Consulting

The Oracle of Database Support

Oracle Performance Tuning

Remote DBA Services


Copyright © 1996 -  2020

All rights reserved by Burleson

Oracle ® is the registered trademark of Oracle Corporation.