Professional Documents
Culture Documents
1 Disable Cron Jobs on the Database Server......................................................................2 Shutdown and take backups of the existing Cluster........................................................2 Stop Database services on all nodes............................................................................2 Stop agent On all nodes...............................................................................................2 Stop CRS On all nodes................................................................................................2 Backup all nodes..........................................................................................................2 Take a BCV/Snapshot backup of the Database...........................................................3 Start CRS and database on All nodes of the Existing Cluster.........................................3 Add the new node to the Cluster (HW and OS)...............................................................4 Clean up remnants of Previous Oracle install on Node D...........................................4 Install Oracle Clusterware (CRS) on the New Node.......................................................6 Run addNode.sh as oracle............................................................................................6 Configure VIP service from Node A.........................................................................11 Configure ONS service from Node A........................................................................15 Verify Cluster install and health................................................................................16 Adding Nodes at the Oracle RAC Database Layer........................................................18 Extend RDBMS Software to the new Node..............................................................18 Extend ASM Software to the new Node....................................................................22 Update Listener configuration...................................................................................27 Run DBCA from Node A to extend ASM instance...................................................33 Run DBCA from Node A to add DB instance...........................................................36
References
Metalink Doc 269320.1: Removing a Node from a 10g RAC Cluster Metalink Doc 270512.1: Adding a Node to a 10g RAC Cluster http://download-west.oracle.com/docs/cd/B19306_01/rac.102/b14197/adddelunix.htm#BEICADHD http://www.oracle.com/technology/pub/articles/vallath-nodes.html http://blogs.oracle.com/AlejandroVargas/gems/RAC10gR2AddNode.pdf
Disable Cron Jobs on the Database Server Shutdown and take backups of the existing Cluster
Stop Database services on all nodes
srvctl srvctl srvctl srvctl stop stop stop stop database -d ORCL asm -n node-a asm -n node-b asm -n node-c
srvctl stop nodeapps -n node-a srvctl stop nodeapps -n node-b srvctl stop nodeapps -n node-c
cd /backups/preAddNodeBackups tar cpvf crsinit.tar /etc/init.crs /etc/init.crsd /etc/init.cssd /etc/init.evmd /etc/rc.d/rc2.d/K96init.crs /etc/rc.d/rc2.d/S96init.crs gzip crsinit.tar cp -p /etc/inittab . tar cpvf etc_oracle.tar /etc/oracle /tmp/.oracle /etc/oratab /etc/oraInst.loc gzip etc_oracle.tar tar cpvf - /u01/app/crs/product/10.2.0/crs | gzip -c > crs_10.2.0.4.tar.gz tar cpvf - /u01/app/oracle/product/10.2.0/db01 | gzip -c > rdbms_10.2.0.4.tar.gz tar cpvf - /u01/app/asm/product/10.2.0/asm | gzip -c > asm_10.2.0.4.tar.gz tar cpvf - /u01/app/oraInventory | gzip -c > oraInventory.tar.gz
As oracle
srvctl start nodeapps -n node-a srvctl start nodeapps -n node-b srvctl start nodeapps -n node-c srvctl start asm -n node-a srvctl start asm -n node-b srvctl start asm -n node-c srvctl start database -d ORCL
-- Check on fixes and patches -- Verify the hardware requirements -- Verify same interface names on the new node -- Verify new node on the same subnet as existing nodes -- Verify the software requirements by comparing the outputs from all nodes
/usr/sbin/instfix -i -k "IY68989 IY68874 IY70031 IY61034 IY62191 IY60759 IY76807 IY76140" /usr/sbin/instfix -i -k "IY65305" lslpp -l bos.adt.base bos.adt.lib bos.adt.libm bos.perf.perfstat bos.perf.libperfstat bos.perf.proctools rsct.basic.rte rsct.compat.clients.rte xlC.aix50.rte xlC.rte bos.adt.prof bos.alt_disk_install.rte bos.cifs_fs.rte
-- Check /etc/hosts and make sure nslookup matches for all nodes (existing and new) -- Ping all private interconnects (existing and new) -- Check oracle user capabilities
lsuser -a capabilities oracle
/tmp if=/dev/oracle_ocr of=temp.out bs=8192 count=10 if=/dev/oracle_vote of=temp.out bs=8192 count=10 temp.out
-- Check on the user equivalence to and from the new nodes using ssh. -- Generate ssh key pair for oracle on Node D
ssh-keygen -t rsa
Password should be left empty -- Copy the public key to the existing nodes server Login to Node A
cd cd .ssh scp oracle@node-d:/home/oracle/.ssh/id_rsa.pub node-d.pub cat node-d.pub >> authorized_keys scp authorized_keys oracle@node-b:/home/oracle/.ssh/ scp authorized_keys oracle@node-c:/home/oracle/.ssh/ scp authorized_keys oracle@node-d:/home/oracle/.ssh/
-- Check on oracle profile in the new node: Update .profile on the new node to point to the correct ORACLE_HOME etc. -- Make sure these directories exits and wipe out any remnants of a previous install
mkdir -p /u01/app/oracle/product/10.2.0/db01 mkdir -p /u01/app/crs/product/10.2.0/crs mkdir -p /u01/app/asm/product/10.2.0/asm chown -R oracle:oinstall /u01 ls -ld $ORACLE_HOME $ORACLE_BASE $ORA_CRS_HOME
-- Go through the pre-install checklist -- Make sure SED is turned off -- Run CLUVFY from node A: $ORA_CRS_HOME/bin/cluvfy stage -post hwos -n node-d -verbose
On Node A --------------
On Node D -------------cd /u01/app/install_cds/CRS/Disk1/ tar xpvf rootpre.tar sudo su umask 022 cd /u01/app/install_cds/CRS/Disk1/rootpre ./rootpre.sh
New node information: Public Node Name: node-d Private Node Name: node-di Virtual host name: node-dv
vi /u01/app/crs/product/10.2.0/crs/install/rootaddnode.sh
and change this line (last line of the script) and save: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$SU $CRS_ORACLE_OWNER -c "$CH/bin/cluutil -sourcefile $OCRCONFIG -destfile $CH/srvm/admin/ocr.loc -nodelist $NODES_LIST" to $SU - $CRS_ORACLE_OWNER -c "$CH/bin/cluutil -sourcefile $OCRCONFIG -destfile $CH/srvm/admin/ocr.loc -nodelist $NODES_LIST"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sudo su umask 022
Or, change:
GSDNODE=`$LSDB -g`
to
GSDNODE=`(LIBPATH=$ORA_CRS_HOME/lib ; export LIBPATH ; $LSDB -g)`
----------------------------Note the remote port number from the output above and use that port number in the racgons command below. as root on Node A
sudo su cd /u01/app/crs/product/10.2.0/crs/bin ./racgons add_config node-d:6200
Output below
Performing post-checks for cluster services setup Checking node reachability... Check: Node reachability from node "node-a" Destination Node Reachable? ------------------------------------ -----------------------node-c yes node-d yes node-b yes node-a yes Result: Node reachability check passed from node "node-a". Checking user equivalence... Check: User equivalence for user "oracle" Node Name Comment ------------------------------------ -----------------------node-d passed node-c passed node-b passed node-a passed Result: User equivalence check passed for user "oracle". Checking Cluster manager integrity... Checking CSS daemon... Node Name Status ------------------------------------ -----------------------node-d running node-c running node-b running node-a running Result: Daemon status check passed for "CSS daemon". Cluster manager integrity check passed. Checking cluster integrity... Node Name -----------------------------------node-a node-b node-c node-d Cluster integrity check passed Checking OCR integrity... Checking the absence of a non-clustered configuration... All nodes free of non-clustered, local-only configurations. Uniqueness check for OCR device passed. Checking the version of OCR... OCR of correct Version "2" exists. Checking data integrity of OCR... Data integrity check for OCR passed. OCR integrity check passed. Checking CRS integrity... Checking daemon liveness...
Check: Liveness for "CRS daemon" Node Name Running ------------------------------------ -----------------------node-d yes node-c yes node-b yes node-a yes Result: Liveness check passed for "CRS daemon". Checking daemon liveness... Check: Liveness for "CSS daemon" Node Name Running ------------------------------------ -----------------------node-d yes node-c yes node-b yes node-a yes Result: Liveness check passed for "CSS daemon". Checking daemon liveness... Check: Liveness for "EVM daemon" Node Name Running ------------------------------------ -----------------------node-d yes node-c yes node-b yes node-a yes Result: Liveness check passed for "EVM daemon". Liveness of all the daemons Node Name CRS daemon ------------ -----------------------node-d yes yes node-c yes yes node-b yes yes node-a yes yes Checking CRS health... Check: Health of CRS Node Name -----------------------------------node-d yes node-c yes node-b yes node-a yes Result: CRS health check passed. CRS integrity check passed. Checking node application existence... Checking existence of VIP node application Node Name Required Status Comment ------------ ------------------------ ------------------------ ---------node-d yes exists passed node-c yes exists passed node-b yes exists passed node-a yes exists passed Result: Check passed. Checking existence of ONS node application Node Name Required Status Comment ------------ ------------------------ ------------------------ ---------node-d no exists passed node-c no exists passed node-b no exists passed node-a no exists passed Result: Check passed. Checking existence of GSD node application Node Name Required Status Comment ------------ ------------------------ ------------------------ ---------node-d no exists passed node-c no exists passed node-b no exists passed node-a no exists passed Result: Check passed. CRS OK? -----------------------CSS daemon -----------------------yes yes yes yes EVM daemon ----------
-- Run root.sh On Node D as root ---------------------sudo su umask 022 export DISPLAY=10.2.9.36:0 /u01/app/asm/product/10.2.0/asm/root.sh
After netca is complete, make sure there are not extra entries in this file on all nodes (specially Node D)
/u01/app/oracle/product/10.2.0/db01/network/admin/listener.ora
-- Add entry for the 4th node in listener aliases in the tnsnames.ora on all nodes
vi /u01/app/oracle/product/10.2.0/db01/network/admin/tnsnames.ora The entries should look something like this LISTENERS_ORCL = (ADDRESS_LIST = (ADDRESS = (PROTOCOL (ADDRESS = (PROTOCOL (ADDRESS = (PROTOCOL (ADDRESS = (PROTOCOL )
= = = =
= = = =
= = = =
After ASM is extended delete ASM1 related files from Node D On node D as oracle
cd /u01/app/asm/product/10.2.0/asm/dbs rm *ASM1*
alter system set cluster_database_instances=4 scope=spfile sid='*'; Update tnsnames.ora on all the nodes to reflect the new instance Restart the database