O Oracle nos fornece mais essa view, com informações sobre os Jobs RMAN, e neste artigo vamos tentar simular o seu uso. Executando a query abaixo temos os detalhes das últimas 24 horas, para diminuirmos a massa de dados:
[oracle@oel8 ~]$ sqlplus / as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Sun Apr 11 05:13:56 2021
Version 18.13.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.13.0.0.0
SQL> col S_KEY format a4
col STATUS format a11
SELECT TO_CHAR(SESSION_KEY) S_KEY, INPUT_TYPE, STATUS, TO_CHAR(START_TIME,'dd/mm/yy hh24:mi') START_TIME, TO_CHAR(END_TIME,'dd/mm/yy hh24:mi') END_TIME,
ELAPSED_SECONDS/60 MINS FROM V$RMAN_BACKUP_JOB_DETAILS WHERE START_TIME > SYSDATE-1;SQL> SQL> 2
S_KE INPUT_TYPE STATUS START_TIME END_TIME MINS
---- ------------- ----------- -------------- -------------- ----------
436 DB FULL COMPLETED 11/04/21 04:40 11/04/21 04:56 15.15
436 DB FULL COMPLETED 11/04/21 04:40 11/04/21 04:56 15.15
436 DB FULL COMPLETED 11/04/21 04:40 11/04/21 04:56 15.15
Executando um backup de tablespace:
[oracle@oel8 ~]$ rman target /
Recovery Manager: Release 18.0.0.0.0 - Production on Sun Apr 11 05:15:25 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> BACKUP TABLESPACE USERS TAG 'BSS';
Starting backup at 2021-04-11:05:15:35
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=71 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-04-11:05:15:36
channel ORA_DISK_1: finished piece 1 at 2021-04-11:05:15:37
piece handle=/oracle/fra/RMANDB/backupset/2021_04_11/o1_mf_nnndf_BSS_j75d187z_.bkp tag=BSS comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2021-04-11:05:15:37
Starting Control File and SPFILE Autobackup at 2021-04-11:05:15:37
piece handle=/oracle/fra/RMANDB/autobackup/2021_04_11/o1_mf_s_1069564537_j75d19pm_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2021-04-11:05:15:38
RMAN>
Um novo registro é exibido na consulta da view:
SQL> col S_KEY format a4
col STATUS format a11
SELECT TO_CHAR(SESSION_KEY) S_KEY, INPUT_TYPE, STATUS, TO_CHAR(START_TIME,'dd/mm/yy hh24:mi') START_TIME, TO_CHAR(END_TIME,'dd/mm/yy hh24:mi') END_TIME,
ELAPSED_SECONDS/60 MINS FROM V$RMAN_BACKUP_JOB_DETAILS WHERE START_TIME > SYSDATE-1;SQL> SQL> 2
S_KE INPUT_TYPE STATUS START_TIME END_TIME MINS
---- ------------- ----------- -------------- -------------- ----------
436 DB FULL COMPLETED 11/04/21 04:40 11/04/21 04:56 15.15
436 DB FULL COMPLETED 11/04/21 04:40 11/04/21 04:56 15.15
436 DB FULL COMPLETED 11/04/21 04:40 11/04/21 04:56 15.15
452 DATAFILE FULL COMPLETED 11/04/21 05:15 11/04/21 05:15 .05
Após alguns momentos, realizamos novamente um backup da tablespace USERS:
RMAN> BACKUP TABLESPACE USERS TAG 'BSS';
Starting backup at 2021-04-11:05:18:34
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-04-11:05:18:34
channel ORA_DISK_1: finished piece 1 at 2021-04-11:05:18:35
piece handle=/oracle/fra/RMANDB/backupset/2021_04_11/o1_mf_nnndf_BSS_j75d6t76_.bkp tag=BSS comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2021-04-11:05:18:35
Starting Control File and SPFILE Autobackup at 2021-04-11:05:18:35
piece handle=/oracle/fra/RMANDB/autobackup/2021_04_11/o1_mf_s_1069564715_j75d6vsn_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2021-04-11:05:18:36
Observamos agora em nossa consulta que nenhum registro é adicionado, mas sim que o último registro foi alterado. Isso significa que um “Backup Job” nesta view não é um comando de backup, mas sim um grupo de comandos de backup do mesmo tipo (seja full ou incremental) disparado pelo RMAN. Até podemos ver que o ELAPSED_SECONDS, que foi incrementado, representa o tempo entre o início da primeira execução do backup até o final da segunda execução.
SQL> col S_KEY format a4
SQL> col STATUS format a11
SELECT TO_CHAR(SESSION_KEY) S_KEY, INPUT_TYPE, STATUS, TO_CHAR(START_TIME,'dd/mm/yy hh24:mi') START_TIME, TO_CHAR(END_TIME,'dd/mm/yy hh24:mi') END_TIME,
ELAPSED_SECONDS/60 MINS FROM V$RMAN_BACKUP_JOB_DETAILS WHERE START_TIME > SYSDATE-1;SQL> 2
S_KE INPUT_TYPE STATUS START_TIME END_TIME MINS
---- ------------- ----------- -------------- -------------- ----------
436 DB FULL COMPLETED 11/04/21 04:40 11/04/21 04:56 15.15
436 DB FULL COMPLETED 11/04/21 04:40 11/04/21 04:56 15.15
436 DB FULL COMPLETED 11/04/21 04:40 11/04/21 04:56 15.15
452 DATAFILE FULL COMPLETED 11/04/21 05:15 11/04/21 05:18 3.01666667
Executando um backup incremental:
RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE TAG 'INCR_0';
Starting backup at 2021-04-11:05:24:21
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental level 0 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/oracle/dados/RMANDB/datafile/o1_mf_system_h8nynqfx_.dbf
input datafile file number=00003 name=/oracle/dados/RMANDB/datafile/o1_mf_sysaux_h8nyq35q_.dbf
input datafile file number=00004 name=/oracle/dados/RMANDB/datafile/o1_mf_undotbs1_h8nyrjdr_.dbf
input datafile file number=00005 name=/oracle/dados/RMANDB/datafile/ts_cortex_catalog.dbf
input datafile file number=00007 name=/oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf
channel ORA_DISK_1: starting piece 1 at 2021-04-11:05:24:22
channel ORA_DISK_1: finished piece 1 at 2021-04-11:05:24:37
piece handle=/oracle/fra/RMANDB/backupset/2021_04_11/o1_mf_nnnd0_INCR_0_j75dkp7p_.bkp tag=INCR_0 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15
Finished backup at 2021-04-11:05:24:37
Starting Control File and SPFILE Autobackup at 2021-04-11:05:24:37
piece handle=/oracle/fra/RMANDB/autobackup/2021_04_11/o1_mf_s_1069565077_j75dl5nf_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2021-04-11:05:24:38
Observando as informações da view:
SQL> col S_KEY format a4
col STATUS format a11
SELECT TO_CHAR(SESSION_KEY) S_KEY, INPUT_TYPE, STATUS, TO_CHAR(START_TIME,'dd/mm/yy hh24:mi') START_TIME, TO_CHAR(END_TIME,'dd/mm/yy hh24:mi') END_TIME,
ELAPSED_SECONDS/60 MINS FROM V$RMAN_BACKUP_JOB_DETAILS WHERE START_TIME > SYSDATE-1;SQL> SQL> 2
S_KE INPUT_TYPE STATUS START_TIME END_TIME MINS
---- ------------- ----------- -------------- -------------- ----------
436 DB FULL COMPLETED 11/04/21 04:40 11/04/21 04:56 15.15
436 DB FULL COMPLETED 11/04/21 04:40 11/04/21 04:56 15.15
436 DB FULL COMPLETED 11/04/21 04:40 11/04/21 04:56 15.15
452 DB INCR COMPLETED 11/04/21 05:15 11/04/21 05:24 9.05
Vou deletar os backups realizados até o momento para simular outras situações:
RMAN> DELETE BACKUPSET;
using channel ORA_DISK_1
List of Backup Pieces
BP Key BS Key Pc# Cp# Status Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
190 190 1 1 AVAILABLE DISK /oracle/fra/RMANDB/backupset/2021_04_11/o1_mf_nnndf_BSS_j75d187z_.bkp
191 191 1 1 AVAILABLE DISK /oracle/fra/RMANDB/autobackup/2021_04_11/o1_mf_s_1069564537_j75d19pm_.bkp
192 192 1 1 AVAILABLE DISK /oracle/fra/RMANDB/backupset/2021_04_11/o1_mf_nnndf_BSS_j75d6t76_.bkp
193 193 1 1 AVAILABLE DISK /oracle/fra/RMANDB/autobackup/2021_04_11/o1_mf_s_1069564715_j75d6vsn_.bkp
194 194 1 1 AVAILABLE DISK /oracle/fra/RMANDB/backupset/2021_04_11/o1_mf_nnnd0_INCR_0_j75dkp7p_.bkp
195 195 1 1 AVAILABLE DISK /oracle/fra/RMANDB/autobackup/2021_04_11/o1_mf_s_1069565077_j75dl5nf_.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_04_11/o1_mf_nnndf_BSS_j75d187z_.bkp RECID=190 STAMP=1069564536
deleted backup piece
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_11/o1_mf_s_1069564537_j75d19pm_.bkp RECID=191 STAMP=1069564537
deleted backup piece
backup piece handle=/oracle/fra/RMANDB/backupset/2021_04_11/o1_mf_nnndf_BSS_j75d6t76_.bkp RECID=192 STAMP=1069564714
deleted backup piece
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_11/o1_mf_s_1069564715_j75d6vsn_.bkp RECID=193 STAMP=1069564715
deleted backup piece
backup piece handle=/oracle/fra/RMANDB/backupset/2021_04_11/o1_mf_nnnd0_INCR_0_j75dkp7p_.bkp RECID=194 STAMP=1069565062
deleted backup piece
backup piece handle=/oracle/fra/RMANDB/autobackup/2021_04_11/o1_mf_s_1069565077_j75dl5nf_.bkp RECID=195 STAMP=1069565077
Deleted 6 objects
Realizando um novo backup FULL:
RMAN> BACKUP DATABASE TAG 'BSS';
Starting backup at 2021-04-11:05:30:00
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=00001 name=/oracle/dados/RMANDB/datafile/o1_mf_system_h8nynqfx_.dbf
input datafile file number=00003 name=/oracle/dados/RMANDB/datafile/o1_mf_sysaux_h8nyq35q_.dbf
input datafile file number=00004 name=/oracle/dados/RMANDB/datafile/o1_mf_undotbs1_h8nyrjdr_.dbf
input datafile file number=00005 name=/oracle/dados/RMANDB/datafile/ts_cortex_catalog.dbf
input datafile file number=00007 name=/oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf
channel ORA_DISK_1: starting piece 1 at 2021-04-11:05:30:00
Em paralelo, podemos encontrar com a consulta abaixo informações valiosas sobre o backup em execução:
SQL> col SESSION_KEY for 999
col COMP for 99.9999
col IN_SPEED for a10
col OUT_SPEED for a10
col TIME_TAKEN_DISPLAY for a15
SELECT SESSION_KEY, OPTIMIZED, round(COMPRESSION_RATIO,4) COMP, INPUT_BYTES_PER_SEC_DISPLAY IN_SPEED, OUTPUT_BYTES_PER_SEC_DISPLAY OUT_SPEED,
TIME_TAKEN_DISPLAY FROM V$RMAN_BACKUP_JOB_DETAILS WHERE STATUS='RUNNING' ORDER BY SESSION_KEY;SQL> SQL> SQL> SQL> SQL> 2
SESSION_KEY OPT COMP IN_SPEED OUT_SPEED TIME_TAKEN_DISP
----------- --- -------- ---------- ---------- ---------------
452 NO 1.2169 4.48M 3.68M 00:14:27
Também podemos usar o SQL abaixo para outros detalhes importantes:
SQL> col SESSION_KEY for 999
col IN_SIZE for a15
col OUT_SIZE for a15
SELECT SESSION_KEY, INPUT_TYPE, ROUND(COMPRESSION_RATIO,5) COMP_R, INPUT_BYTES_DISPLAY IN_SIZE, OUTPUT_BYTES_DISPLAY OUT_SIZE
FROM V$RMAN_BACKUP_JOB_DETAILS WHERE STATUS='RUNNING' ORDER BY SESSION_KEY;SQL> SQL> SQL> 2
SESSION_KEY INPUT_TYPE COMP_R IN_SIZE OUT_SIZE
----------- ------------- ---------- --------------- ---------------
452 DB FULL 1.2126 5.34G 4.40G
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.