 |
|
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 ocmstart.sh
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/orainstRoot.sh
from each node.
10.
Review the summary of the install and proceed.
11.
Before running the root.sh 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 root.sh script.
Allow the root.sh 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
root.sh 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/init.crs
disable # run on all nodes to disable crs
/etc/init.d/init.crs 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/init.crs 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/init.crs disable # run on all nodes to disable crs
/etc/init.d/init.crs 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/init.crs enable # run on all nodes to enable crs
/sbin/init 6 # run on all nodes to reboot
 |
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. |
|