ORA-01503: CREATE CONTROLFILE failed on RMAN duplicate between RAC databases

It was while since I performed an RMAN duplicate from a RAC database to another RAC database. You may find this post useless as there’s a lot of information out there about the error I faced, but all my posts are kind of my own little diary.
So, basically. In order to successfully duplicate one database to another you may need this.

    – TNS setup on the server where the database to be duplicated is hosted. You need to be able to tnsping both, the target and the auxiliary database.

     – Create a parameter file and password file for the auxiliary and startup nomount the first instance.
    – Create a full backup of the target database including archivelogs.
    – Connect to rman to both the target and the auxiliary databases from the auxiliary server:
rman target sys/*****@ auxiliary /
    – Issue the duplicate command:

 duplicate target database to ;
This should successfully finish but I got this error:

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 01/03/2017 18:29:58
RMAN-05501: aborting duplication of target database
RMAN-06136: ORACLE error from auxiliary database: ORA-01503: CREATE CONTROLFILE failed
ORA-12720: operation requires database is in EXCLUSIVE mode
I searched this and the culprit is that my parameter file for the auxiliary had this:

cluster_database = true

By MOS note “Rman duplicate fail with RMAN-06136, ORA-01503, ORA-12720, ORA-00494 enqueue [CF] (Doc ID 1335479.1)”. Duplicate from a RAC database to another RAC database is not supported, hence we need to modify the parameter cluster_database to false in the auxiliary database.
After doing this the duplicate finished correctly.


2 thoughts on “ORA-01503: CREATE CONTROLFILE failed on RMAN duplicate between RAC databases”

  1. Hi Alfredo,long time no see, how you are?!?I placed the auxiliary in startup nomount exclusiveThen in the duplicate command the SPFILE part I placed cluster_database=false.I ended up with a single instance on one of the cluster nodes (usually where I have the listener static entrance).Then added:*.cluster_database_instances=2*.cluster_database=trueBIJ001.instance_name='BIJ001'BIJ002.instance_name='BIJ002'BIJ001.instance_number=1BIJ002.instance_number=2BIJ001.thread=1BIJ002.thread=2BIJ001.undo_tablespace='PSAPUNDO'BIJ002.undo_tablespace='PSAPUNDO2'created spfile and register the cluster databaserestart via srvctl and it worked.As usual, Oracle provides at least 3 methods of getting the same result.Regards,Marius CHisa

Leave a Reply

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