In this post will share the steps to add nodes in RAC database deployed in Exadata machine.
Environment Details:
Total no. of nodes in the cluster : 4
Names of nodes : exad04db01, exad04db02, exad04db03, exad04db04
Name of RAC database : CSP_2
Instances of CSP_2 database : csp1, csp2
Nodes hosting CSP_2 instances : exad04db03, exad04db04
Requirement:
Now, we want to add 2 more instance csp3 & csp4 of CSP_2 database on Exadata machine exad04db01 & exad04db02 manually.
Capture the current details:
Check if Data Guard is unable or not.
show parameter log_archive_config;
DB & services Status
srvctl status service -d csp_2 srvctl status database -d csp_2
Wallet
col wrl_parameter for a60 select * from gv$encryption_wallet;
Redo logs
select thread#,group#,bytes/1024/1024,members,status from v$log order by 1;
col member for a70 SELECT a.group#, a.member, b.bytes/1024/1024 MB FROM v$logfile a, v$log b WHERE a.group# = b.group# order by 1;
Undo tablespace
set line 200 pages 200 col Tablespace for a10 col FILE_NAME format a50 select TABLESPACE_NAME, FILE_NAME, STATUS, autoextensible, bytes/1024/1024/1024 MaxAssignMB , (INCREMENT_BY*(select VALUE from v$spparameter where name='db_block_size'))/1024/1024/1024 INC_MB, maxbytes/1024/1024/1024 MaxUsedMB,BLOCKS from dba_data_files where tablespace_name like '%UNDO%' order by tablespace_name /
Steps which need to be taken:
Login to database in SQLPLUS as sysdba on one of the existing Exadata nodes i.e. exad04db03
create undo tablespace and redo log groups for the instance 3 & 4
create undo tablespace undotbs3 datafile '+DATAC4' size 31G REUSE AUTOEXTEND ON; ALTER DATABASE ADD LOGFILE THREAD 3 GROUP 17 ('+DATAC4','+RECOC4') SIZE 50M; ALTER DATABASE ADD LOGFILE THREAD 3 GROUP 18 ('+DATAC4','+RECOC4') SIZE 50M; ALTER DATABASE ADD LOGFILE THREAD 3 GROUP 19 ('+DATAC4','+RECOC4') SIZE 50M; ALTER DATABASE ADD LOGFILE THREAD 3 GROUP 20 ('+DATAC4','+RECOC4') SIZE 50M; create undo tablespace undotbs4 datafile '+DATAC4' size 31G REUSE AUTOEXTEND ON; ALTER DATABASE ADD LOGFILE THREAD 4 GROUP 21 ('+DATAC4','+RECOC4') SIZE 50M; ALTER DATABASE ADD LOGFILE THREAD 4 GROUP 22 ('+DATAC4','+RECOC4') SIZE 50M; ALTER DATABASE ADD LOGFILE THREAD 4 GROUP 23 ('+DATAC4','+RECOC4') SIZE 50M; ALTER DATABASE ADD LOGFILE THREAD 4 GROUP 24 ('+DATAC4','+RECOC4') SIZE 50M;
Set various parameters for the new instance
alter system set instance_number=3 scope=spfile sid='csp3'; alter system set instance_name = 'csp3' scope=spfile sid='csp3'; alter system set thread = 3 scope=spfile sid='csp3'; alter system set undo_tablespace=undotbs3 scope=spfile sid='csp3'; alter database enable thread 3; alter system set instance_number = 4 scope=spfile sid='csp4'; alter system set instance_name = 'csp4' scope=spfile sid='csp4'; alter system set thread = 4 scope=spfile sid='csp4'; alter system set undo_tablespace=undotbs4 scope=spfile sid='csp4'; alter database enable thread 4;
Local Listener will be node’s vip’s IP
nslookup exad04db01-vip.exa.com Server: 10.208.123.13 Address: 10.208.123.13#53 Name: exad04db01-vip.exa.com Address: 10.208.123.456 ---------------------------------------------------------- nslookup exad04db02-vip.exa.com Server: 10.208.123.13 Address: 10.208.123.13#53 Name: exad04db02-vip.exa.com Address: 10.208.123.457 alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=10.208.123.456)(PORT=1521))' scope=spfile sid='csp3'; alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=10.208.123.457)(PORT=1521))' scope=spfile sid='csp4';
Modify /etc/oratab on new node to contain instance entry.
exad04db01 ============= cat /etc/oratab|grep csp csp3:/u01/app/oracle/product/11.2.0.4/dbhome_1:N # line added by Agent csp_2:/u01/app/oracle/product/11.2.0.4/dbhome_1:N # line added by Agent exad04db02 ============= cat /etc/oratab|grep csp csp4:/u01/app/oracle/product/11.2.0.4/dbhome_1:N # line added by Agent csp_2:/u01/app/oracle/product/11.2.0.4/dbhome_1:N # line added by Agent
Copy and rename PWfile and init<sid>.ora file from existing Exadata node to new nodes.
cd /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs scp initcsp1.ora oracle@exad04db01:/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/initcsp3.ora scp orapwcsp1 oracle@exad04db01:/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/orapwcsp3 scp initcsp1.ora oracle@exad04db02:/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/initcsp4.ora scp orapwcsp1 oracle@exad04db02:/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/orapwcsp4
Create directory and softlink for wallet on all the new NODES added to the cluster (Only If the DB have wallet enabled).
First Check SQLNET.ORA have below entry or not, if not, put it there
ENCRYPTION_WALLET_LOCATION =(SOURCE = (METHOD = FILE)(METHOD_DATA =(DIRECTORY = /u01/app/oracle/admin/$ORACLE_SID/wallet )))
exad04db01 ============= mkdir –p /u01/app/oracle/admin/csp3 pwd /u01/app/oracle/admin/csp3 ln -s /wallet/wallet-keys/csp_2 /u01/app/oracle/admin/csp3/wallet ls -lrth lrwxrwxrwx 1 oracle oinstall 29 May 21 14:42 wallet -> /wallet/wallet-keys/csp_2 exad04db01 ============= mkdir –p /u01/app/oracle/admin/csp4 pwd /u01/app/oracle/admin/csp4 ln -s /wallet/wallet-keys/csp_2 /u01/app/oracle/admin/csp4/wallet ls -lrth lrwxrwxrwx 1 oracle oinstall 29 May 21 14:42 wallet -> /wallet/wallet-keys/csp_2
Add new instance in Grid Infrastructure
srvctl add instance -d csp_2 -i csp3 -n exad04dbadm01 srvctl add instance -d csp_2 -i csp4 -n exad04dbadm02 srvctl status database -d csp_2
Start the new instance
srvctl start instance -d csp_2 -i csp3 srvctl start instance -d csp_2 -i csp4 srvctl status database -d csp_2
Verify the instance is open, Login using SQLPLUS.
ps -ef|grep smon|grep csp oracle 335779 1 0 15:28 ? 00:00:00 ora_smon_csp3 -- ps -ef|grep smon|grep csp oracle 316619 1 0 15:31 ? 00:00:00 ora_smon_csp4 select instance_number,instance_name,thread#,status from gv$instance;
Add/ Modify/Start the services to the newly inducted NODES in Exadata.
srvctl add service -d csp_2 -s csp3_cc -r csp3 srvctl add service -d csp_2 -s csp4_cc -r csp4 srvctl start service -d csp_2 -s csp3_cc srvctl start service -d csp_2 -s csp4_cc srvctl modify service -d csp_2 -s CSP_ADHOC -n -i csp1,csp2,csp3,csp4 srvctl start service -d csp_2 -s CSP_ADHOC -i csp3 srvctl start service -d csp_2 -s CSP_ADHOC -i csp4 srvctl modify service -d csp_2 -s csp -n -i csp1,csp2,csp3,csp4 srvctl start service -d csp_2 -s csp -i csp3 srvctl start service -d csp_2 -s csp -i csp4
srvctl status service -d csp_2 Service csp is running on instance(s) csp3,csp4,csp1,csp2 Service csp1_cc is running on instance(s) csp1 Service csp2_cc is running on instance(s) csp2 Service csp3_cc is running on instance(s) csp3 Service csp4_cc is running on instance(s) csp4 Service CSP_ADHOC is running on instance(s) csp3,csp4,csp1,csp2
That all, incase of Data Guard Setup is there is Exadata, few additional steps are also required. I will share a post on that too real soon.
Thanks for reading…
subscribe to get notified for latest post.