Alfredo Krieg's DBA blog - Oracle ACE: ORA-01503: CREATE CONTROLFILE failed on RMAN duplicate between RAC databases

Tuesday, January 10, 2017

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/*****@<target_db> auxiliary /

    - Issue the duplicate command:

 duplicate target database to <auxiliary_db>;


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.


Thanks,

Alfredo

Labels: , ,

2 Comments:

At January 26, 2017 at 5:19 AM , Blogger djmario_ro said...

Hi Alfredo,

long time no see, how you are?!?

I placed the auxiliary in startup nomount exclusive
Then 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=true
BIJ001.instance_name='BIJ001'
BIJ002.instance_name='BIJ002'
BIJ001.instance_number=1
BIJ002.instance_number=2
BIJ001.thread=1
BIJ002.thread=2
BIJ001.undo_tablespace='PSAPUNDO'
BIJ002.undo_tablespace='PSAPUNDO2'

created spfile and register the cluster database
restart via srvctl and it worked.

As usual, Oracle provides at least 3 methods of getting the same result.

Regards,
Marius CHisa

 
At January 27, 2017 at 9:52 AM , Blogger Alfredo Krieg said...

Hey Marius!!!

I'm good thanks! How are you doing?

I agree there are different ways to do it. Thanks for sharing your approach.

Thanks,
Alfredo

 

Post a Comment

Subscribe to Post Comments [Atom]

<< Home