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.



  2. Hi there, thanks for the great article. It’s really helpful.

    I have a question about removing the failed instance from the cluster. For example host01 and host02 are both working in cluster, but let’s say, host02 is destroyed and replaced with a new Oracle server that needs to be re-added to the cluster. This is the real failover scenario when host02 is no longer accessible (destroyed).

    In this case, I assume, the correct procedure would be:
    1. Clean-up/delete failed member from cluster (host02).
    2. Repeat the procedure of adding new node to the cluster by following the guidelines of this article.

    Is my understanding correct?
    How would you accomplish step1?

    Thanks in advance.

Leave a Reply to Anju Garg Cancel reply