kilabit.info
Simple | Small | Stable | Secure

Oracle 10g Clusterware and RAC Installation on Solaris

Notes:

  • the '#' at first line mean is the command must be run as root.

  • the '$' at first line mean is the command must be run as user, in this case user 'oracle'.

NODE 1: Solaris 5.10

  • pcn0 (public net) : 192.168.1.101 rac1-solaris

  • pcn0:1 (virtual net) : 192.168.1.111 rac1-vip

  • pcn1 (private net) : 192.168.2.201 rac1-priv

NODE 2: Solaris 5.10

  • pcn0 (public net) : 192.168.1.102 rac2-solaris

  • pcn1:1 (virtual net) : 192.168.1.112 rac2-vip

  • pcn1 (private net) : 192.168.2.202 rac2-priv

FOR EACH NODE, install solaris an usual

FOR EACH NODE, configure networks; Usually IP address has been set in install process.

Set '/etc/hosts' in all node.

FOR EACH NODE, turn on NTP client; or pick one node as NTP server.

	@ see '/etc/inet/ntp.client'
	@ see '/etc/inet/ntp.server'

FOR EACH NODE, set udp buffer.

	# ( cat <<-EOF
#!/usr/bin/bash

case "$1" in
'start')
        ndd -set /dev/udp udp_xmit_hiwat 65536
        ndd -set /dev/udp udp_recv_hiwat 65536
        ;;
'status')
        ndd /dev/udp udp_xmit_hiwat
        ndd /dev/udp udp_recv_hiwat
        ;;
*)
        echo "usage: $0 {start | status}"
        exit 1
        ;;
esac
EOF
) > /etc/init.d/rac.udp.sh

	# chmod +x /etc/init.d/rac.udp.sh
	# ln -s /etc/init.d/rac.udp.sh /etc/rc3.d/S89rac.udp.sh

FOR EACH NODE, create group for oracle

	# groupadd -g 200 oinstall
	# groupadd -g 201 dba
	# groupadd -g 202 oper

FOR EACH NODE, create user oracle

	# mkdir /export/home/oracle
	# chown oracle:dba /export/home/oracle
	# useradd -u 200 -g oinstall -G dba,oper -d /export/home/oracle
	# oracle
	# passwd oracle

FOR EACH NODE, make sure nobody is exist

	# id nodoby

FOR EACH NODE, configure solaris 10 projects attributes

	# projadd group.dba
	# projmod -sK "project.max-shm-memory=(privileged,4294967295,deny)"
	# group.dba
	# projmod -sK "project.max-sem-ids=(privileged,100,deny)" group.dba
	# projmod -sK "project.max-shm-ids=(privileged,100,deny)" group.dba
	# projmod -sK "project.max-sem-nsems=(privileged,256,deny)" group.dba
	# echo "oracle::::type=normal;project=group.dba" >> /etc/user_attr

or/and add this to `/etc/system',

	set noexec_user_stack=1
	set semsys:seminfo_semmni=100
	set semsys:seminfo_semmns=1024
	set semsys:seminfo_semmsl=256
	set semsys:seminfo_semvmx=32767
	set shmsys:shminfo_shmmax=4294967295
	set shmsys:shminfo_shmmin=1
	set shmsys:shminfo_shmmni=100
	set shmsys:shminfo_shmseg=10

FOR EACH NODE, create authorized keys for automatic login for oracle user

	$ mkdir -p .ssh
	$ chmod 700 .ssh
	$ ssh-keygen -t rsa
	$ ssh-keygen -t dsa

ONLY ON NODE 1, combine all public keys into one file

	$ ssh rac1-solaris cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
	$ ssh rac1-solaris cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
	$ ssh rac2-solaris cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
	$ ssh rac2-solaris cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

ONLY ON NODE 1, copy the "~/.ssh/authorized_keys" file to others Node

	$ scp ~/.ssh/authorized_keys rac2:~/.ssh/

FOR EACH NODE, check software requirements

	$ pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibm SUNWlibms SUNWsprot \
SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs SUNWxwfnt

and install the missing packages, in this example from dvdrom

	# pkgadd -d /cdrom/cdrom0/Solaris_10/Product/ SUNWi1cs
	# pkgadd -d /cdrom/cdrom0/Solaris_10/Product/ SUNWi15cs
	$ echo "umask 022" > ~/.profile
	$ echo "export ORACLE_BASE=/export/home/oracle" >> ~/.profile
	$ . ~/.profile

ONLY ON NODE 1, install clusterware,

	$ ./clusterware/runInstaller

Appendix A: CVU

Checking cluster connectivity

	$ ./runcluvfy.sh comp nodecon -n rac1-solaris,rac2-solaris -verbose

Checking os dependencies

	$ ./runcluvfy.sh stage -post hwos -n rac1,rac2 -verbose

Appendix B: iscsi disk : initiator, target and client

example of disk layout:

Part      Tag    Flag     Cylinders        Size            Blocks
  0 unassigned    wm       0               0         (0/0/0)           0
  1 unassigned    wm       0               0         (0/0/0)           0
  2     backup    wu       0 - 1301        9.97GB    (1302/0/0) 20916630
  3 unassigned    wm       2 -   12      101.98MB    (13/0/0)     208845
  4 unassigned    wm       2 -   15       23.53MB    (3/0/0)       48195
  5 unassigned    wm       2 - 1301        9.85GB    (1286/0/0) 20659590
  6 unassigned    wm       0               0         (0/0/0)           0
  7 unassigned    wm       0               0         (0/0/0)           0
  8       boot    wu       0 -    0        7.84MB    (1/0/0)       16065
  9 unassigned    wm       0               0         (0/0/0)           0

	# iscsitadm create initiator --iqn iqn.rac1-solaris.dev.rdsk.c2t0d0
	# asmvol00
	# iscsitadm create target --type disk -b /dev/rdsk/c2t0d0s3 ocr
	# iscsitadm create target --type disk -b /dev/rdsk/c2t0d0s4 vot
	# iscsitadm create target --type disk -b /dev/rdsk/c2t0d0s5 asmdisk05