<<Back to Oracle Backup & Recovery Main Page
RMAN Duplicate Fails With Error 19755: Block Change Tracking File Not Found
Media Recovery failed with error 19755
Recovery interrupted!
Recovered data files to a consistent state at change 456916620830
Wed Jan 02 11:59:56 2019
Errors in file /u01/app/oracle/diag/rdbms/testdb/testdb/trace/testdb_pr00_285508.trc:
ORA-00283: recovery session canceled due to errors
ORA-19755: could not open change tracking file
ORA-19750: change tracking file: '+DATA/proddb/CHANGETRACKING/ctf.1268.962563881'
ORA-17503: ksfdopn:2 Failed to open file +DATA/proddb/CHANGETRACKING/ctf.1268.962563881
ORA-15012: ASM file '+DATA/proddb/CHANGETRACKING/ctf.1268.962563881' does not exist
ORA-10877 signalled during: alter database recover logfile '+DATA/testdb/ARCHIVELOG/2019_01_02/thread_1_seq_39786.1081.996494303'...
Wed Jan 02 11:59:57 2019
Recovery interrupted!
Recovered data files to a consistent state at change 456916620830
Wed Jan 02 11:59:56 2019
Errors in file /u01/app/oracle/diag/rdbms/testdb/testdb/trace/testdb_pr00_285508.trc:
ORA-00283: recovery session canceled due to errors
ORA-19755: could not open change tracking file
ORA-19750: change tracking file: '+DATA/proddb/CHANGETRACKING/ctf.1268.962563881'
ORA-17503: ksfdopn:2 Failed to open file +DATA/proddb/CHANGETRACKING/ctf.1268.962563881
ORA-15012: ASM file '+DATA/proddb/CHANGETRACKING/ctf.1268.962563881' does not exist
ORA-10877 signalled during: alter database recover logfile '+DATA/testdb/ARCHIVELOG/2019_01_02/thread_1_seq_39786.1081.996494303'...
Wed Jan 02 11:59:57 2019
Cause
RMAN Duplicate command is trying to open the block change tracking file from Prod database which is of course not available and should not be available
Solution:
The bug is described in oracle note Doc ID 1098638.1. Although the note says that the bug is fixed in 12.1, I have issue even in version 12.1
Include SET NEWNAME FOR BLOCK CHANGE TRACKING FILE in your RMAN duplicate script as shown below and re-run the duplicate
run
{
SET NEWNAME FOR BLOCK CHANGE TRACKING FILE TO '/oracle/oradata/TESTDB/block_change.bct';
...
{
SET NEWNAME FOR BLOCK CHANGE TRACKING FILE TO '/oracle/oradata/TESTDB/block_change.bct';
...
duplicate database PRODDB DBID 395734896 to TESTDB...;
}
}
OR if you are using ASM
run
{
SET NEWNAME FOR BLOCK CHANGE TRACKING FILE TO '+DATA';
...
duplicate database PRODDB DBID 395734896 to TESTDB...;
{
SET NEWNAME FOR BLOCK CHANGE TRACKING FILE TO '+DATA';
...
duplicate database PRODDB DBID 395734896 to TESTDB...;
...........
}
If you are lucky the solution above may work for you but It really did not worked for me.
Solution That Worked For Me
Disable the Block Change Tracking in auxiliary database (ie in the duplicated database) as soon as it is mounted
Triggered the clean duplicate
Waited for the controlfile to be restored and Auxiliary database got mounted.
disabled the block change tracking in auxiliary database (ie in the duplicated database) as soon as it is mounted
SQL> alter database disable block change tracking;
Database altered.
SQL> select * from v$block_change_tracking;
STATUS FILENAME BYTES CON_ID
------------------------------ ---------- ---------- ----------
DISABLED
Please write in the comment if the solution worked for you as well
Solution That Worked For Me
Disable the Block Change Tracking in auxiliary database (ie in the duplicated database) as soon as it is mounted
Triggered the clean duplicate
Waited for the controlfile to be restored and Auxiliary database got mounted.
disabled the block change tracking in auxiliary database (ie in the duplicated database) as soon as it is mounted
SQL> alter database disable block change tracking;
Database altered.
SQL> select * from v$block_change_tracking;
STATUS FILENAME BYTES CON_ID
------------------------------ ---------- ---------- ----------
DISABLED
Please write in the comment if the solution worked for you as well
Comments
Post a Comment