Besides retaining information about backups in the controlfile, Oracle allows the use of an (external) Recovery Catalog schema. This schema is queryable via SQL in the same manner as querying any user / application schema.
Let's start with a database that already has backups present but created without a Recovery Catalog Schema.
I now create a Catalog Schema and register this database into that schema. There are 4 steps to this. The first is to create the database that will hold t he Catalog Schema (here, we presume that the database has been created before today's steps). The next is to create the database account for the Catalog Schema (I create the account RCAT_OWNER). The third step is to login to the Catalog Schema with RMAN and run the CREATE CATALOG command. The final step is to create an RMAN connection from the TARGET database to the Catalog and REGISTER the database.
When my (TARGET) database ("ORCL") is registered, Oracle automatically does a RESYNC CATALOG. Can I now see my backups in the Catalog ?
Why does it show only the latest two backups ? What about the preceding two backups that I could see in V$BACKUP_DATAFILE ? Let me check those backups without a CATALOG connection.
When I disconnect from the Catalog Schema and do a local only (TARGET) connection, I can see 4 backups of the datafile. So, what gives ? Let me try an SQL query on V$BACKUP_DATAFILE.
(As an aside : Note above how there an be discrepancy in the listings showed by LIST BACKUP in the two scenarios (a) without a Recovery Catalog connection and (b) with a Recovery Catalog that was created after the last RESETLOGS). This is something to remember.
Notice that I have added two columns (RESETLOGS_CHANGE# and RESETLOGS_TIME) in the query. Now, I see that the two older backups were from an *older* incarnation of the database. They have a different RESETLOGS_CHANGE# / RESETLOGS_TIME. So, those backups of the older incarnation are not cataloged into the Catalog Schema !
Can I do anything about this ? It seems that the full RESYNC doesn't resync for backups of previous incarnations. Can I reset my RETENTION POLICY and then do a RESYNC ?
No, extending the Recovery Window still doesn't help. Can I try something else ? What about the CATALOG command ?
Well, apparently, even the CATALOG command refuses to catalog backup pieces from an older incarnation !
So, it seems that :
1. If you've done a RESETLOGS recently and even though the controlfile may show previous backups, if you create a Catalog Schema after the RESETLOGS, previous backups (i.e. of the preceding incarnation) are not visible in the Catalog (disconnecting from the Catalog does allow you to view the previous backups in RMAN !)
2. The CATALOG command also will not include the previous backups, it will only accept backups of the current incarnation.
This testing has been done with 11.2.0.2 Has the behaviour changed in 11.2.0.4 / 12.1.0.1 / 12.1.0.2 ?
.
.
.
Let's start with a database that already has backups present but created without a Recovery Catalog Schema.
[oracle@localhost ~]$ sqlplus '/ as sysdba' SQL*Plus: Release 11.2.0.2.0 Production on Sun Aug 30 19:48:30 2015 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SYS>select to_char(completion_time,'DD-MON HH24:MI') Completed_at, datafile_blocks, blocks_read 2 from v$backup_datafile 3 where file#=1 4 order by completion_time; COMPLETED_AT DATAFILE_BLOCKS BLOCKS_READ --------------------- --------------- ----------- 01-AUG 22:10 107648 107648 10-AUG 15:14 107648 107648 10-AUG 19:58 107648 107648 30-AUG 16:59 107648 107648 SYS>
I now create a Catalog Schema and register this database into that schema. There are 4 steps to this. The first is to create the database that will hold t he Catalog Schema (here, we presume that the database has been created before today's steps). The next is to create the database account for the Catalog Schema (I create the account RCAT_OWNER). The third step is to login to the Catalog Schema with RMAN and run the CREATE CATALOG command. The final step is to create an RMAN connection from the TARGET database to the Catalog and REGISTER the database.
[oracle@localhost ~]$ sqlplus system/oracle@rcat SQL*Plus: Release 11.2.0.2.0 Production on Sun Aug 30 19:52:15 2015 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SYSTEM>create user rcat_owner identified by rcat_owner 2 default tablespace users quota unlimited on users; User created. SYSTEM>grant create session to rcat_owner; Grant succeeded. SYSTEM>grant recovery_catalog_owner to rcat_owner; Grant succeeded. SYSTEM> SYSTEM>exit Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options [oracle@localhost ~]$ rman catalog rcat_owner@rcat Recovery Manager: Release 11.2.0.2.0 - Production on Sun Aug 30 19:53:26 2015 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. recovery catalog database Password: connected to recovery catalog database RMAN> create catalog; recovery catalog created RMAN> exit Recovery Manager complete. [oracle@localhost ~]$ rman target / catalog rcat_owner/rcat_owner@rcat Recovery Manager: Release 11.2.0.2.0 - Production on Sun Aug 30 19:55:59 2015 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1229390655) connected to recovery catalog database RMAN> register database; database registered in recovery catalog starting full resync of recovery catalog full resync complete RMAN>
When my (TARGET) database ("ORCL") is registered, Oracle automatically does a RESYNC CATALOG. Can I now see my backups in the Catalog ?
RMAN> list backup of datafile 1; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 381 Full 863.89M DISK 00:03:38 10-AUG-15 BP Key: 391 Status: AVAILABLE Compressed: YES Tag: TAG20150810T195515 Piece Name: /NEW_FS/oracle/FRA/HEMANTDB/backupset/2015_08_10/o1_mf_nnndf_TAG20150810T195515_bwk493jn_.bkp List of Datafiles in backup set 381 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 14186110 10-AUG-15 /home/oracle/app/oracle/oradata/orcl/system01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 385 Full 238.12M DISK 00:01:09 30-AUG-15 BP Key: 395 Status: AVAILABLE Compressed: YES Tag: TAG20150830T165804 Piece Name: /NEW_FS/oracle/FRA/HEMANTDB/backupset/2015_08_30/o1_mf_nnndf_TAG20150830T165804_by5kdwrb_.bkp List of Datafiles in backup set 385 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 14198051 30-AUG-15 /home/oracle/app/oracle/oradata/orcl/system01.dbf RMAN>
Why does it show only the latest two backups ? What about the preceding two backups that I could see in V$BACKUP_DATAFILE ? Let me check those backups without a CATALOG connection.
RMAN> exit Recovery Manager complete. [oracle@localhost ~]$ rman target / Recovery Manager: Release 11.2.0.2.0 - Production on Sun Aug 30 19:59:59 2015 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1229390655) RMAN> list backup of datafile 1; using target database control file instead of recovery catalog List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 254 Full 733.27M DISK 00:04:51 01-AUG-15 BP Key: 266 Status: AVAILABLE Compressed: YES Tag: TAG20150801T220612 Piece Name: /NEW_FS/oracle/FRA/HEMANTDB/backupset/2015_08_01/o1_mf_nnndf_TAG20150801T220612_bvsnlnpn_.bkp List of Datafiles in backup set 254 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 14157609 01-AUG-15 /home/oracle/app/oracle/oradata/orcl/system01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 262 Full 733.23M DISK 00:03:17 10-AUG-15 BP Key: 274 Status: AVAILABLE Compressed: YES Tag: TAG20150810T151144 Piece Name: /NEW_FS/oracle/FRA/HEMANTDB/backupset/2015_08_10/o1_mf_nnndf_TAG20150810T151144_bwjmojs6_.bkp List of Datafiles in backup set 262 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 14158847 10-AUG-15 /home/oracle/app/oracle/oradata/orcl/system01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 271 Full 863.89M DISK 00:03:38 10-AUG-15 BP Key: 283 Status: AVAILABLE Compressed: YES Tag: TAG20150810T195515 Piece Name: /NEW_FS/oracle/FRA/HEMANTDB/backupset/2015_08_10/o1_mf_nnndf_TAG20150810T195515_bwk493jn_.bkp List of Datafiles in backup set 271 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 14186110 10-AUG-15 /home/oracle/app/oracle/oradata/orcl/system01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 275 Full 238.12M DISK 00:01:09 30-AUG-15 BP Key: 287 Status: AVAILABLE Compressed: YES Tag: TAG20150830T165804 Piece Name: /NEW_FS/oracle/FRA/HEMANTDB/backupset/2015_08_30/o1_mf_nnndf_TAG20150830T165804_by5kdwrb_.bkp List of Datafiles in backup set 275 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 14198051 30-AUG-15 /home/oracle/app/oracle/oradata/orcl/system01.dbf RMAN>
When I disconnect from the Catalog Schema and do a local only (TARGET) connection, I can see 4 backups of the datafile. So, what gives ? Let me try an SQL query on V$BACKUP_DATAFILE.
(As an aside : Note above how there an be discrepancy in the listings showed by LIST BACKUP in the two scenarios (a) without a Recovery Catalog connection and (b) with a Recovery Catalog that was created after the last RESETLOGS). This is something to remember.
RMAN> exit Recovery Manager complete. [oracle@localhost ~]$ sqlplus '/ as sysdba' SQL*Plus: Release 11.2.0.2.0 Production on Sun Aug 30 20:01:54 2015 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SYS>select to_char(completion_time,'DD-MON HH24:MI') Completed_at, datafile_blocks, blocks_read, 2 resetlogs_change#, resetlogs_time 3 from v$backup_datafile 4 where file#=1 5 order by completion_time 6 / COMPLETED_AT DATAFILE_BLOCKS BLOCKS_READ RESETLOGS_CHANGE# RESETLOGS --------------------- --------------- ----------- ----------------- --------- 01-AUG 22:10 107648 107648 14082620 04-JUL-15 10-AUG 15:14 107648 107648 14082620 04-JUL-15 10-AUG 19:58 107648 107648 14185666 10-AUG-15 30-AUG 16:59 107648 107648 14185666 10-AUG-15 SYS>
Notice that I have added two columns (RESETLOGS_CHANGE# and RESETLOGS_TIME) in the query. Now, I see that the two older backups were from an *older* incarnation of the database. They have a different RESETLOGS_CHANGE# / RESETLOGS_TIME. So, those backups of the older incarnation are not cataloged into the Catalog Schema !
Can I do anything about this ? It seems that the full RESYNC doesn't resync for backups of previous incarnations. Can I reset my RETENTION POLICY and then do a RESYNC ?
SYS>exit Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options [oracle@localhost ~]$ rman target / catalog rcat_owner/rcat_owner@rcat Recovery Manager: Release 11.2.0.2.0 - Production on Sun Aug 30 20:08:06 2015 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1229390655) connected to recovery catalog database RMAN> show all; RMAN configuration parameters for database with db_unique_name HEMANTDB are: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS; CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET; CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ENCRYPTION FOR DATABASE OFF; # default CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DISK; CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/snapcf_orcl.f'; # default RMAN> configure retention policy to recovery window of 36 days; old RMAN configuration parameters: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS; new RMAN configuration parameters: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 36 DAYS; new RMAN configuration parameters are successfully stored starting full resync of recovery catalog full resync complete RMAN> resync catalog; starting full resync of recovery catalog full resync complete RMAN> list backup of datafile 1; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 381 Full 863.89M DISK 00:03:38 10-AUG-15 BP Key: 391 Status: AVAILABLE Compressed: YES Tag: TAG20150810T195515 Piece Name: /NEW_FS/oracle/FRA/HEMANTDB/backupset/2015_08_10/o1_mf_nnndf_TAG20150810T195515_bwk493jn_.bkp List of Datafiles in backup set 381 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 14186110 10-AUG-15 /home/oracle/app/oracle/oradata/orcl/system01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 385 Full 238.12M DISK 00:01:09 30-AUG-15 BP Key: 395 Status: AVAILABLE Compressed: YES Tag: TAG20150830T165804 Piece Name: /NEW_FS/oracle/FRA/HEMANTDB/backupset/2015_08_30/o1_mf_nnndf_TAG20150830T165804_by5kdwrb_.bkp List of Datafiles in backup set 385 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 14198051 30-AUG-15 /home/oracle/app/oracle/oradata/orcl/system01.dbf RMAN>
No, extending the Recovery Window still doesn't help. Can I try something else ? What about the CATALOG command ?
[oracle@localhost ~]$ ls -l /NEW_FS/oracle/FRA/HEMANTDB/backupset/2015_08_01/ total 894280 -rw-rw---- 1 oracle oracle 7786496 Aug 1 22:06 o1_mf_annnn_TAG20150801T220605_bvsnlfrc_.bkp -rw-rw---- 1 oracle oracle 2421248 Aug 1 22:06 o1_mf_annnn_TAG20150801T220605_bvsnlk3q_.bkp -rw-rw---- 1 oracle oracle 56320 Aug 1 22:06 o1_mf_annnn_TAG20150801T220605_bvsnll9n_.bkp -rw-rw---- 1 oracle oracle 3595776 Aug 1 22:06 o1_mf_annnn_TAG20150801T220605_bvsnlmdx_.bkp -rw-rw---- 1 oracle oracle 165888 Aug 1 22:12 o1_mf_annnn_TAG20150801T221209_bvsnxs75_.bkp -rw-rw---- 1 oracle oracle 16896 Aug 1 22:14 o1_mf_annnn_TAG20150801T221404_bvso1f28_.bkp -rw-rw---- 1 oracle oracle 768901120 Aug 1 22:11 o1_mf_nnndf_TAG20150801T220612_bvsnlnpn_.bkp -rw-rw---- 1 oracle oracle 110075904 Aug 1 22:11 o1_mf_nnndf_TAG20150801T220612_bvsnvwjj_.bkp -rw-rw---- 1 oracle oracle 21782528 Aug 1 22:12 o1_mf_nnndf_TAG20150801T220612_bvsnx9v4_.bkp [oracle@localhost ~]$ ls -l /NEW_FS/oracle/FRA/HEMANTDB/backupset/2015_08_10/ total 1771844 -rw-rw---- 1 oracle oracle 786944 Aug 10 15:11 o1_mf_annnn_TAG20150810T151143_bwjmohc7_.bkp -rw-rw---- 1 oracle oracle 28672 Aug 10 15:16 o1_mf_annnn_TAG20150810T151601_bwjmxk5v_.bkp -rw-rw---- 1 oracle oracle 4140032 Aug 10 19:55 o1_mf_annnn_TAG20150810T195509_bwk48xxv_.bkp -rw-rw---- 1 oracle oracle 526336 Aug 10 19:55 o1_mf_annnn_TAG20150810T195509_bwk4911j_.bkp -rw-rw---- 1 oracle oracle 311296 Aug 10 19:55 o1_mf_annnn_TAG20150810T195509_bwk4923s_.bkp -rw-rw---- 1 oracle oracle 32256 Aug 10 19:59 o1_mf_annnn_TAG20150810T195901_bwk4j5lt_.bkp -rw-rw---- 1 oracle oracle 768851968 Aug 10 15:15 o1_mf_nnndf_TAG20150810T151144_bwjmojs6_.bkp -rw-rw---- 1 oracle oracle 110075904 Aug 10 15:15 o1_mf_nnndf_TAG20150810T151144_bwjmvycy_.bkp -rw-rw---- 1 oracle oracle 21938176 Aug 10 15:15 o1_mf_nnndf_TAG20150810T151144_bwjmx1sv_.bkp -rw-rw---- 1 oracle oracle 905863168 Aug 10 19:58 o1_mf_nnndf_TAG20150810T195515_bwk493jn_.bkp [oracle@localhost ~]$ RMAN> catalog start with '/NEW_FS/oracle/FRA/HEMANTDB/backupset/2015_08_01/'; searching for all files that match the pattern /NEW_FS/oracle/FRA/HEMANTDB/backupset/2015_08_01/ no files found to be unknown to the database RMAN> list backup of datafile 1; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 381 Full 863.89M DISK 00:03:38 10-AUG-15 BP Key: 391 Status: AVAILABLE Compressed: YES Tag: TAG20150810T195515 Piece Name: /NEW_FS/oracle/FRA/HEMANTDB/backupset/2015_08_10/o1_mf_nnndf_TAG20150810T195515_bwk493jn_.bkp List of Datafiles in backup set 381 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 14186110 10-AUG-15 /home/oracle/app/oracle/oradata/orcl/system01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 385 Full 238.12M DISK 00:01:09 30-AUG-15 BP Key: 395 Status: AVAILABLE Compressed: YES Tag: TAG20150830T165804 Piece Name: /NEW_FS/oracle/FRA/HEMANTDB/backupset/2015_08_30/o1_mf_nnndf_TAG20150830T165804_by5kdwrb_.bkp List of Datafiles in backup set 385 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 14198051 30-AUG-15 /home/oracle/app/oracle/oradata/orcl/system01.dbf RMAN> RMAN> catalog start with '/NEW_FS/oracle/FRA/HEMANTDB/backupset/2015_08_10/'; searching for all files that match the pattern /NEW_FS/oracle/FRA/HEMANTDB/backupset/2015_08_10/ no files found to be unknown to the database
Well, apparently, even the CATALOG command refuses to catalog backup pieces from an older incarnation !
So, it seems that :
1. If you've done a RESETLOGS recently and even though the controlfile may show previous backups, if you create a Catalog Schema after the RESETLOGS, previous backups (i.e. of the preceding incarnation) are not visible in the Catalog (disconnecting from the Catalog does allow you to view the previous backups in RMAN !)
2. The CATALOG command also will not include the previous backups, it will only accept backups of the current incarnation.
This testing has been done with 11.2.0.2 Has the behaviour changed in 11.2.0.4 / 12.1.0.1 / 12.1.0.2 ?
.
.
.