You Asked
Hi Ask Tom team,
Do you have any information that CloneDB is not working anymore in 18c or 19c.
I already have MOS-SR (SR 3-25408180791) open since march this year. First without any additional answers they told me that this is a bug (BUG 32087287 - ORA-17515: DNFS PACKAGE CALL FAILED WHEN RUNNING DBMS_DNFS.CLONEDB_RENAMEFILE The bug is actively being worked by development.)
Then I must wait three months for development answers through MOS officer:
- per development entire database should be in read only mode otherwise the method DBMS_DNFS.CLONEDB_RENAMEFILE will not work.
- Development confirmed that it will not work for "incremental backup with copy recovery" as it is not frozen
- What i meat is, there is something called as backup store which needs to be frozen. It is not frozen in level 0 backups or incremental backups
- The backup is in media recovery, this is what the error says as mentioned below and which why the procedure does not work meaning the back is in a fuzzy state. #define KCVFHMFZ 0x10 /* Media recovery FuZzy - file in media recovery
- So far i have not found any documentation that talks about this issues. It was only mentioned by development.
My source for CloneDB was Incrementally Updated Backup ( RMAN incremental backup with copy recovery) in 12.1.0.2. which works for 10 years at least once a week.
--
I coudn not belive that that kind ob backup is not good for CloneDB anymore. If this will be true than whole idea of Clonedb and copy-on-write techology will be useless .
Do you have any information about that ?.
Regards Dejan
and Connor said...
Thanks for your patience - just needed to get my clones all up and running for testing
I'm having no issues with cloning on my 19.10 and above instance.
Demo 1 - clone on cold backup
=========================
(source)
C:\>rman target /
Recovery Manager: Release 19.0.0.0.0 - Production on Mon Sep 6 11:55:48 2021
Version 19.11.0.0.0
Copyright (c) 1982, 2021, Oracle and/or its affiliates. All rights reserved.
connected to target database: DB19S (DBID=2801206271, not open)
RMAN> run {
2> allocate channel c1 device type disk format 'X:\oracle\bkp\db19s\%U';
3> backup full as copy database;
4> }
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=614 device type=DISK
Starting backup at 06-SEP-21
channel c1: starting datafile copy
input datafile file number=00001 name=X:\ORACLE\ORADATA\DB19S\SYSTEM01.DBF
output file name=X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-SYSTEM_FNO-1_0708COAB tag=TAG20210906T115555 RECID=5 STAMP=1082548563
channel c1: datafile copy complete, elapsed time: 00:00:15
channel c1: starting datafile copy
input datafile file number=00003 name=X:\ORACLE\ORADATA\DB19S\SYSAUX01.DBF
output file name=X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-SYSAUX_FNO-3_0808COAQ tag=TAG20210906T115555 RECID=6 STAMP=1082548576
channel c1: datafile copy complete, elapsed time: 00:00:08
channel c1: starting datafile copy
input datafile file number=00004 name=X:\ORACLE\ORADATA\DB19S\UNDOTBS01.DBF
output file name=X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-UNDOTBS1_FNO-4_0908COB2 tag=TAG20210906T115555 RECID=7 STAMP=1082548581
channel c1: datafile copy complete, elapsed time: 00:00:07
channel c1: starting datafile copy
input datafile file number=00007 name=X:\ORACLE\ORADATA\DB19S\USERS01.DBF
output file name=X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-USERS_FNO-7_0A08COB9 tag=TAG20210906T115555 RECID=8 STAMP=1082548585
channel c1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 06-SEP-21
Starting Control File and SPFILE Autobackup at 06-SEP-21
piece handle=C:\ORACLE\PRODUCT\19\DATABASE\C-2801206271-20210906-02 comment=NONE
Finished Control File and SPFILE Autobackup at 06-SEP-21
released channel: c1
RMAN>
(target)
SQL> host del /q X:\oracle\oradata\DB19c\*.*
SQL> host del /q X:\oracle\nfs\*.*
SQL> startup force nomount pfile="X:\oracle\bkp\db19s\scripts\init.ora"
ORACLE instance started.
Total System Global Area 3154114168 bytes
Fixed Size 9033336 bytes
Variable Size 671088640 bytes
Database Buffers 2466250752 bytes
Redo Buffers 7741440 bytes
SQL> host dir X:\ORACLE\BKP\DB19S
Volume in drive X is SSD
Volume Serial Number is 3E16-F9D0
Directory of X:\ORACLE\BKP\DB19S
06/09/2021 11:56 AM <DIR> .
06/09/2021 11:56 AM <DIR> ..
06/09/2021 11:56 AM 1,059,069,952 DATA_D-DB19S_I-2801206271_TS-SYSAUX_FNO-3_0808COAQ
06/09/2021 11:56 AM 1,405,100,032 DATA_D-DB19S_I-2801206271_TS-SYSTEM_FNO-1_0708COAB
06/09/2021 11:56 AM 770,711,552 DATA_D-DB19S_I-2801206271_TS-UNDOTBS1_FNO-4_0908COB2
06/09/2021 11:56 AM 26,222,592 DATA_D-DB19S_I-2801206271_TS-USERS_FNO-7_0A08COB9
17/03/2020 11:21 AM <DIR> scripts
4 File(s) 3,261,104,128 bytes
3 Dir(s) 146,751,094,784 bytes free
SQL> CREATE CONTROLFILE SET DATABASE "DB19C" RESETLOGS ARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 'X:\ORACLE\ORADATA\DB19C\REDO01.LOG' SIZE 40M BLOCKSIZE 512,
9 GROUP 2 'X:\ORACLE\ORADATA\DB19C\REDO02.LOG' SIZE 40M BLOCKSIZE 512,
10 GROUP 3 'X:\ORACLE\ORADATA\DB19C\REDO03.LOG' SIZE 40M BLOCKSIZE 512
11 DATAFILE
12 'X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-SYSTEM_FNO-1_0708COAB',
13 'X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-SYSAUX_FNO-3_0808COAQ',
14 'X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-UNDOTBS1_FNO-4_0908COB2',
15 'X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-USERS_FNO-7_0A08COB9'
16 CHARACTER SET AL32UTF8
17 /
Control file created.
SQL> begin
2 dbms_dnfs.clonedb_renamefile(
3 'X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-SYSTEM_FNO-1_0708COAB',
4 'X:\oracle\nfs\SYSTEM01.DBF');
5 dbms_dnfs.clonedb_renamefile(
6 'X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-SYSAUX_FNO-3_0808COAQ',
7 'X:\oracle\nfs\SYSAUX01.DBF' );
8 dbms_dnfs.clonedb_renamefile(
9 'X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-UNDOTBS1_FNO-4_0908COB2',
10 'X:\oracle\nfs\UNDOTBS01.DBF');
11 dbms_dnfs.clonedb_renamefile(
12 'X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-USERS_FNO-7_0A08COB9',
13 'X:\oracle\nfs\USERS01.DBF');
14 end;
15 /
PL/SQL procedure successfully completed.
SQL> recover database using backup controlfile until cancel ;
ORA-00279: change 16330708366614 generated at 09/06/2021 11:53:25 needed for thread 1
ORA-00289: suggestion : D:\ORACLE\ARCH\DB19S_ARC0000000074_1053168707.0001
ORA-00280: change 16330708366614 for thread 1 is in sequence #74
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
SQL> alter database open resetlogs;
Database altered.
SQL>
Demo 2 - clone on cold backup and roll forward through archives
=================================================
(source)
SQL> create table new_stuff as select * from dba_objects;
Table created.
SQL> alter system archive log current;
System altered.
(target)
SQL> startup force nomount pfile="X:\oracle\bkp\db19s\scripts\init.ora"
ORACLE instance started.
Total System Global Area 3154114168 bytes
Fixed Size 9033336 bytes
Variable Size 671088640 bytes
Database Buffers 2466250752 bytes
Redo Buffers 7741440 bytes
SQL> host del /q X:\oracle\oradata\DB19c\*.*
SQL> host del /q X:\oracle\nfs\*.*
SQL> CREATE CONTROLFILE SET DATABASE "DB19C" RESETLOGS ARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 'X:\ORACLE\ORADATA\DB19C\REDO01.LOG' SIZE 40M BLOCKSIZE 512,
9 GROUP 2 'X:\ORACLE\ORADATA\DB19C\REDO02.LOG' SIZE 40M BLOCKSIZE 512,
10 GROUP 3 'X:\ORACLE\ORADATA\DB19C\REDO03.LOG' SIZE 40M BLOCKSIZE 512
11 DATAFILE
12 'X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-SYSTEM_FNO-1_0708COAB',
13 'X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-SYSAUX_FNO-3_0808COAQ',
14 'X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-UNDOTBS1_FNO-4_0908COB2',
15 'X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-USERS_FNO-7_0A08COB9'
16 CHARACTER SET AL32UTF8
17 /
Control file created.
SQL> begin
2 dbms_dnfs.clonedb_renamefile(
3 'X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-SYSTEM_FNO-1_0708COAB',
4 'X:\oracle\nfs\SYSTEM01.DBF');
5 dbms_dnfs.clonedb_renamefile(
6 'X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-SYSAUX_FNO-3_0808COAQ',
7 'X:\oracle\nfs\SYSAUX01.DBF' );
8 dbms_dnfs.clonedb_renamefile(
9 'X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-UNDOTBS1_FNO-4_0908COB2',
10 'X:\oracle\nfs\UNDOTBS01.DBF');
11 dbms_dnfs.clonedb_renamefile(
12 'X:\ORACLE\BKP\DB19S\DATA_D-DB19S_I-2801206271_TS-USERS_FNO-7_0A08COB9',
13 'X:\oracle\nfs\USERS01.DBF');
14 end;
15 /
PL/SQL procedure successfully completed.
SQL> recover database using backup controlfile until cancel ;
ORA-00279: change 16330708366614 generated at 09/06/2021 11:53:25 needed for thread 1
ORA-00289: suggestion : D:\ORACLE\ARCH\DB19S_ARC0000000074_1053168707.0001
ORA-00280: change 16330708366614 for thread 1 is in sequence #74
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
ORA-00279: change 16330708367839 generated at 09/06/2021 12:02:10 needed for thread 1
ORA-00289: suggestion : D:\ORACLE\ARCH\DB19S_ARC0000000075_1053168707.0001
ORA-00280: change 16330708367839 for thread 1 is in sequence #75
ORA-00278: log file 'D:\ORACLE\ARCH\DB19S_ARC0000000074_1053168707.0001' no longer needed for this recovery
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
SQL> alter database open resetlogs;
Database altered.
SQL>
SQL> select count(*) from mcdonac.new_stuff;
COUNT(*)
----------
73579
Demo 2 - clone on rolling incrementals
=========================
(source - DDL as well done during various incrementals)
SQL> create table new_stuff2 as select * from dba_objects;
Table created.
SQL> alter system archive log current;
System altered.
SQL> create table new_stuff3 as select * from dba_objects;
Table created.
SQL> alter system archive log current;
System altered.
SQL>
RMAN> run {
2> allocate channel c1 device type disk format 'X:\oracle\bkp\db19s\INC%U';
3> recover copy of database;
4> backup incremental level 1 for recover of copy database;
5> }
allocated channel: c1
channel c1: SID=1105 device type=DISK
Starting recover at 06-SEP-21
no copy of datafile 1 found to recover
no copy of datafile 3 found to recover
no copy of datafile 4 found to recover
no copy of datafile 7 found to recover
Finished recover at 06-SEP-21
Starting backup at 06-SEP-21
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00001 name=X:\ORACLE\ORADATA\DB19S\SYSTEM01.DBF
input datafile file number=00003 name=X:\ORACLE\ORADATA\DB19S\SYSAUX01.DBF
input datafile file number=00004 name=X:\ORACLE\ORADATA\DB19S\UNDOTBS01.DBF
input datafile file number=00007 name=X:\ORACLE\ORADATA\DB19S\USERS01.DBF
channel c1: starting piece 1 at 06-SEP-21
channel c1: finished piece 1 at 06-SEP-21
piece handle=X:\ORACLE\BKP\DB19S\INC0K08CP82_1_1 tag=TAG20210906T121146 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:07
Finished backup at 06-SEP-21
Starting Control File and SPFILE Autobackup at 06-SEP-21
piece handle=C:\ORACLE\PRODUCT\19\DATABASE\C-2801206271-20210906-06 comment=NONE
Finished Control File and SPFILE Autobackup at 06-SEP-21
released channel: c1
RMAN>
RMAN> run {
2> allocate channel c1 device type disk format 'X:\oracle\bkp\db19s\INC%U';
3> recover copy of database;
4> backup incremental level 1 for recover of copy database;
5> }
allocated channel: c1
channel c1: SID=1105 device type=DISK
Starting recover at 06-SEP-21
channel c1: starting incremental datafile backup set restore
channel c1: specifying datafile copies to recover
recovering datafile copy file number=00001 name=X:\ORACLE\BKP\DB19S\INCDATA_D-DB19S_I-2801206271_TS-SYSTEM_FNO-1_0D08CP57
recovering datafile copy file number=00003 name=X:\ORACLE\BKP\DB19S\INCDATA_D-DB19S_I-2801206271_TS-SYSAUX_FNO-3_0E08CP5M
recovering datafile copy file number=00004 name=X:\ORACLE\BKP\DB19S\INCDATA_D-DB19S_I-2801206271_TS-UNDOTBS1_FNO-4_0F08CP5T
recovering datafile copy file number=00007 name=X:\ORACLE\BKP\DB19S\INCDATA_D-DB19S_I-2801206271_TS-USERS_FNO-7_0G08CP64
channel c1: reading from backup piece X:\ORACLE\BKP\DB19S\INC0K08CP82_1_1
channel c1: piece handle=X:\ORACLE\BKP\DB19S\INC0K08CP82_1_1 tag=TAG20210906T121146
channel c1: restored backup piece 1
channel c1: restore complete, elapsed time: 00:00:01
Finished recover at 06-SEP-21
Starting backup at 06-SEP-21
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00001 name=X:\ORACLE\ORADATA\DB19S\SYSTEM01.DBF
input datafile file number=00003 name=X:\ORACLE\ORADATA\DB19S\SYSAUX01.DBF
input datafile file number=00004 name=X:\ORACLE\ORADATA\DB19S\UNDOTBS01.DBF
input datafile file number=00007 name=X:\ORACLE\ORADATA\DB19S\USERS01.DBF
channel c1: starting piece 1 at 06-SEP-21
channel c1: finished piece 1 at 06-SEP-21
piece handle=X:\ORACLE\BKP\DB19S\INC0M08CP96_1_1 tag=TAG20210906T121222 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:07
Finished backup at 06-SEP-21
Starting Control File and SPFILE Autobackup at 06-SEP-21
piece handle=C:\ORACLE\PRODUCT\19\DATABASE\C-2801206271-20210906-07 comment=NONE
Finished Control File and SPFILE Autobackup at 06-SEP-21
released channel: c1
RMAN>
RMAN>
(target)
SQL> startup force nomount pfile="X:\oracle\bkp\db19s\scripts\init.ora"
ORACLE instance started.
Total System Global Area 3154114168 bytes
Fixed Size 9033336 bytes
Variable Size 671088640 bytes
Database Buffers 2466250752 bytes
Redo Buffers 7741440 bytes
SQL> host del /q X:\oracle\oradata\DB19c\*.*
SQL> host del /q X:\oracle\nfs\*.*
SQL> host dir X:\ORACLE\BKP\DB19S\INC*TS*
Volume in drive X is SSD
Volume Serial Number is 3E16-F9D0
Directory of X:\ORACLE\BKP\DB19S
06/09/2021 12:12 PM 1,059,069,952 INCDATA_D-DB19S_I-2801206271_TS-SYSAUX_FNO-3_0E08CP5M
06/09/2021 12:12 PM 1,405,100,032 INCDATA_D-DB19S_I-2801206271_TS-SYSTEM_FNO-1_0D08CP57
06/09/2021 12:12 PM 770,711,552 INCDATA_D-DB19S_I-2801206271_TS-UNDOTBS1_FNO-4_0F08CP5T
06/09/2021 12:12 PM 39,329,792 INCDATA_D-DB19S_I-2801206271_TS-USERS_FNO-7_0G08CP64
4 File(s) 3,274,211,328 bytes
0 Dir(s) 143,427,436,544 bytes free
SQL> CREATE CONTROLFILE SET DATABASE "DB19C" RESETLOGS ARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 'X:\ORACLE\ORADATA\DB19C\REDO01.LOG' SIZE 40M BLOCKSIZE 512,
9 GROUP 2 'X:\ORACLE\ORADATA\DB19C\REDO02.LOG' SIZE 40M BLOCKSIZE 512,
10 GROUP 3 'X:\ORACLE\ORADATA\DB19C\REDO03.LOG' SIZE 40M BLOCKSIZE 512
11 DATAFILE
12 'X:\ORACLE\BKP\DB19S\INCDATA_D-DB19S_I-2801206271_TS-SYSTEM_FNO-1_0D08CP57',
13 'X:\ORACLE\BKP\DB19S\INCDATA_D-DB19S_I-2801206271_TS-SYSAUX_FNO-3_0E08CP5M',
14 'X:\ORACLE\BKP\DB19S\INCDATA_D-DB19S_I-2801206271_TS-UNDOTBS1_FNO-4_0F08CP5T',
15 'X:\ORACLE\BKP\DB19S\INCDATA_D-DB19S_I-2801206271_TS-USERS_FNO-7_0G08CP64'
16 CHARACTER SET AL32UTF8
17 /
Control file created.
SQL> begin
2 dbms_dnfs.clonedb_renamefile(
3 'X:\ORACLE\BKP\DB19S\INCDATA_D-DB19S_I-2801206271_TS-SYSTEM_FNO-1_0D08CP57',
4 'X:\oracle\nfs\SYSTEM01.DBF');
5 dbms_dnfs.clonedb_renamefile(
6 'X:\ORACLE\BKP\DB19S\INCDATA_D-DB19S_I-2801206271_TS-SYSAUX_FNO-3_0E08CP5M',
7 'X:\oracle\nfs\SYSAUX01.DBF' );
8 dbms_dnfs.clonedb_renamefile(
9 'X:\ORACLE\BKP\DB19S\INCDATA_D-DB19S_I-2801206271_TS-UNDOTBS1_FNO-4_0F08CP5T',
10 'X:\oracle\nfs\UNDOTBS01.DBF');
11 dbms_dnfs.clonedb_renamefile(
12 'X:\ORACLE\BKP\DB19S\INCDATA_D-DB19S_I-2801206271_TS-USERS_FNO-7_0G08CP64',
13 'X:\oracle\nfs\USERS01.DBF');
14 end;
15 /
PL/SQL procedure successfully completed.
SQL> recover database using backup controlfile until cancel ;
ORA-00279: change 16330708368977 generated at 09/06/2021 12:11:46 needed for thread 1
ORA-00289: suggestion : D:\ORACLE\ARCH\DB19S_ARC0000000076_1053168707.0001
ORA-00280: change 16330708368977 for thread 1 is in sequence #76
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
ORA-00279: change 16330708369156 generated at 09/06/2021 12:12:13 needed for thread 1
ORA-00289: suggestion : D:\ORACLE\ARCH\DB19S_ARC0000000077_1053168707.0001
ORA-00280: change 16330708369156 for thread 1 is in sequence #77
ORA-00278: log file 'D:\ORACLE\ARCH\DB19S_ARC0000000076_1053168707.0001' no longer needed for this recovery
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
SQL> alter database open resetlogs;
Database altered.
SQL> select count(*) from mcdonac.new_stuff3;
COUNT(*)
----------
73581
SQL>
So I think clonedb is working ok
Rating
(3 ratings)
Is this answer out of date? If it is, please let us know via a Comment