Pular para o conteúdo

Como recuperar dados com o RMAN utilizando Pontos de Restauração

Recuperando dados com o RMAN utilizando Pontos de Restauração

Introdução

No artigo de hoje irei demonstrar um recurso muito útil e que sempre demonstro nas aulas dos treinamentos oficiais Oracle Database Administration Workshop II, que é como recuperar dados com o RMAN utilizando Pontos de Restauração.

Um ponto de restauração pode ser entendido como um apelido para um SCN (System Change Number) ou momento específico do Banco de Dados (BD). Ao criar um ponto de restauração, podemos posteriormente restaurar o estado do BD para o momento em que ele (o ponto de restauração) foi criado. Isso permite voltar o BD no tempo para refletir um estado anterior, ou seja, se às 10h de hoje criarmos um ponto de restauração no BD e às 12h apagarmos dados de 1 tabela, podemos posteriormente recuperar esses dados voltando o BD para o momento em que o ponto de restauração foi criado, pois neste momento os dados ainda existiam na tabela. Este procedimento pode ser útil para executar scripts de atualizações de sistemas. Neste caso, se algo de errado acontecer ao executar os scripts, você poderá voltar o estado anterior do BD e recomeçar a atualização!

O ponto de restauração é armazenado no arquivo de controle e pode ser utilizado para restaurar dados por meio de Flashback (FLASHBACK DATABASE e FLASHBACK TABLE) ou Backups (RESTORE e RECOVER DATABASE).

Utilizando um ponto de restauração ao recuperar dados

Para demonstrar o recurso, executaremos abaixo um passo-a-passo, onde criaremos um ponto de restauração chamado teste e faremos em seguida um backup do BD. Depois, apagaremos dados de uma tabela e posteriormente faremos uma recuperação desses dados, utilizando os comandos RESTORE e RECOVER, através do RMAN.

Para iniciar o passo-a-passo abaixo, é necessário:

1-  Conectar-se previamente no Banco de Dados desejado, através do SQL Plus ou outra ferramenta compatível, com um usuário que tenha o privilégio SYSDBA nos passos 1, 2, 3, 5, 6, 7, 8 e 10 ;

2- Conectar-se no RMAN em um BD target e opcionalmente em um BD catálogo do RMAN nos passos 4 e 9;

3- Ter instalado no BD o schema HR. Se o BD não tiver o schema HR e você precisar de orientação para instalá-lo, leia o artigo Instalando o schema de exemplo HR.

PASSO-A-PASSO

Passo 1: Criando a tabela EMP2 (que será posteriormente apagada e restaurada )

SQL> CREATE TABLE HR.EMP2 AS SELECT * FROM HR.EMPLOYEES;

Passo 2: Verificando se a tabela EMP2 foi criada no passo anterior:

SQL> SELECT COUNT(1) FROM HR.EMP2;

Resultado: Deverá retornar um valor maior que zero (o normal é que ela retorne o valor 107).

Passo 3: Criando o ponto de restauração (chamado teste):

SQL> create restore point teste;

Passo 4: Criando um backup dos dados:

Neste passo criaremos um backup incremental nível 0, que irá fazer um backup completo de todos os dados do BD. Para efetuar o backup de acordo com o roteiro deste passo-a-passo, é necessário que o BD esteja configurado para gerar archive logs (ver artigo Configurando Bancos de Dados para gerar Archive Logs).

RMAN> backup incremental level 0 database;

Obs.: O backup irá conter os dados da tabela EMP2 que serão apagados no próximo passo para possibilitar o teste de restauração e recuperação no Passo 9:

Passo 5: Apagando os dados da tabela EMP2:

SQL> TRUNCATE TABLE HR.EMP2;

Passo 6: Verificando se os dados da tabela EMP2 foram apagados:

SQL> SELECT COUNT(1) FROM HR.EMP2;

Resultado: Deverá retornar o valor zero.

Passo 7: Efetuando um shutdown no BD para iniciar a restauração:

SQL> shutdown immediate;

Passo 8: Startando o BD em estado mount para iniciar a restauração:

SQL> startup mount;

Passo 9: Restaurando os dados e abrindo o BD:     

RMAN> restore database until restore point teste;

RMAN> recover database until restore point teste;

RMAN> alter database open resetlogs;

Passo 10: Verificando se os dados foram restaurados com sucesso:

SQL> SELECT COUNT(1) FROM HR.EMP2;

RESULTADO FINAL:

Se a restauração dos dados ocorrer sem problemas, o retorno do passo 10 será novamente um valor maior que zero, ou seja, os dados da tabela EMP2 que foram apagados no Passo 5 foram restaurados com sucesso.

CONCLUSÃO

Utilizar um ponto de restauração é um método bastante prático e preciso para restaurar o BD para um estado prévio, caso ocorram falhas ou atualizações indesejadas no BD. Recomendo sempre que possível, criar pontos de restauração seguidos de um backup do BD, antes de efetuar grandes atualizações que possam comprometer a integridade ou consistência dos dados.

Referências

  • Curso oficial da Oracle: Oracle Database 10G Administration Workshop II.
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