Managing RMAN expired backup files

Arquivos de backup expirados, no conceito Oracle RMAN, são aqueles arquivos marcados como disponíveis pelo repositório do RMAN, mas que atualmente não estão, geralmente por terem sido deletados ou movidos para outro local ou nome, via sistema operacional ou ferramenta de terceiros.

Para confirmarmos se temos algum expired backup em nosso ambiente:

[oracle@oel8 BACKUP]$ rman target /
 
Recovery Manager: Release 18.0.0.0.0 - Production on Fri Apr 9 05:50:45 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> LIST EXPIRED BACKUPSET;
 
using target database control file instead of recovery catalog
specification does not match any backup in the repository
 
RMAN>

Para simular este comportamento, vou coletar os backups da tablespace USERS:

RMAN> LIST BACKUP OF TABLESPACE USERS;
 
 
List of Backup Sets
===================
 
 
BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
154     Full    1.23G      DISK        00:00:58     2021-04-09:04:32:03
        BP Key: 154   Status: AVAILABLE  Compressed: NO  Tag: DB_FULL_BS
        Piece Name: /oracle/fra/RMANDB/backupset/2021_04_09/o1_mf_nnndf_DB_FULL_BS_j700oxtx_.bkp
  List of Datafiles in backup set 154
  File LV Type Ckp SCN    Ckp Time            Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ------------------- ----------- ------ ----
  7       Full 2260904    2021-04-09:04:31:05              NO    /oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf
 
BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
156     Full    2.16M      DISK        00:00:00     2021-04-09:04:34:09
        BP Key: 156   Status: AVAILABLE  Compressed: NO  Tag: USERS_BS
        Piece Name: /oracle/fra/RMANDB/backupset/2021_04_09/o1_mf_nnndf_USERS_BS_j700vk1w_.bkp
  List of Datafiles in backup set 156
  File LV Type Ckp SCN    Ckp Time            Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ------------------- ----------- ------ ----
  7       Full 2261773    2021-04-09:04:34:09              NO    /oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf
 
BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
158     Full    2.16M      DISK        00:00:00     2021-04-09:04:34:16
        BP Key: 158   Status: AVAILABLE  Compressed: NO  Tag: USERS_BS
        Piece Name: /oracle/fra/RMANDB/backupset/2021_04_09/o1_mf_nnndf_USERS_BS_j700vrh3_.bkp
  List of Datafiles in backup set 158
  File LV Type Ckp SCN    Ckp Time            Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ------------------- ----------- ------ ----
  7       Full 2261805    2021-04-09:04:34:16              NO    /oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf

Vou renomear um dos backupsets listados acima:

RMAN> host 'mv /oracle/fra/RMANDB/backupset/2021_04_09/o1_mf_nnndf_USERS_BS_j700vrh3_.bkp /oracle/fra/RMANDB/backupset/2021_04_09/BSS.bkp';    
host command complete

Ao consultar novamente se há arquivos expirados, percebemos que o RMAN ainda não reporta o evento:

RMAN> LIST EXPIRED BACKUPSET;
 
specification does not match any backup in the repository

Isso ocorre pois o RMAN precisa realizar uma comparação entre as informações que estão em seu repositório e os arquivos (fisicamente falando). Podemos disparar o comando CROSSCHECK para possibilitar esse trabalho por parte do RMAN:

RMAN> CROSSCHECK BACKUPSET;
 
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=36 device type=DISK
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/backupset/2021_04_09/o1_mf_nnndf_DB_FULL_BS_j700oxtx_.bkp RECID=154 STAMP=1069389069
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069389141_j700r62m_.bkp RECID=155 STAMP=1069389142
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/backupset/2021_04_09/o1_mf_nnndf_USERS_BS_j700vk1w_.bkp RECID=156 STAMP=1069389249
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069389250_j700vlmc_.bkp RECID=157 STAMP=1069389250
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/oracle/fra/RMANDB/backupset/2021_04_09/o1_mf_nnndf_USERS_BS_j700vrh3_.bkp RECID=158 STAMP=1069389256
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069389257_j700vt63_.bkp RECID=159 STAMP=1069389258
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069389599_j7016hx3_.bkp RECID=160 STAMP=1069389599
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/backupset/2021_04_09/o1_mf_annnn_ARC_BS_j701d662_.bkp RECID=161 STAMP=1069389782
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069389785_j701d9kj_.bkp RECID=162 STAMP=1069389785
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069390192_j701s0pz_.bkp RECID=163 STAMP=1069390192
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/backupset/2021_04_09/o1_mf_annnn_TAG20210409T051721_j703dkjz_.bkp RECID=164 STAMP=1069391841
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069391842_j703dm1l_.bkp RECID=165 STAMP=1069391843
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/BACKUP/78vrr850_1_1 RECID=166 STAMP=1069392032
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069392033_j703llbt_.bkp RECID=167 STAMP=1069392034
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/BACKUP/7avrr85l_1_1 RECID=168 STAMP=1069392053
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069392054_j703m70y_.bkp RECID=169 STAMP=1069392055
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069392227_j703rmm7_.bkp RECID=170 STAMP=1069392227
Crosschecked 17 objects

A partir desse ponto, o RMAN identifica e reporta o arquivo expirado:

RMAN> LIST EXPIRED BACKUPSET;
 
 
List of Backup Sets
===================
 
 
BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
158     Full    2.16M      DISK        00:00:00     2021-04-09:04:34:16
        BP Key: 158   Status: EXPIRED  Compressed: NO  Tag: USERS_BS
        Piece Name: /oracle/fra/RMANDB/backupset/2021_04_09/o1_mf_nnndf_USERS_BS_j700vrh3_.bkp
  List of Datafiles in backup set 158
  File LV Type Ckp SCN    Ckp Time            Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ------------------- ----------- ------ ----
  7       Full 2261805    2021-04-09:04:34:16              NO    /oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf

Voltando o nome do backupset para o original:

RMAN> host 'mv /oracle/fra/RMANDB/backupset/2021_04_09/BSS.bkp /oracle/fra/RMANDB/backupset/2021_04_09/o1_mf_nnndf_USERS_BS_j700vrh3_.bkp';
 
host command complete

Realizando o crosscheck:

RMAN> CROSSCHECK BACKUPSET;
 
using channel ORA_DISK_1
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/backupset/2021_04_09/o1_mf_nnndf_DB_FULL_BS_j700oxtx_.bkp RECID=154 STAMP=1069389069
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069389141_j700r62m_.bkp RECID=155 STAMP=1069389142
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/backupset/2021_04_09/o1_mf_nnndf_USERS_BS_j700vk1w_.bkp RECID=156 STAMP=1069389249
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069389250_j700vlmc_.bkp RECID=157 STAMP=1069389250
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/backupset/2021_04_09/o1_mf_nnndf_USERS_BS_j700vrh3_.bkp RECID=158 STAMP=1069389256
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069389257_j700vt63_.bkp RECID=159 STAMP=1069389258
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069389599_j7016hx3_.bkp RECID=160 STAMP=1069389599
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/backupset/2021_04_09/o1_mf_annnn_ARC_BS_j701d662_.bkp RECID=161 STAMP=1069389782
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069389785_j701d9kj_.bkp RECID=162 STAMP=1069389785
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069390192_j701s0pz_.bkp RECID=163 STAMP=1069390192
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/backupset/2021_04_09/o1_mf_annnn_TAG20210409T051721_j703dkjz_.bkp RECID=164 STAMP=1069391841
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069391842_j703dm1l_.bkp RECID=165 STAMP=1069391843
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/BACKUP/78vrr850_1_1 RECID=166 STAMP=1069392032
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069392033_j703llbt_.bkp RECID=167 STAMP=1069392034
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/BACKUP/7avrr85l_1_1 RECID=168 STAMP=1069392053
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069392054_j703m70y_.bkp RECID=169 STAMP=1069392055
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_09/o1_mf_s_1069392227_j703rmm7_.bkp RECID=170 STAMP=1069392227
Crosschecked 17 objects

Vemos que não temos mais backupset definido como expirado:

RMAN> LIST EXPIRED BACKUPSET;
 
specification does not match any backup in the repository
 
RMAN>

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.