Menu Close

Adding nodes in RAC deployed in Exadata Machine

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 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 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 node to new nodes.

cd /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs
scp initcsp1.ora [email protected]:/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/initcsp3.ora
scp orapwcsp1 [email protected]:/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/orapwcsp3

scp initcsp1.ora [email protected]:/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/initcsp4.ora
scp orapwcsp1 [email protected]:/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.

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 few additional steps are also required. I will share a post on that too real soon.

Thanks for reading.

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

error: Content is protected !!