Some times we need to have an exact replica of the production database data to urgently test an issue encountered in production. If the production database is very large having a clone process running on the production server or taking a fresh full database backup just for the clone is also not desirable as well as they have potential performance implications.
So if we have a physical standby database in place (which is a block for block replica of production) why can we not use that database as a source for the clone – we don’t touch the production server.
We can briefly convert the physical standby database to a snapshot standby database and use the RMAN DUPLICATE FROM ACTIVE database to create the clone database without having to take a fresh full database backup.
This note describes the process of performing a database refresh or clone using the Data Guard Standby database as the source for the clone and not the production primary database.
Read the note ….
Hi Gavin,
Thanks for the document, I was working on the same kind of cloning process (test db from snapshot standby) but somehow at the end of process, its failing with below error and I have tired many options but no luck.
Can you please let me know if you ever face the same issue? I checked with Oracle and they said “cloning via duplicate database from snapshot standby is not possible” 🙂
Error
======
input datafile copy RECID=21269 STAMP=945898254 file name=+DATAC1/EBSCTST/DATAFILE/apps_ts_tx_idx.6630.945897919
datafile 2156 switched to datafile copy
input datafile copy RECID=21270 STAMP=945898254 file name=+DATAC1/EBSCTST/DATAFILE/apps_ts_tx_idx.6631.945897919
contents of Memory Script:
{
set until scn 14078783398512;
recover
clone database
delete archivelog
;
}
executing Memory Script
executing command: SET until clause
Starting recover at 05-JUN-17
using channel ORA_AUX_DISK_1
using channel ORA_AUX_DISK_2
using channel ORA_AUX_DISK_3
using channel ORA_AUX_DISK_4
using channel ORA_AUX_DISK_5
using channel ORA_AUX_DISK_6
using channel ORA_AUX_DISK_7
using channel ORA_AUX_DISK_8
starting media recovery
archived log for thread 1 with sequence 2 is already on disk as file +RECOC1/EBSCTST/ARCHIVELOG/2017_06_05/thread_1_seq_2.404.945898073
archived log for thread 1 with sequence 3 is already on disk as file +RECOC1/EBSCTST/ARCHIVELOG/2017_06_05/thread_1_seq_3.1203.945898073
archived log file name=+RECOC1/EBSCTST/ARCHIVELOG/2017_06_05/thread_1_seq_2.404.945898073 thread=1 sequence=2
archived log file name=+RECOC1/EBSCTST/ARCHIVELOG/2017_06_05/thread_1_seq_3.1203.945898073 thread=1 sequence=3
media recovery complete, elapsed time: 00:00:40
Finished recover at 05-JUN-17
Oracle instance started
Total System Global Area 42949672960 bytes
Fixed Size 7643936 bytes
Variable Size 6174022880 bytes
Database Buffers 36507222016 bytes
Redo Buffers 260784128 bytes
contents of Memory Script:
{
sql clone “alter system set db_name =
”EBSCTST” comment=
”Reset to original value by RMAN” scope=spfile”;
sql clone “alter system reset db_unique_name scope=spfile”;
}
executing Memory Script
sql statement: alter system set db_name = ”EBSCTST” comment= ”Reset to original value by RMAN” scope=spfile
sql statement: alter system reset db_unique_name scope=spfile
Oracle instance started
Total System Global Area 42949672960 bytes
Fixed Size 7643936 bytes
Variable Size 6174022880 bytes
Database Buffers 36507222016 bytes
Redo Buffers 260784128 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE “EBSCTST” RESETLOGS ARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 5
MAXDATAFILES 2800
MAXINSTANCES 5
MAXLOGHISTORY 15188
LOGFILE
GROUP 6 SIZE 4 G ,
GROUP 7 SIZE 4 G ,
GROUP 8 SIZE 4 G ,
GROUP 9 SIZE 4 G ,
GROUP 10 SIZE 4 G
DATAFILE
CHARACTER SET WE8ISO8859P1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 06/05/2017 21:54:09
RMAN-05501: aborting duplication of target database
RMAN-06136: ORACLE error from auxiliary database: ORA-01503: CREATE CONTROLFILE failed
ORA-01565: error in identifying file ”
ORA-17503: ksfdopn:2 Failed to open file
ORA-07202: sltln: invalid parameter to sltln.
RMAN> exit
Thanks in advance