10gR2 CRS
on SLES9 x86
CRS is the clusterware software of oracle and it is the base for the
RAC installation.
I'm covering this in a separate document since the functionality of CRS
10gR2 are improved from 10gR1 and the API has been opened for third
party and home made applications.
In this way you can clusterize your own application on the oracle
cluster.
This is described in a document soon to be published (or I hope so).
Before installing the binaries you have to plan how to create your
system.
The cluster can be installed on a single node but it make few sense.
You should have at leat two nodes and a shared storage.
Personally I prefer several nodes connected to a SAN via redundant
fiber channel cards (like qlogic 23xx). The cards can have a multipath
software (SLES9 has multipath built-in capabilities) or working
with driver failover (always like qlogic).
Avery node should be connected to others via a private network.
A switch is required (the cross cable is not supported) and a
gigabit connection is recommended (this is for RAC).
After installing the operating system make sure you have the required
packages:
- gcc (SLES9 uses 3.3),
- glibc-devel,
- make,
- openmotif,
- the base X libraries,
- libaio,
- libaio-devel,
- orarun.
The last package will simplify the installation processes and the later
administration.
It provides the oracle user and groups, the start and stop scripts for
your init levels, the environment for the oracle user and the right
settings for the kernel parameters (they can later be adjusted.
It even provides some fixes for 9i installation bugs. These can (and
should) be avoided for 10g, especially for 10gR2.
Last version of orarun can be foiund here.
Create the directory tree for the oracle installation (look at the
standard OFA): the default is /opt/oracle/product/10g/db_1.
I prefer /u01/app/oracle/product/10.2/crs_1
linux: # mkdir -p
/u01/app/oracle/product/10.2/crs_1
Make sure to chenge the ownership of the tree with chown (the owner
should be the oracle user while the group oinstall).
linux: # chown -r oracle:oinstall
/u01/app/oracle
Now you can modify some files in /etc:
- /etc/passwd: change the shell for the oracle user created by
orarun (default is /bin/false);
- /etc/group: oracle user should already belong to dba, oinstall
and disk;
- /ets/sysconfig/oracle for ORACLE_BASE, ORACLE_HOME, ORACLE_SID
and several kernel parameters plus the starting parameter for the
oracle script in /etc/init.d (useful during machin boot).
- /etc/profile.d/oracle.sh (or oracle.csh depending on the shell
you chose above). From 10g on I prefer to unset the variables:
LD_ASSUME_KERNEL and LD_PRELOAD. It can be done by adding:
- unset LD_ASSUME_KERNEL
- unset LD_PRELOAD
before the last "fi" int he script. By
unsetting the LD_ASSUME_KERNEL all your program are going to use the
last version of the glibc, exploiting the new linux posix thread
libraries used heavily by oracle executables. You will see less process
around and you'll get a more stable system (especially for RAC).
Add the variable ORA_CRS_HOME=$ORACLE_BASE/product/10.2/crs_1. This is
not required but is suggested. It easy your life.
Give a password to your oracle user:
passwd oracle
Reconect to the oracle user so you'll have your new env in place.
Now you need a shared device where to places the Oracle Cluster
Registry and the Voting Disk.
This two files are so important that in 10gR2 they can be multiplexed
as normally done to the database redologs and controlfiles.
I prefer to place them on raw devices.
So I create several devices using fdisk on my shared device.
This operation is done on one node.
A reboot of the other nodes is not necessary! The others will inherit
the modification simply by issuing:
# partprobe
Now bind them to the raw devices modifying /etc/raw like in this
example:
raw1:oradata1_a/registrylv
raw2:oradata1_a/votinglv
raw3:ida/c0d1
The script for starting (binding) the raw is:
# /etc/init.d/raw start
Make sure the oracle user is in the disk group. In this way you won't
have to change the permissions on the raw devices.
Modify your /etc/hosts to include all the names of your nodes (physical
names, virtual names and private names) and copy the file on all the
cluster machines.
Example:
192.168.23.191 breonldblc03.ras breonldblc03
192.168.23.192 breonldblc04.ras breonldblc04
192.168.23.18 breonldblv02.ras breonldblv02
192.168.23.196 breonldblv03.ras breonldblv03
192.168.23.19 breonldblv04.ras breonldblv04
192.168.23.20 breonldblv05.ras breonldblv05
192.168.255.1 internal1.ras internal1
192.168.255.2 internal2.ras internal2
These steps are explained even here.
After doing these you need to exchange to create an ssh key for your
oracle user on one node and copy it on all the others.
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/opt/oracle/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /opt/oracle/.ssh/id_rsa.
Your public key has been saved in /opt/oracle/.ssh/id_rsa.pub.
Beeing in the .ssh directory (usually /opt/oracle/.ssh) copy the public
key in the authorized_keys2 to permits the authentication without
password.
cat id_rsa.pub
>> authorized_keys2
Now copy the whole .ssh directory on all the nodes.
Now, for every node you have to connect to the other using all the
private and public name used in /etc/hosts (with and without domain).
Reply 'yes' to every question and make sure that you are no longer
prompted for a password.
At every second try with the same connection you shouldn't receive any
message or request. You need to be immediately authenticated and
presented with a shell prompt for the oracle installation to proceed
smoothly.
Warning!!!!!
If
you can be authenticated without password or any other request but if
an output (or a warning) is shown then oracle will interpret that as an
error, stopping the installation. So, solve any related issue/warning
before going ahead.
Here, you can see an example of the messages shown when establishing
the initial ssh connections:
oracle@sles9rac1:~/.ssh> ssh
oracle@192.168.255.1
The authenticity of host '192.168.255.1 (192.168.255.1)' can't be
established.
RSA key fingerprint is 4c:70:d1:4c:6c:71:5c:19:a6:87:14:38:e5:f7:7f:51.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.255.1' (RSA) to the list of known
hosts.
Last login: Wed Nov 10 16:18:43 2004 from 192.168.255.2
oracle@sles9rac1:~> exit
logout
Connection to 192.168.255.1 closed.
oracle@sles9rac1:~/.ssh> ssh oracle@192.168.255.2
The authenticity of host '192.168.255.2 (192.168.255.2)' can't be
established.
RSA key fingerprint is 4c:70:d1:4c:6c:71:5c:19:a6:87:14:38:e5:f7:7f:51.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.255.2' (RSA) to the list of known
hosts.
Last login: Wed Nov 10 16:20:14 2004 from 192.168.24.60
oracle@sles9rac2:~> exit
logout
Connection to 192.168.255.2 closed.
Make sure you can open X application (connect with ssh -Y or export the
DISPALY variable, or whatever your are used to).
Place yourself in the directory where your instaler is (maybe the cdrom
or the directory where you decompressed the tarball download from OTN).
Run the installer as oracle:
./runInstaller
I'm attaching some snapshot taken during my installation.









Before executing the script make
sure root can export the display!!!!!
A configuration assistance is going to be opened from root!!!



Contact information:
fabrizio.magni _at_ gmail.com