We can add an instance to a cluster database by 3 methods :
- Enterprise Manager
- Manually
  In this post I will demonstrate the method to add an instance manually to a RAC database.
Current scenario
Total no. of nodes in the cluster   : 3
Names of nodes                         : host01, host02, host03
Name of RAC database              : orcl
Instances of orcl database          : orcl1, orcl2
Nodes hosting orcl instances      : host01, host02
Now I want to add another instance orcl3 of orcl database on host03 manually.
Following are the steps which need to be taken:
- Login to orcl database in SQLPLUS as sysdba on one of the existing nodes ,say host01
- create undo tablespace and redo log groups for the instance 3
SQL>create undo tablespace undotbs3 datafile '+DATA';
alter database add logfile thread 3;
alter database add logfile thread 3;
– Set various parameters for the new instance –
SQL>alter system set instance_number = 3         scope=spfile sid='orcl3';
alter system set instance_name = 'orcl3'     scope=spfile sid='orcl3';
alter system set thread = 3                         scope=spfile sid='orcl3';
alter system set undo_tablespace=undotbs3 scope=spfile sid='orcl3';
alter database enable thread 3;
– Stop all instances of the database orcl
$srvctl stop database -d orcl
– Restart database orcl so that new parameters in spfile are read
$srvctl start database -d orcl
—– Add the instance to the database –
$srvctl add instance -d orcl -i orcl3 -n host03
– Start the instance –
$srvctl start instance -d orcl -i orcl3
– Check that all the instances (including the newly added orcl3) are running –
$srvctl status database -d orcl
– Copy the following entry for orcl in tnsnames.ora from host01 to tnsnames.ora on host03 -
      (ADDRESS = (PROTOCOL = TCP)(HOST = = 1521))
      (SERVICE_NAME = orcl)
– Copy the password file from host01 to host03
host01$scp $ORACLE_HOME/dbs/orapwdorcl1
— Test that remote connection can be made from host03 –
host03$sqlplus sys/oracle@orcl as sysdba 

 SQL>sho parameter db_name
I hope this article was useful. Your comments and suggestions are always welcome!
Related links :

RAC Index
11gR2 RAC: Add A Node



  1. In case we have single instance and want to add another instance, 2 more parameters must be updated as below

    alter system set cluster_database=true scope=spfile sid=’*';
    alter system set cluster_database_instance=2 scope=spfile sid=’*';

    Please confirm


    1. Hi Krunal,

      I hope you a RAC database having only a single instance and you want to add another instance to it.
      In that case parameter cluster_database must already be ‘TRUE’. Besides by setting parameter cluster_database_instance, we associate instance number with instance name.
      Hence it should be set as
      alter system set cluster_database_instance=2 scope=spfile sid=’name of the new instance';


      1. Hi Anju,

        thread, instance_name and instance_number are indeed static parameters, however, together with undo_tablespace, which is dynamic, they are instance specific parameters and must be different among instances.

        As a consequence, you can dynamically add the instance and start it through srvctl without stopping the other instances.



Your comments and suggestions are welcome!