RAC Add Node

I am working on a virtualization first company for one of the largest Data Warehouse projects in the world for the financial industry to rapidly clone RAC clusters and databases in matter of hours.  We can provision up to 3 or 4 node RAC clusters in less than couple of hours and then as needed add nodes to the cluster with ease.

1. On target, create /u01/app/oraInventory (empty) and owned by oracle:dba

2. On the target node, please make sure /u01/app/11.2.0 directory is created and also empty. Make sure that it is owned by oracle:dba 
3. Run the following addnode.ksh on an existing RAC node with parameters replaced as oracle
4. You will be instructed to run root.sh on target node as root

The following are the caveats: 
1. cluvfy is buggy for It had bugs in also. I remember we had to set IGNORE_PREADDNODE_CHECKS to Y back in 11.2.02, and it looks like we still have to. 
2. /u01/app/oraInventory has to be pre-created and owned by oracle:dba and be completely empty 
3. /u01/app/11.2.0 has to be owned by oracle:dba. The /u01/app/11.2.0/grid directory cannot exist … even as an empty directory. The addnode.sh script attempts to do a “mkdir grid” as oracle, and if it fails, it dies. 
4. It died on me twice at “crsctl start listener -n “target_node” … have to create default listener first
5. I did not use the -noCopy method … This working example will copy the Grid Home from source RAC node to the new RAC node. I don’t think it is a big deal … added about 5 minutes to the overall time (see below). 

Copying to remote nodes (Saturday, May 4, 2013 8:52:50 PM CDT)
 ………………………………………………………………………………….. 96% Done. 
Home copied to new nodes 
Saving inventory on nodes (Saturday, May 4, 2013 8:56:03 PM CDT) 
+ASM1 > cat addnode.ksh
export ORACLE_HOME=/u01/app/11.2.0/grid
cd $ORACLE_HOME/oui/bin
#./addNode.sh -silent “CLUSTER_NEW_NODES={rhel59drb}” “CLUSTER_NEW_VIRTUAL_HOSTNAMES={rhel59b-vip}” -noCopy
./addNode.sh -silent “CLUSTER_NEW_NODES={rhel59drb}” “CLUSTER_NEW_VIRTUAL_HOSTNAMES={rhel59drb-vip}” “CLUSTER_NEW_PRIVATE_NODE_NAMES={rhel59drb-priv}”


+ASM1 > ./addnode.ksh
Starting Oracle Universal Installer…
Checking swap space: must be greater than 500 MB.   Actual 3186 MB    Passed
Oracle Universal Installer, Version Production
Copyright (C) 1999, 2011, Oracle. All rights reserved.
Performing tests to see whether nodes rhel59drb are available
……………………………………………………… 100% Done.
Cluster Node Addition Summary
Global Settings
   Source: /u01/app/11.2.0/grid
   New Nodes
Space Requirements
   New Nodes
         /: Required 6.47GB : Available 7.27GB
Installed Products
   Product Names
      Oracle Grid Infrastructure
      Sun JDK
      Installer SDK Component
      Oracle One-Off Patch Installer
      Oracle Universal Installer
      Oracle USM Deconfiguration
      Oracle Configuration Manager Deconfiguration
      Enterprise Manager Common Core Files
      Oracle DBCA Deconfiguration
      Oracle RAC Deconfiguration
      Oracle Quality of Service Management (Server)
      Installation Plugin Files
      Universal Storage Manager Files
      Oracle Text Required Support Files
      Automatic Storage Management Assistant
      Oracle Database 11g Multimedia Files
      Oracle Multimedia Java Advanced Imaging
      Oracle Globalization Support
      Oracle Multimedia Locator RDBMS Files
      Oracle Core Required Support Files
      Bali Share
      Oracle Database Deconfiguration
      Oracle Quality of Service Management (Client)
      Expat libraries
      Oracle Containers for Java
      Perl Modules
      Secure Socket Layer
      Oracle JDBC/OCI Instant Client
      Oracle Multimedia Client Option
      LDAP Required Support Files
      Character Set Migration Utility
      Perl Interpreter
      PL/SQL Embedded Gateway
      OLAP SQL Scripts
      Database SQL Scripts
      Oracle Extended Windowing Toolkit
      SSL Required Support Files for InstantClient
      SQL*Plus Files for Instant Client
      Oracle Net Required Support Files
      Oracle Database User Interface
      RDBMS Required Support Files for Instant Client
      RDBMS Required Support Files Runtime
      XML Parser for Java
      Oracle Security Developer Tools
      Oracle Wallet Manager
      Enterprise Manager plugin Common Files
      Platform Required Support Files
      Oracle JFC Extended Windowing Toolkit
      RDBMS Required Support Files
      Oracle Ice Browser
      Oracle Help For Java
      Enterprise Manager Common Files
      Deinstallation Tool
      Oracle Java Client
      Cluster Verification Utility Files
      Oracle Notification Service (eONS)
      Oracle LDAP administration
      Cluster Verification Utility Common Files
      Oracle Clusterware RDBMS Files
      Oracle Locale Builder
      Oracle Globalization Support
      Buildtools Common Files
      Oracle RAC Required Support Files-HAS
      SQL*Plus Required Support Files
      XDK Required Support Files
      Agent Required Support Files
      Parser Generator Required Support Files
      Precompiler Required Support Files
      Installation Common Files
      Required Support Files
      Oracle JDBC/THIN Interfaces
      Oracle Multimedia Locator
      Oracle Multimedia
      HAS Common Files
      Assistant Common Files
      HAS Files for DB
      Oracle Recovery Manager
      Oracle Database Utilities
      Oracle Notification Service
      Oracle Netca Client
      Oracle Net
      Oracle JVM
      Oracle Internet Directory Client
      Oracle Net Listener
      Cluster Ready Services Files
      Oracle Database 11g
Instantiating scripts for add node (Saturday, May 4, 2013 8:52:48 PM CDT)
.                                                                 1% Done.
Instantiation of add node scripts complete
Copying to remote nodes (Saturday, May 4, 2013 8:52:50 PM CDT)
…………………………………………………………………………………..                                 96% Done.
Home copied to new nodes
Saving inventory on nodes (Saturday, May 4, 2013 8:56:03 PM CDT)
.                                                               100% Done.
Save inventory complete
The following configuration scripts need to be executed as the “root” user in each new cluster node. Each script in the list below is followed by a list of nodes.
/u01/app/11.2.0/grid/root.sh #On nodes rhel59drb
To execute the configuration scripts:
    1. Open a terminal window
    2. Log in as “root”
    3. Run the scripts in each cluster node
The Cluster Node Addition of /u01/app/11.2.0/grid was successful.
Please check ‘/tmp/silentInstall.log’ for more details.
On the Target Node:  
[root@rhel59drb db_backup]# /u01/app/11.2.0/grid/root.sh
Check /u01/app/11.2.0/grid/install/root_rhel59drb_2013-05-04_21-18-28.log for the output of root script

[root@rhel59drb db_backup]# tail -f /u01/app/11.2.0/grid/install/root_rhel59drb_2013-05-04_21-18-28.log

    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/11.2.0/grid
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Relinking oracle with rac_on option
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
User ignored Prerequisites during installation
OLR initialization – successful
Adding Clusterware entries to inittab
CRS-4402: The CSS daemon was started in exclusive mode but found an active CSS daemon on node rhel59dra, number 1, and is terminating
An active cluster was found during exclusive startup, restarting to join the cluster
clscfg: EXISTING configuration version 5 detected.
clscfg: version 5 is 11g Release 2.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user ‘root’, privgrp ‘root’..
Operation successful.
Preparing packages for installation…

Configure Oracle Grid Infrastructure for a Cluster … succeeded


+ASM1 > crs_stat -t -v

HA Resource                                        Target     State            
———–                                        ——     —–            
ora.DATA.dg                                        ONLINE     ONLINE on rhel59dra
ora.FRA.dg                                         ONLINE     ONLINE on rhel59dra
ora.LISTENER.lsnr                                  ONLINE     ONLINE on rhel59dra
ora.LISTENER_SCAN1.lsnr                            ONLINE     ONLINE on rhel59drb
ora.LISTENER_SCAN2.lsnr                            ONLINE     ONLINE on rhel59dra
ora.LISTENER_SCAN3.lsnr                            ONLINE     ONLINE on rhel59dra
ora.LSNR_GTRRAC.lsnr                               ONLINE     ONLINE on rhel59dra
ora.OCR_VOTE.dg                                    ONLINE     ONLINE on rhel59dra
ora.asm                                            ONLINE     ONLINE on rhel59dra
ora.cvu                                            ONLINE     ONLINE on rhel59dra
ora.dtccrac.db                                     ONLINE     ONLINE on rhel59dra
ora.gsd                                            OFFLINE    OFFLINE          
ora.net1.network                                   ONLINE     ONLINE on rhel59dra
ora.oc4j                                           ONLINE     ONLINE on rhel59dra
ora.ons                                            ONLINE     ONLINE on rhel59dra
ora.registry.acfs                                  ONLINE     ONLINE on rhel59dra
ora.rhel59dra.ASM1.asm                             ONLINE     ONLINE on rhel59dra
ora.rhel59dra.LISTENER_RHEL59DRA.lsnr              ONLINE     ONLINE on rhel59dra
ora.rhel59dra.LSNR_GTRRAC_RHEL59DRA.lsnr           ONLINE     ONLINE on rhel59dra
ora.rhel59dra.gsd                                  OFFLINE    OFFLINE          
ora.rhel59dra.ons                                  ONLINE     ONLINE on rhel59dra
ora.rhel59dra.vip                                  ONLINE     ONLINE on rhel59dra
ora.rhel59drb.ASM2.asm                             ONLINE     ONLINE on rhel59drb
ora.rhel59drb.LISTENER_RHEL59DRB.lsnr              ONLINE     ONLINE on rhel59drb
ora.rhel59drb.LSNR_GTRRAC_RHEL59DRB.lsnr           ONLINE     ONLINE on rhel59drb
ora.rhel59drb.gsd                                  OFFLINE    OFFLINE          
ora.rhel59drb.ons                                  ONLINE     ONLINE on rhel59drb
ora.rhel59drb.vip                                  ONLINE     ONLINE on rhel59drb
ora.scan1.vip                                      ONLINE     ONLINE on rhel59drb
ora.scan2.vip                                      ONLINE     ONLINE on rhel59dra
ora.scan3.vip                                      ONLINE     ONLINE on rhel59dra