Configuring Oracle Backup Retention Policy

Nas configurações persistentes do RMAN, temos uma opção referente à política de retenção/redundância dos backups realizados em um ambiente Oracle. Esta opção contempla quantos backups FULL ou de Level 0 de cada datafile/controlfile serão mantidos no device escolhido. Seu valor padrão é 1, ou seja, a partir de um segundo backup, este primeiro é marcado como obsoleto automaticamente pelo RMAN. Para checarmos o valor atual, podemos rodar o comando abaixo:

[oracle@oel8 ~]$ rman target /
 
Recovery Manager: Release 18.0.0.0.0 - Production on Thu Mar 25 05:44:44 2021
Version 18.13.0.0.0
 
Copyright (c) 1982, 2018, Oracle and/or its affiliates.  All rights reserved.
 
connected to target database: RMANDB (DBID=3825250984)
 
RMAN> SHOW RETENTION POLICY;
 
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name RMANDB are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

Neste ponto, vou simular a mudança dessa configuração para o valor 2, conforme abaixo:

RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
 
new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
new RMAN configuration parameters are successfully stored

Realizando o backup da tablespace USERS 3 vezes, para simularmos o comportamento do RMAN:

RMAN> BACKUP TABLESPACE USERS TAG 'BSS';
 
Starting backup at 2021-03-25:05:49:35
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=65 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00007 name=/oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf
channel ORA_DISK_1: starting piece 1 at 2021-03-25:05:49:37
channel ORA_DISK_1: finished piece 1 at 2021-03-25:05:49:38
piece handle=/oracle/fra/RMANDB/backupset/2021_03_25/o1_mf_nnndf_BSS_j5rmo16x_.bkp tag=BSS comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2021-03-25:05:49:38
 
Starting Control File and SPFILE Autobackup at 2021-03-25:05:49:38
piece handle=/oracle/fra/RMANDB/autobackup/2021_03_25/o1_mf_s_1068097778_j5rmo353_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2021-03-25:05:49:39
 
RMAN> BACKUP TABLESPACE USERS TAG 'BSS';
 
Starting backup at 2021-03-25:05:49:49
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00007 name=/oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf
channel ORA_DISK_1: starting piece 1 at 2021-03-25:05:49:49
channel ORA_DISK_1: finished piece 1 at 2021-03-25:05:49:50
piece handle=/oracle/fra/RMANDB/backupset/2021_03_25/o1_mf_nnndf_BSS_j5rmoftx_.bkp tag=BSS comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2021-03-25:05:49:50
 
Starting Control File and SPFILE Autobackup at 2021-03-25:05:49:50
piece handle=/oracle/fra/RMANDB/autobackup/2021_03_25/o1_mf_s_1068097791_j5rmohjm_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2021-03-25:05:49:52
 
RMAN> BACKUP TABLESPACE USERS TAG 'BSS';
 
Starting backup at 2021-03-25:05:49:54
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00007 name=/oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf
channel ORA_DISK_1: starting piece 1 at 2021-03-25:05:49:54
channel ORA_DISK_1: finished piece 1 at 2021-03-25:05:49:55
piece handle=/oracle/fra/RMANDB/backupset/2021_03_25/o1_mf_nnndf_BSS_j5rmom0o_.bkp tag=BSS comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2021-03-25:05:49:55
 
Starting Control File and SPFILE Autobackup at 2021-03-25:05:49:55
piece handle=/oracle/fra/RMANDB/autobackup/2021_03_25/o1_mf_s_1068097796_j5rmonmh_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2021-03-25:05:49:57

Listando as 3 backups realizados e observando o ID/KEY do backupset gerado (124,126 e 128):

RMAN> LIST BACKUP OF TABLESPACE USERS;
 
 
List of Backup Sets
===================
 
 
BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
124     Full    2.16M      DISK        00:00:00     2021-03-25:05:49:37
        BP Key: 124   Status: AVAILABLE  Compressed: NO  Tag: BSS
        Piece Name: /oracle/fra/RMANDB/backupset/2021_03_25/o1_mf_nnndf_BSS_j5rmo16x_.bkp
  List of Datafiles in backup set 124
  File LV Type Ckp SCN    Ckp Time            Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ------------------- ----------- ------ ----
  7       Full 2231798    2021-03-25:05:49:37              NO    /oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf
 
BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
126     Full    2.16M      DISK        00:00:00     2021-03-25:05:49:49
        BP Key: 126   Status: AVAILABLE  Compressed: NO  Tag: BSS
        Piece Name: /oracle/fra/RMANDB/backupset/2021_03_25/o1_mf_nnndf_BSS_j5rmoftx_.bkp
  List of Datafiles in backup set 126
  File LV Type Ckp SCN    Ckp Time            Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ------------------- ----------- ------ ----
  7       Full 2231833    2021-03-25:05:49:49              NO    /oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf
 
BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
128     Full    2.16M      DISK        00:00:01     2021-03-25:05:49:55
        BP Key: 128   Status: AVAILABLE  Compressed: NO  Tag: BSS
        Piece Name: /oracle/fra/RMANDB/backupset/2021_03_25/o1_mf_nnndf_BSS_j5rmom0o_.bkp
  List of Datafiles in backup set 128
  File LV Type Ckp SCN    Ckp Time            Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ------------------- ----------- ------ ----
  7       Full 2231866    2021-03-25:05:49:54              NO    /oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf

Com o comando abaixo, podemos ver qual é o backupset destacado pelo RMAN como obsoleto, considerando a nossa nova retenção com valor 2:

RMAN> REPORT OBSOLETE;
 
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 2
Report of obsolete backups and copies
Type                 Key    Completion Time    Filename/Handle
-------------------- ------ ------------------ --------------------
Backup Set           124    2021-03-25:05:49:37
  Backup Piece       124    2021-03-25:05:49:37 /oracle/fra/RMANDB/backupset/2021_03_25/o1_mf_nnndf_BSS_j5rmo16x_.bkp
Backup Set           125    2021-03-25:05:49:39
  Backup Piece       125    2021-03-25:05:49:39 /oracle/fra/RMANDB/autobackup/2021_03_25/o1_mf_s_1068097778_j5rmo353_.bkp

Deletando os backupsets listados acima:

RMAN> DELETE OBSOLETE;
 
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 2
using channel ORA_DISK_1
Deleting the following obsolete backups and copies:
Type                 Key    Completion Time    Filename/Handle
-------------------- ------ ------------------ --------------------
Backup Set           124    2021-03-25:05:49:37
  Backup Piece       124    2021-03-25:05:49:37 /oracle/fra/RMANDB/backupset/2021_03_25/o1_mf_nnndf_BSS_j5rmo16x_.bkp
Backup Set           125    2021-03-25:05:49:39
  Backup Piece       125    2021-03-25:05:49:39 /oracle/fra/RMANDB/autobackup/2021_03_25/o1_mf_s_1068097778_j5rmo353_.bkp
 
Do you really want to delete the above objects (enter YES or NO)? Y
deleted backup piece
backup piece handle=/oracle/fra/RMANDB/backupset/2021_03_25/o1_mf_nnndf_BSS_j5rmo16x_.bkp RECID=124 STAMP=1068097777
deleted backup piece
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_03_25/o1_mf_s_1068097778_j5rmo353_.bkp RECID=125 STAMP=1068097779
Deleted 2 objects

Além desta opção, o RMAN também trabalha com uma retenção baseada em tempo (por exemplo, em 7 dias). Neste método, ele preserva todos os archived redo logs que são necessários para atender este método (Window-Based), e marca os restantes como obsoletos. Abaixo segue uma demonstração de como definir este tipo de retenção:

RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
 
old RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
new RMAN configuration parameters are successfully stored

Para voltarmos a retenção ao valor padrão, podemos realizar o “clear” do parâmetro vide script abaixo:

RMAN> CONFIGURE RETENTION POLICY CLEAR;
 
old RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
RMAN configuration parameters are successfully reset to default value
 
RMAN> SHOW RETENTION POLICY;
 
RMAN configuration parameters for database with db_unique_name RMANDB are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

É importante mencionar que os backups do tipo “Incrementally Updated Backups”, que foram explorados NESTE artigo, assumem de forma padrão uma política de retenção de redundância 1. Mas caso precisemos definir uma política “Window-Based”, podemos implementá-la diretamente no bloco RMAN usando o UNTIL TIME, conforme abaixo:

RMAN> Run
{
        RECOVER COPY OF DATABASE WITH TAG 'BSS' UNTIL TIME 'SYSDATE-8';
        BACKUP INCREMENTAL LEVEL 1 CUMULATIVE COPIES=1 FOR RECOVER OF COPY WITH TAG 'BSS' DATABASE;
}2> 3> 4> 5>
 
Starting recover at 2021-03-25:06:07:38
using channel ORA_DISK_1
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 5 found to recover
no copy of datafile 7 found to recover
Finished recover at 2021-03-25:06:07:38
 
Starting backup at 2021-03-25:06:07:39
using channel ORA_DISK_1
no parent backup or copy of datafile 1 found
no parent backup or copy of datafile 3 found
no parent backup or copy of datafile 4 found
no parent backup or copy of datafile 5 found
no parent backup or copy of datafile 7 found
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=/oracle/dados/RMANDB/datafile/o1_mf_system_h8nynqfx_.dbf
output file name=/oracle/fra/RMANDB/datafile/o1_mf_system_j5rnpvro_.dbf tag=BSS RECID=32 STAMP=1068098869
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=/oracle/dados/RMANDB/datafile/o1_mf_sysaux_h8nyq35q_.dbf
output file name=/oracle/fra/RMANDB/datafile/o1_mf_sysaux_j5rnqc94_.dbf tag=BSS RECID=33 STAMP=1068098882
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/oracle/dados/RMANDB/datafile/o1_mf_undotbs1_h8nyrjdr_.dbf
output file name=/oracle/fra/RMANDB/datafile/o1_mf_undotbs1_j5rnqtjv_.dbf tag=BSS RECID=34 STAMP=1068098893
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=/oracle/dados/RMANDB/datafile/ts_cortex_catalog.dbf
output file name=/oracle/fra/RMANDB/datafile/o1_mf_ts_corte_j5rnr1sj_.dbf tag=BSS RECID=35 STAMP=1068098899
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting datafile copy
input datafile file number=00007 name=/oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf
output file name=/oracle/fra/RMANDB/datafile/o1_mf_users_j5rnr56k_.dbf tag=BSS RECID=36 STAMP=1068098901
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 2021-03-25:06:08:22
 
Starting Control File and SPFILE Autobackup at 2021-03-25:06:08:22
piece handle=/oracle/fra/RMANDB/autobackup/2021_03_25/o1_mf_s_1068098902_j5rnr70h_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2021-03-25:06:08:23

Por fim, temos a opção de deixarmos a retenção desabilitada (o que não é sugerido), usando o valor NONE:

RMAN> CONFIGURE RETENTION POLICY TO NONE;
 
new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO NONE;
new RMAN configuration parameters are successfully stored
 
RMAN> SHOW RETENTION POLICY;
 
RMAN configuration parameters for database with db_unique_name RMANDB are:
CONFIGURE RETENTION POLICY TO NONE;

Obs: Este procedimento foi criado pelo senhor Ahmed Baraka (www.ahmedbaraka.com) e foi apenas reproduzido por mim em um laboratório pessoal para fins de aprendizado.

Leave a Comment

Your email address will not be published.