Pular para o conteúdo

Data Recovery Advisor (DRA): Detecção, análise e reparo de falhas no Banco de Dados

Recuperando-se de falhas com o Data Recovery Advisor

Introdução

No artigo de hoje vou apresentar o Data Recovery Advisor (DRA), uma ferramenta que passou a existir na versão 11 do Oracle Database e que pouca gente conhece, mas que é muito útil para efetuar uma rápida detecção, análise e reparo de falhas no Banco de Dados. Essas falhas, são na grande maioria, corrompimento lógico ou físico de dados.

Principais problemas que o DRA pode detectar e corrigir:

  • Datafiles não encontrados no SO;
  • Privilégios de acesso incorretos;
  • Corrompimento físico de dados, tal como um bloco de dados perdido em decorrência de danos físicos no disco;
  • Corrompimento lógico de dados, tal como uma inconsistência no dicionário de dados;
  • Inconsistências nos control files ou redo logs;
  • Falhas de I/O, tais como: qtde. máxima de arquivos abertos excedida, rede inacessível etc.

Para usar o DRA, precisamos nos conectar no RMAN e executar as funcionalidades abaixo:

1- A detecção de falhas através do comando VALIDATE DATABASE;

VALIDATE DATABASE deve ser executado para detectar falhas no BD.

2- A listagem de falhas através do comando LIST FAILURE;

LIST FAILURE deve ser executado para listar as falhas encontradas no BD.

3- A geração de um diagnóstico através do comando ADVISE FAILURE;

ADVISE FAILURE deve ser executado para gerar um diagnóstico das falhas encontradas no BD.

4- A aplicação de um diagnóstico através do comando REPAIR FAILURE.

REPAIR FAILURE deve ser executado para exibir e/ou aplicar scripts de reparo de falhas, automaticamente no BD.

Obs.: Os items acima devem ser executados sequencialmente, um após o outro, ou seja, não podemos executar o item 4 antes de ter executado o item 3, e assim, sucessivamente.

A seguir iremos executar um passo-a-passo para testar o DRA. Para vermos como a ferramenta funciona, apaguei em um BD de teste chamado orcl, um datafile com o nome teste.dbf.

PASSO-A-PASSO PARA EXECUTAR O DRA

Passo 1: Conecte-se no RMAN:

No prompt do SO (Linux), conecte-se no RMAN, como no exemplo abaixo:

export ORACLE_SID=orcl   rman target /

Passo 2: Inicie a detecção de problemas:

No prompt do RMAN execute o comando abaixo:

RMAN> validate database;

Passo 3: Exiba a lista de problemas:

No prompt do RMAN execute o comando abaixo:

RMAN> list failure;

Resultado:

List of Database Failures

=========================

Failure ID Priority Status    Time Detected Summary
---------- -------- --------- ------------- -------
78422      HIGH     OPEN      30-JUL-13     One or more non-system datafiles are missing

Veja pelo resultado acima que a ferramenta conseguiu identificar que existem 1 ou mais datafiles não encontrados.

Passo 4: Gerando o diagnóstico: 

No prompt do RMAN execute o comando abaixo:

RMAN> advise failure;

Resultado:

analyzing automatic repair options; this may take some time

using channel ORA_DISK_1

analyzing automatic repair options complete

Mandatory Manual Actions
========================
1. If file /ora/orcl/teste.dbf was unintentionally renamed or moved, restore it
2. If you have an export of tablespace TESTE, then drop and re-create the tablespace and import the data.
3. Contact Oracle Support Services if the preceding recommendations cannot be used, or if they do not fix the failures selected for repair

Optional Manual Actions
=======================
no manual actions available

Automated Repair Options
========================
no automatic repair options available

Veja pelo resultado acima que a ferramenta conseguiu identificar 3 opções de reparo para restaurar o datafile não encontrado.

Na 1ª opção ela pede para verificar se datafile teste.dbf  foi renomeado ou removido e sugere restaurá-lo manualmente.

Na 2ª opção ela sugere restaurar os dados através de um export, se houver algum dump contendo os dados do tablespace TESTE (tablespace correspondente ao datafile que foi apagado). Se eu tivesse feito um backup deste datafile antes, o DRA iria sugerir a restauração do backup e geraria um script completo de restauração deste backup ao executar o próximo passo.

Na 3ª opção ela sugere contatar o suporte da Oracle.

Passo 5: Verificando e/ou implementando as opções de reparo: 

É uma boa prática sempre verificar o script de reparo do DRA antes de aplicá-lo, a fim de evitar desastres maiores. Se um datafile foi movido para outra pasta acidentalmente, é melhor verificar isso fora da ferramenta e voltar o datafile para o seu lugar original, ao invés de executar um script de restore de backup que a ferramenta poderia sugerir.

No prompt do RMAN, execute o comando abaixo para verificar o script de reparo gerado pela ferramenta:

RMAN> repair failure preview;

Resultado:

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of repair command at 07/30/2013 17:00:03
RMAN-06953: no automatic repairs were listed by ADVISE FAILURE

Como não existia backup do datafile, o DRA não conseguiu gerar uma opção de reparo automática. Se o contrário tivesse ocorrido, você poderia aplicar o script de reparo automaticamente, executando o comando abaixo:

RMAN> repair failure;

Para ver uma lista de todas as falhas e reparos do BD, é possível também, consultar as visões:  V$IR_FAILURE e V$IR_REPAIR.

Bom pessoal, por hoje é só!

Para obter mais informações sobre o DRA e aprender mais sobre esta ferramenta, consulte as referências ao final do artigo.

Referências

Fábio Prado

Fábio Prado

Atua na área de tecnologia há 13 anos, possui experiência e profundos conhecimentos em Análise de Sistemas, programação com Dot Net e Administração de Bancos de Dados Oracle.

É Oracle ACE, DBA Oracle, instrutor de treinamentos em Bancos de Dados Oracle na FABIOPRADO.NET, articulista da revista SQL Magazine e diversos blogs e sites de TI e autor do blog www.fabioprado.net . É Bacharel em Ciências da Computação, com MBA e Pós-graduação em Gestão de Projetos.

Possui as seguintes certificações: Microsoft: MCP, MCSD, MCAD, MCSD.NET, MCDBA, MCTS, MCT e MCPD; Oracle: OCP Database 10G e 11G, OCA PL/SQL e Oracle Database 11g Performance Tuning Certified Expert.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Marcações:
plugins premium WordPress