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>;
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
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
2 Comments:
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
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