DataARTIGO

Monitorando o RMAN

Oi, amigos. Vou passar duas dicas preciosas para quem trabalha no dia-a-dia com o RMAN e quer monitorar os processos realizados por ele. Seguem as dicas.

1° Dica

A primeira dica é monitorar os processos de servidor (Channels) do RMAN ao efetuar um backup ou recover na instância de destino (TARGET), pois nunca sabemos se irá demorar ou não para realizar o backup. Para acabar com esse problema, existe o SELECT abaixo:

SQL> l
  1  select sid,
  2         serial#,
  3         context,
  4         sofar,
  5         totalwork,
  6         round(sofar/totalwork*100,2) "%_complete"
  7  from
  8         v$session_longops
  9  where
 10         opname like ´RMAN%´
 11         and opname not like ´%aggregate%´
 12         and totalwork != 0
 13*        and sofar <> totalwork

SQL> /

  SID   SERIAL#   CONTEXT     SOFAR   TOTALWORK %_complete
 ----   -------  --------   ------- ----------- ----------
  312     54367         1    455672     1044904      43,61
  295     58222         1    435192     1076910      40,41

Para cada canal (channel) alocado no banco de dados para realização da tarefa de backup ou recover, representa uma sessão no resultado acima. Para exemplificar, o script de RMAN utilizado para realizar o backup (de archives), segue abaixo:

RMAN> print script bkp_archives_diario;

printing stored script: bkp_archives_diario
 {

  allocate channel t1 type disk format ´/u02/backup/rman/BKP_ARCHIVES_DIARIO_%d_%t_%s.rman´;
  allocate channel t2 type disk format ´/u02/backup/rman/BKP_ARCHIVES_DIARIO_%d_%t_%s.rman´;
  sql ´alter system checkpoint global´;
  backup archivelog all tag ´BKP_ARCHIVES_DIARIO´;
  release channel t2;
  release channel t1;
}

Como nosso script acima está usando 2 canais (Channel t1 e Channel t2), será exibido o progresso de cada sessão que é o “%_complete” de cada canal utilizado. Resumindo, com esse simples SELECT feito na instância TARGET, conseguimos monitorar as tarefas básicas do RMAN.

2° Dica

Para acompanhar o status das tarefas realizadas pelo RMAN na sua base target, o SELECT abaixo pode lhe auxiliar, veja:

SQL> l
  1  select operation as "OPERACAO",
  2         object_type as "TIPO",
  3         status,
  4         output_device_type as "MEDIA",
  5         to_char(end_time,´DD-MM-RRRR HH24:MI:SS´) as "DATA",
  6         round(MBYTES_PROCESSED/1024,2) as "TAMANHO(MB)"
  7  from
  8         v$rman_status
  9  where
 10         operation <> ´CATALOG´
 11         and trunc(end_time)>=trunc(sysdate-1)
 12  order by
 13*        end_time
SQL> /

OPERACAO                                 TIPO          STATUS          MEDIA             DATA              TAMANHO(MB)
---------------------------------------- ------------- --------------- ----------------- -------------------- -----------
CONTROL FILE AND SPFILE AUTOBACK                       COMPLETED       DISK              27-07-2008 20:08:27          ,01
BACKUP                                   DB FULL       COMPLETED       DISK              27-07-2008 20:08:31        22,21
RMAN                                                   COMPLETED                         27-07-2008 20:08:31        22,21
CONTROL FILE AND SPFILE AUTOBACK                       COMPLETED       DISK              27-07-2008 22:00:34          ,01
BACKUP                                   ARCHIVELOG    COMPLETED       DISK              27-07-2008 22:00:38          ,53
RMAN                                                   COMPLETED                         27-07-2008 22:00:38          ,54
CONTROL FILE AND SPFILE AUTOBACK                       COMPLETED       DISK              27-07-2008 23:00:22          ,01
BACKUP                                   ARCHIVELOG    COMPLETED       DISK              27-07-2008 23:00:22           ,3
RMAN                                                   COMPLETED                         27-07-2008 23:00:26          ,31
CONTROL FILE AND SPFILE AUTOBACK                       COMPLETED       DISK              28-07-2008 15:40:08          ,01
BACKUP                                   ARCHIVELOG    COMPLETED       DISK              28-07-2008 15:40:12         1,02
RMAN                                                   COMPLETED                         28-07-2008 15:40:12         1,03
RMAN                                                   COMPLETED WITH                    28-07-2008 16:32:24            0
                                                       ERRORS

O resultado será todas as atividades feitas pelo RMAN que foram registradas pelo catálogo de recuperação. Perceba que para cada atividade, a coluna TIPO nos mostra qual atividade foi feita na instância junto com o seu respectivo status. Deste modo conseguimos ter mais controle sobre as operações do RMAN em cada banco de dados gerenciado por ele.

A view v$rman_status fornece mais informações importantes que você poderá adaptar a sua necessidade, as outras opções existentes estão abaixo, quando realizo o select abaixo, veja:

SQL> select column_name from dba_tab_columns where table_name = ´V_$RMAN_STATUS´;

COLUMN_NAME
------------------------------
SID
RECID
STAMP
PARENT_RECID
PARENT_STAMP
SESSION_RECID
SESSION_STAMP
ROW_LEVEL
ROW_TYPE
COMMAND_ID
OPERATION
STATUS
MBYTES_PROCESSED
START_TIME
END_TIME
INPUT_BYTES
OUTPUT_BYTES
OPTIMIZED
OBJECT_TYPE
OUTPUT_DEVICE_TYPE

Espero que essas dicas possam ajudar.

Rodrigo Almeida, DBA Oracle há mais de 10 anos é um dos DBA’s mais influentes do pais e mantém seu próprio Portal e Fórum (www.rodrigoalmeida.net), eleito ORACLE ACE em 2009 pela Oracle Corporation, cursou Eng. da Computação pela UNISANTA, graduado em Analise de banco de dados e pós-graduando em BI pela Veris Faculdades, especialista em Micro-eletrônica pelo INSA em Toulouse/França. Possui certificações OCP 9i/10g/11g, OCE SQL Expert, OCS 11g Implementations e Exadata e mais de 14 certificações Oracle. É vice-presidente do grupo de usuários Oracle do Brasil (GUOB), colunista Oracle do portal iMasters e colaborador técnico para os principais portais e revistas Brasileiras e internacionais. É participante dos Beta Program da Oracle Coporation para soluções de banco de dados e instrutor oficial da Oracle University Brasil para os treinamentos de BD e Exadata e atualmente é DBA Oracle e DMA Exadata e consultor técnico da Oracle do Brasil focado no gerenciamento e implementação de Oracle Exadata, Exalogic e tecnologias de banco de dados e aplicações Oracle. Também é proprietário da empresa UNIDBA Consultoria em TI (www.unidba.com.br)

Ver perfil