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.”

