The replication for ZDLRA works differently than normal DataGuard, but you can reach almost the same level of multiple site protection with that. The replication for ZDLRA is not complicated but can be divided into several steps. Basically, to protect a database (since you have everything configure) is done linking the database with the protection policy that is replicated.
In my previous posts, I already wrote about all the steps to reach this configuration. Starting with an explanation about replication, how to configure the replication network between ZDLRA’s, how to configure the replication server, and how to create the replication config (that links everything is done before).
But most of the time we don’t need to pass through all of these steps. Usually, the ZDLRA is deployed with the replication network already configured, or you already deploy two ZDLRA’s that will operate replicated. This part I consider the “physical” part of the configuration because evolves network and details that we usually don’t touch after configured. The “logical” part comes after and evolves all the definitions about what policies will be replicated, which databases will be part of each policy, and so on. This “logical” configuration I explained in this previous post.
But it is important to know how it’s working to understand all the details. And if you need, you can check my posts about the replication for ZDLRA.
In this post, I will show more details on how the ZDLRA replication impact over the backup for your database, and show the protection occurs to reduce your RPO to a minimum.
Replication, Policies, and Databases
A little recap. The most important to understand about the replication is that is done based on protection policies. ZDLRA does not replicate database per database, it replicates policies. So, every database that is linked with the policy will be replicated.
You can have more than one protection policy that is replicated between the same ZDLRA’s, and this link directly with the MAA Architecture where you have more than one SLA that needs to be sustained (like recovery window requirements as an example). And the caveat it is that, maybe, you need to double part of your policies because it is possible that you don’t want to replicate all databases for that policy. So, you will create another policy and drop all databases to be replicated there. But remember that when you do that, you need to check again your clone to tapes because they can be linked with policies (and not with backups tags of another configuration). And if this occurs, you will need to reorganize your clone to the tape schedule.
It is important to also understand that replication is done as soon as possible. So, after every backup that is ingested at upstream ZDLRA (and after it is validated), it is replicated ASAP. I already explained this in previous posts, but the full backup it is not replicated, just the incremental and the archivelogs are. Think that your datafile has more than 20TB, you will wait until the virtual full is generated and replicate after that? If you do this you lose protection because, in case of an entire datacenter failure, your backup is not replicate in a secure environment. And since the virtual full backup will be created (at downstream) it will be equal to that one that was created at upstream.
Base Config
The base config is the same as I create in my previous post. I have the ORCL19 database that is linked with the protection policy ZDLRAUP_BRONZE trough a replication server called ZDLRAS2_REP.
Replicated Protection
To use the replication we just need to do a backup of the database. So, below you can see a simple backup for datafile 1. This backup is the first backup that I am doing for the database at this ZDLRA, so it is a level 0 backup.
First, look that I connected at upstream ZDLRA (ZDLRAS1 in this scenario).
[oracle@orcloel7 ~]$ rman target=/ catalog=vpcsrc/vpcsrc@zdlras1-scan:1521/zdlras1 Recovery Manager: Release 19.0.0.0.0 - Production on Thu Jul 9 22:54:55 2020 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL19 (DBID=323177095) connected to recovery catalog database RMAN>
And executed the first backup of datafile 1:
RMAN> BACKUP INCREMENTAL LEVEL 0 DEVICE TYPE SBT FILESPERSET 1 DATAFILE 1 TAG 'BKP-DB-INCR0-REP'; Starting backup at 09/07/2020 23:31:06 released channel: ORA_DISK_1 allocated channel: ORA_SBT_TAPE_1 channel ORA_SBT_TAPE_1: SID=37 device type=SBT_TAPE channel ORA_SBT_TAPE_1: RA Library (ZDLRAS1) SID=AA098857038E149DE053010310AC801E channel ORA_SBT_TAPE_1: starting incremental level 0 datafile backup set channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set input datafile file number=00001 name=/u01/app/oracle/oradata/ORCL19/system01.dbf channel ORA_SBT_TAPE_1: starting piece 1 at 09/07/2020 23:31:09 channel ORA_SBT_TAPE_1: finished piece 1 at 09/07/2020 23:33:24 piece handle=ORCL19_3fv4tjdt_1_1 tag=BKP-DB-INCR0-REP comment=API Version 2.0,MMS Version 12.2.0.2 channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:02:15 Finished backup at 09/07/2020 23:33:24 Starting Control File and SPFILE Autobackup at 09/07/2020 23:33:24 piece handle=c-323177095-20200709-02 comment=API Version 2.0,MMS Version 12.2.0.2 Finished Control File and SPFILE Autobackup at 09/07/2020 23:33:41 RMAN>
And as you can see here, it was replicated:
RMAN> list backup of datafile 1 tag = 'BKP-DB-INCR0-REP'; List of Backup Sets =================== BS Key Type LV Size ------- ---- -- ---------- 25797 Incr 0 325.02M List of Datafiles in backup set 25797 File LV Type Ckp SCN Ckp Time Abs Fuz SCN Sparse Name ---- -- ---- ---------- ------------------- ----------- ------ ---- 1 0 Incr 2414591 09/07/2020 23:31:09 NO /u01/app/oracle/oradata/ORCL19/system01.dbf Backup Set Copy #1 of backup set 25797 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 00:04:57 09/07/2020 23:36:11 YES BKP-DB-INCR0-REP List of Backup Pieces for backup set 25797 Copy #1 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 25798 1 AVAILABLE VB$_1891149551_25782I Backup Set Copy #2 of backup set 25797 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 00:04:57 09/07/2020 23:36:06 YES BKP-DB-INCR0-REP List of Backup Pieces for backup set 25797 Copy #2 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 25811 1 AVAILABLE ZDLRAS2_REP VB$_2127575003_12535I RMAN>
Some details here:
- The replication occurred at the backupset level.
- The backupset has two backuppiesces.
- The copy without “Media” information is local (at upstream), the “Media” for replicate will show the same name as the server.
- The TAG is the same for every copy.
- Completion time will be different for each ZDLRA.
- All the integration at the ZDLRA catalog was made automatically by ZDLRA. Like registration of additional copies.
Inside of ZDLRA, the replication occurs based in “tasks” for each backupset and you can follow at rasys.ra_task table:
SQL> select TASK_ID, TASK_TYPE, STATE, WAITING_ON, DB_KEY, DB_UNIQUE_NAME, CREATION_TIME, ERROR_COUNT, INTERRUPT_COUNT, BP_KEY,BS_KEY,DF_KEY,VB_KEY from rasys.ra_task where archived = 'N' order by 5,2,7,10,11,12,13; TASK_ID TASK_TYPE STATE WAITING_ON DB_KEY DB_UNIQUE_NAME CREATION_TIME ERROR_COUNT INTERRUPT_COUNT BP_KEY BS_KEY DF_KEY VB_KEY ---------- ------------------------------ ------------------------- ---------- ---------- ------------------------------ ----------------------------------- ----------- --------------- ---------- ---------- ---------- ---------- 42384 BACKUP_SBT RUNNING 25140 ORCL19 09-JUL-20 11.33.16.448006 PM +02:00 0 0 25667 42386 BACKUP_SBT RUNNING 25140 ORCL19 09-JUL-20 11.33.16.999633 PM +02:00 0 0 25732 42390 BACKUP_SBT RUNNING 25140 ORCL19 09-JUL-20 11.33.35.585173 PM +02:00 0 0 25761 42389 INDEX_BACKUP RUNNING 25140 ORCL19 09-JUL-20 11.33.17.548351 PM +02:00 0 0 25733 SQL>
And doing a subsequent level 1 of datafile 1:
RMAN> backup incremental level 1 datafile 1 tag = 'BKP-DB-INCR1-REP'; Starting backup at 09/07/2020 23:52:10 allocated channel: ORA_SBT_TAPE_1 channel ORA_SBT_TAPE_1: SID=37 device type=SBT_TAPE channel ORA_SBT_TAPE_1: RA Library (ZDLRAS1) SID=AA0988570390149DE053010310AC801E channel ORA_SBT_TAPE_1: starting incremental level 1 datafile backup set channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set input datafile file number=00001 name=/u01/app/oracle/oradata/ORCL19/system01.dbf channel ORA_SBT_TAPE_1: starting piece 1 at 09/07/2020 23:52:11 channel ORA_SBT_TAPE_1: finished piece 1 at 09/07/2020 23:52:14 piece handle=ORCL19_3lv4tklb_1_1 tag=BKP-DB-INCR1-REP comment=API Version 2.0,MMS Version 12.2.0.2 channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:03 Finished backup at 09/07/2020 23:52:14 Starting Control File and SPFILE Autobackup at 09/07/2020 23:52:14 piece handle=c-323177095-20200709-05 comment=API Version 2.0,MMS Version 12.2.0.2 Finished Control File and SPFILE Autobackup at 09/07/2020 23:52:22 RMAN>
I will have both replicated. The level 1, and the virtual full backup:
RMAN> list backup tag = 'BKP-DB-INCR1-REP'; List of Backup Sets =================== BS Key Type LV Size ------- ---- -- ---------- 26088 Incr 1 48.00K List of Datafiles in backup set 26088 File LV Type Ckp SCN Ckp Time Abs Fuz SCN Sparse Name ---- -- ---- ---------- ------------------- ----------- ------ ---- 1 1 Incr 2417536 09/07/2020 23:52:11 NO /u01/app/oracle/oradata/ORCL19/system01.dbf Backup Set Copy #1 of backup set 26088 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 00:06:06 09/07/2020 23:52:12 YES BKP-DB-INCR1-REP List of Backup Pieces for backup set 26088 Copy #1 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 26089 1 AVAILABLE VB$_1891149551_26087I Backup Set Copy #3 of backup set 26088 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 00:06:06 09/07/2020 23:58:17 YES BKP-DB-INCR1-REP List of Backup Pieces for backup set 26088 Copy #3 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 26136 1 AVAILABLE ZDLRAS2_REP VB$_2127575003_12565I BS Key Type LV Size ------- ---- -- ---------- 26092 Incr 0 323.90M List of Datafiles in backup set 26092 File LV Type Ckp SCN Ckp Time Abs Fuz SCN Sparse Name ---- -- ---- ---------- ------------------- ----------- ------ ---- 1 0 Incr 2417536 09/07/2020 23:52:11 NO /u01/app/oracle/oradata/ORCL19/system01.dbf Backup Set Copy #1 of backup set 26092 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 00:06:06 09/07/2020 23:52:12 YES BKP-DB-INCR1-REP List of Backup Pieces for backup set 26092 Copy #1 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 26093 1 AVAILABLE VB$_1891149551_26087_1 Backup Set Copy #2 of backup set 26092 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 00:06:06 09/07/2020 23:58:17 YES BKP-DB-INCR1-REP List of Backup Pieces for backup set 26092 Copy #2 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 26134 1 AVAILABLE ZDLRAS2_REP VB$_2127575003_12565_1 RMAN>
As you can see above, each backup was replicated. And the replication occurred for the incremental level 1, and for the virtual full backup. Above, look that the tags are the same. About how the virtual full backups works I explained in a dedicated post.
The virtual full backup was generated at both ZDLRA’s (upstream and downstream) based on the ingested incremental level 1. It was ingested at upstream, sent do downstream and both generated the virtual full. And since they have the same SCN, they are considered equal.
Archivelogs
The same protection is done for backups of archivelogs:
RMAN> BACKUP DEVICE TYPE SBT ARCHIVELOG ALL TAG 'BKP-ARCH'; Starting backup at 10/07/2020 00:04:59 current log archived using channel ORA_SBT_TAPE_1 channel ORA_SBT_TAPE_1: starting archived log backup set channel ORA_SBT_TAPE_1: specifying archived log(s) in backup set input archived log thread=1 sequence=28 RECID=57 STAMP=1029524127 input archived log thread=1 sequence=29 RECID=59 STAMP=1029524475 input archived log thread=1 sequence=30 RECID=61 STAMP=1029524606 input archived log thread=1 sequence=31 RECID=63 STAMP=1037543212 input archived log thread=1 sequence=32 RECID=65 STAMP=1045347143 input archived log thread=1 sequence=33 RECID=66 STAMP=1045353901 channel ORA_SBT_TAPE_1: starting piece 1 at 10/07/2020 00:05:05 channel ORA_SBT_TAPE_1: finished piece 1 at 10/07/2020 00:05:40 piece handle=ORCL19_3nv4tldh_1_1 tag=BKP-ARCH comment=API Version 2.0,MMS Version 12.2.0.2 channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:35 Finished backup at 10/07/2020 00:05:40 Starting Control File and SPFILE Autobackup at 10/07/2020 00:05:40 piece handle=c-323177095-20200710-00 comment=API Version 2.0,MMS Version 12.2.0.2 Finished Control File and SPFILE Autobackup at 10/07/2020 00:05:49 RMAN> list backup tag = 'BKP-ARCH'; List of Backup Sets =================== BS Key Size ------- ---------- 26199 142.50M List of Archived Logs in backup set 26199 Thrd Seq Low SCN Low Time Next SCN Next Time ---- ------- ---------- ------------------- ---------- --------- 1 28 2297422 10/01/2020 01:08:09 2298810 12/01/2020 18:55:26 1 29 2298810 12/01/2020 18:55:26 2310760 12/01/2020 19:01:07 1 30 2310760 12/01/2020 19:01:07 2311714 12/01/2020 19:03:26 1 31 2311714 12/01/2020 19:03:26 2360020 12/04/2020 14:26:44 1 32 2360020 12/04/2020 14:26:44 2401381 09/07/2020 22:12:12 1 33 2401381 09/07/2020 22:12:12 2419539 10/07/2020 00:04:59 Backup Set Copy #1 of backup set 26199 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 01:58:52 10/07/2020 00:05:36 NO BKP-ARCH List of Backup Pieces for backup set 26199 Copy #1 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 26200 1 AVAILABLE Recovery Appliance (ZDLRAS1) ORCL19_3nv4tldh_1_1 Backup Set Copy #2 of backup set 26199 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 01:58:52 09/07/2020 22:06:13 NO BKP-ARCH List of Backup Pieces for backup set 26199 Copy #2 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 26336 1 AVAILABLE Recovery Appliance (ZDLRAS2) RA_SBT_ORCL19_323177095_25742_3nv4tldh_1_2_26199 RMAN>
Check above that backup was replicated too.
Real-time redo
The same occurs for the real-time redo. Since the backup of archivelog is generated automatically at ZDLRA (you can read more at my previous post), it is replicated too by:
RMAN> alter system archive log current; Statement processed RMAN> list backup of archivelog sequence 48; List of Backup Sets =================== BS Key Size ------- ---------- 28186 198.00K List of Archived Logs in backup set 28186 Thrd Seq Low SCN Low Time Next SCN Next Time ---- ------- ---------- ------------------- ---------- --------- 1 48 3148635 18/07/2020 01:20:24 3149484 18/07/2020 01:26:35 Backup Set Copy #1 of backup set 28186 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 01:59:28 18/07/2020 01:27:04 YES TAG20200718T012704 List of Backup Pieces for backup set 28186 Copy #1 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 28187 1 AVAILABLE $RSCN_2029050_RTIM_1021856938_THRD_1_SEQ_48_CTKEY_28039_BACKUP Backup Set Copy #2 of backup set 28186 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 01:59:28 17/07/2020 23:27:36 YES TAG20200718T012704 List of Backup Pieces for backup set 28186 Copy #2 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 28190 1 AVAILABLE Recovery Appliance (ZDLRAS2) RA_SBT_ORCL19_323177095_25742_m2v5it78_1_2_28186 RMAN>
And if you have a failure (simulated here with a kill), the partial archivelog was replicated too. And with the ZDLRA replication, if your database crash and you need to restore the database, you have multi-site protection even without dataguard:
[oracle@orcloel7 ~]$ ps -ef |grep smon oracle 6087 1 0 00:59 ? 00:00:00 ora_smon_ORCL19 oracle 8519 1937 0 01:35 pts/0 00:00:00 grep --color=auto smon [oracle@orcloel7 ~]$ ps -ef |grep pmon oracle 6047 1 0 00:59 ? 00:00:00 ora_pmon_ORCL19 oracle 8524 1937 0 01:35 pts/0 00:00:00 grep --color=auto pmon [oracle@orcloel7 ~]$ ps -ef |grep mmon oracle 6104 1 0 00:59 ? 00:00:01 ora_mmon_ORCL19 oracle 8530 1937 0 01:35 pts/0 00:00:00 grep --color=auto mmon [oracle@orcloel7 ~]$ kill -9 6087 6047 6104 [oracle@orcloel7 ~]$ [oracle@orcloel7 ~]$ rman target=/ catalog=vpcsrc/vpcsrc@zdlras1-scan:1521/zdlras1 Recovery Manager: Release 19.0.0.0.0 - Production on Sat Jul 18 01:36:35 2020 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. connected to target database (not started) connected to recovery catalog database RMAN> list db_unique_name of database orcl19; List of Databases DB Key DB Name DB ID Database Role Db_unique_name ------- ------- ----------------- --------------- ------------------ 25140 ORCL19 323177095 PRIMARY ORCL19 RMAN> set dbid 323177095; executing command: SET DBID database name is "ORCL19" and DBID is 323177095 RMAN> list backup of archivelog sequence 49; List of Backup Sets =================== BS Key Size ------- ---------- 28209 1.31M List of Archived Logs in backup set 28209 Thrd Seq Low SCN Low Time Next SCN Next Time ---- ------- ---------- ------------------- ---------- --------- 1 49 3149484 18/07/2020 01:26:35 3150908 18/07/2020 01:35:40 Backup Set Copy #1 of backup set 28209 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 01:59:01 18/07/2020 01:35:56 YES TAG20200718T013555 List of Backup Pieces for backup set 28209 Copy #1 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 28210 1 AVAILABLE $RSCN_2029050_RTIM_1021856938_THRD_1_SEQ_49_CTKEY_28155_BACKUP Backup Set Copy #2 of backup set 28209 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 01:59:01 17/07/2020 23:36:54 YES TAG20200718T013555 List of Backup Pieces for backup set 28209 Copy #2 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 28213 1 AVAILABLE Recovery Appliance (ZDLRAS2) RA_SBT_ORCL19_323177095_25742_m4v5itnr_1_2_28209 RMAN>
More copies
Since every ZDLRA can have a different environment, you can one that has clone to tape enabled (in this scenario the downstream has a clone to tape enabled). And since the backup is cloned, it appears automatically at rman catalog:
RMAN> list backup of datafile 1 completed after "to_date('10/07/2020 01:15:00', 'DD/MM/RRRR HH24:MI:SS')"; List of Backup Sets =================== BS Key Type LV Size ------- ---- -- ---------- 26752 Incr 0 325.02M List of Datafiles in backup set 26752 File LV Type Ckp SCN Ckp Time Abs Fuz SCN Sparse Name ---- -- ---- ---------- ------------------- ----------- ------ ---- 1 0 Incr 2429273 10/07/2020 01:18:02 NO /u01/app/oracle/oradata/ORCL19/system01.dbf Backup Set Copy #1 of backup set 26752 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 00:05:24 10/07/2020 01:23:27 YES TAG20200710T011802 List of Backup Pieces for backup set 26752 Copy #1 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 26753 1 AVAILABLE VB$_1891149551_26619I Backup Set Copy #2 of backup set 26752 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 00:05:24 10/07/2020 01:23:26 YES TAG20200710T011802 List of Backup Pieces for backup set 26752 Copy #2 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 26775 1 AVAILABLE ZDLRAS2_REP VB$_2127575003_13258I RMAN> ########################################################################### After the clone to tape occurs (at downstream in this example) ########################################################################### RMAN> list backup of datafile 1 completed after "to_date('10/07/2020 01:15:00', 'DD/MM/RRRR HH24:MI:SS')"; List of Backup Sets =================== BS Key Type LV Size ------- ---- -- ---------- 26752 Incr 0 325.02M List of Datafiles in backup set 26752 File LV Type Ckp SCN Ckp Time Abs Fuz SCN Sparse Name ---- -- ---- ---------- ------------------- ----------- ------ ---- 1 0 Incr 2429273 10/07/2020 01:18:02 NO /u01/app/oracle/oradata/ORCL19/system01.dbf Backup Set Copy #1 of backup set 26752 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 09:11:37 10/07/2020 01:23:27 YES TAG20200710T011802 List of Backup Pieces for backup set 26752 Copy #1 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 26753 1 AVAILABLE VB$_1891149551_26619I Backup Set Copy #3 of backup set 26752 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 09:11:37 10/07/2020 10:29:39 NO TAG20200710T011802 List of Backup Pieces for backup set 26752 Copy #3 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 26889 1 AVAILABLE ZDLRAS2_REP RA_SBT_ORCL19_323177095_8206_0sv4tpma_1_2_13259 Backup Set Copy #2 of backup set 26752 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 09:11:37 10/07/2020 01:23:26 YES TAG20200710T011802 List of Backup Pieces for backup set 26752 Copy #2 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 26775 1 AVAILABLE ZDLRAS2_REP VB$_2127575003_13258I RMAN>
Check that now the backupset for the virtual full level 0 exists 3 copies: local at upstream, one at downstream ZDLRA, and another at the tape attached at downstream ZDLRA. About how the clone to tape works you can at my post about this topic. And if you have a clone to tape enabled at upstream, a new copy will appear as available for rman catalog automatically.
Restoring backups
ZDLRA will choose the best source to restore the backup. The preference is always to restore from the catalog that you are connected to. But remember that you can have different recovery windows for your protection policies (at upstream and downstream). So, it is possible that your backup was already deleted from upstream, but is still available at downstream and listed at upstream catalog as a copy.
The process to restore a backup is the same as a traditional ZDLRA without replication. You can connect at the upstream catalog (recommended), or directly at the downstream catalog. In this example, I will restore the datafile connecting at upstream ZDLRA.
Check in the example below that the exists just the copies #2 e #3 of the backupset and both are at downstream ZDLRA. Check also that I connected at upstream and from there I called the restore:
[oracle@orcloel7 ~]$ rman target=/ catalog=vpcsrc/vpcsrc@zdlras1-scan:1521/zdlras1 Recovery Manager: Release 19.0.0.0.0 - Production on Sat Jul 18 00:13:29 2020 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL19 (DBID=323177095) connected to recovery catalog database RMAN> RMAN> list backup of datafile 1 completed between "to_date('10/07/2020 01:15:00', 'DD/MM/RRRR HH24:MI:SS')" and "to_date('13/07/2020 01:15:00', 'DD/MM/RRRR HH24:MI:SS')"; List of Backup Sets =================== BS Key Type LV Size ------- ---- -- ---------- 26752 Incr 0 785.06M List of Datafiles in backup set 26752 File LV Type Ckp SCN Ckp Time Abs Fuz SCN Sparse Name ---- -- ---- ---------- ------------------- ----------- ------ ---- 1 0 Incr 2429273 10/07/2020 01:18:02 NO /u01/app/oracle/oradata/ORCL19/system01.dbf Backup Set Copy #3 of backup set 26752 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 09:11:37 10/07/2020 10:29:39 NO TAG20200710T011802 List of Backup Pieces for backup set 26752 Copy #3 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 26889 1 AVAILABLE ZDLRAS2_REP RA_SBT_ORCL19_323177095_8206_0sv4tpma_1_2_13259 Backup Set Copy #2 of backup set 26752 Device Type Elapsed Time Completion Time Compressed Tag ----------- ------------ ------------------- ---------- --- SBT_TAPE 09:11:37 10/07/2020 01:23:26 YES TAG20200710T011802 List of Backup Pieces for backup set 26752 Copy #2 BP Key Pc# Status Media Piece Name ------- --- ----------- ----------------------- ---------- 26775 1 AVAILABLE ZDLRAS2_REP VB$_2127575003_13258I RMAN> shutdown immediate; database closed database dismounted Oracle instance shut down RMAN> startup mount; connected to target database (not started) Oracle instance started database mounted Total System Global Area 4294963272 bytes Fixed Size 8904776 bytes Variable Size 1694498816 bytes Database Buffers 2583691264 bytes Redo Buffers 7868416 bytes RMAN> restore datafile 1 from tag = 'TAG20200710T011802'; Starting restore at 18/07/2020 00:23:54 allocated channel: ORA_SBT_TAPE_1 channel ORA_SBT_TAPE_1: SID=44 device type=SBT_TAPE channel ORA_SBT_TAPE_1: RA Library (ZDLRAS1) SID=AAAB9D0E05120DEEE053010310AC604B allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=45 device type=DISK channel ORA_SBT_TAPE_1: starting datafile backup set restore channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set channel ORA_SBT_TAPE_1: restoring datafile 00001 to /u01/app/oracle/oradata/ORCL19/system01.dbf channel ORA_SBT_TAPE_1: reading from backup piece VB$_2127575003_13258I channel ORA_SBT_TAPE_1: piece handle=VB$_2127575003_13258I tag=TAG20200710T011802 channel ORA_SBT_TAPE_1: restored backup piece 1 channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:01:54 Finished restore at 18/07/2020 00:26:06 RMAN>
As you can see above, the restore read the piece “channel ORA_SBT_TAPE_1: piece handle=VB$_2127575003_13258I tag=TAG20200710T011802”, and this came directly from downstream. And even connected at upstream, it (the upstream) connected downstream and send to you transparently the backups from downstream. Working as a proxy.
ZDLRA Native Replication
The ZDLRA native replication increases a lot of the options for database protection. Even without dataguard you can have multi-site replication for your backupsets and archivelogs. And everything is automatically managed by the ZDLRA library. The catalog is self-managed and the backupsets copies are updated without interaction.
The native replication is not just an additional copy of your backupsets. Is part of architecture design from your protection. Depending on the architecture (and needs), is possible to have downstream with different protection windows and sustain for more time your protection. Imagine that you don’t need to replicate all databases that you do backup at upstream, so, you will have more space (and consequently more time) to your downstream store backups.
The ZDLRA native replication is also interesting because allows us to have multi-site protection because can work together with real-time redo to reach near-zero RPO. Is near-zero because the replication between upstream and downstream is not in real-time (like DG or real-time redo). So, in case of a complete datacenter failure, you can have some gap at downstream (since the last archivelog received – but this can be mitigated/reduced if needed).
Understand native replication for ZDLRA is more than just copy backups sets. As you saw above, it can interconnect with a lot of previous details, like different recovery windows goals, real-time redo, and clone to tapes. Understand the details and how to use it to create good architecture is important.
In the next posts, I will dig more about how to create these kinds of designs to protect all your databases. Reaching the MAA Reference architecture from the simplest single instance, to multi RAC and multi-site database operating with DataGuard. Everything with zero RPO.
The ZDLRA replication work to provide multiple copies of the backupset. Check how replication works for backups and to restore it.
Disclaimer: “The postings on this site are my own and don’t necessarily represent my actual employer positions, strategies or opinions. The information here was edited to be useful for general purpose, specific data and identifications were removed to allow reach the generic audience and to be useful for the community. Post protected by copyright.”