Pular para o conteúdo

Oracle Backup & Recovery – DBMS_BACKUP_RESTORE

Oracle Backup & Recovery – DBMS_BACKUP_RESTORE

Algumas vezes não temos nem o RMAN disponível, e precisamos restaurar um Banco de Dados completamente corrompido.

Nestes casos, é possível utilizar diretamente a Package DBMS_BACKUP_RESTORE, que é o que o próprio RMAN faz – ele é apenas um interpretador e simplificador de comandos.

Por exemplo, no exemplo abaixo executamos um RESTORE de CONTROLFILE, a partir de um Backup automático de CONTROLFILE feito pelo RMAN, mas sem utilizar o RMAN.

SQL> STARTUP NOMOUNT;
InstÔncia ORACLE iniciada.

Total System Global Area  535662592 bytes
Fixed Size                  1375792 bytes
Variable Size             377487824 bytes
Database Buffers          150994944 bytes
Redo Buffers                5804032 bytes
SQL> DECLARE
2     v_DevType VARCHAR2(256);
3     v_Done BOOLEAN;
4  BEGIN
5     v_DevType := DBMS_BACKUP_RESTORE.DEVICEALLOCATE(NULL);
6     DBMS_BACKUP_RESTORE.RESTORESETDATAFILE;
7     DBMS_BACKUP_RESTORE.RESTORECONTROLFILETO('C:\ORACLE\ORADATA\ORCL\CONTROL01.CTL');
8     DBMS_BACKUP_RESTORE.RESTOREBACKUPPIECE('C:\ORACLE\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2010_05_26\O1_MF_S_720037195_5ZV46VGJ_.BKP', DONE=>v_Done);
9     DBMS_BACKUP_RESTORE.DEVICEDEALLOCATE;
10  END;
11  /

Procedimento PL/SQL concluÝdo com sucesso.

SQL> ALTER DATABASE MOUNT;

Banco de dados alterado.

SQL> ALTER DATABASE OPEN RESETLOGS;

Banco de dados alterado.

SQL>
Ricardo Portilho Proni

Ricardo Portilho Proni

Com 20 anos de experiência profissional, Oracle ACE Member – eleito pela Oracle Corporation um dos maiores especialistas do mundo em Oracle Database- Trabalhou em grande parte dos maiores bancos de dados Oracle do Brasil. Certificado em Oracle, SQL Server, DB2, MySQL, Sybase e Websphere. Conselheiro do GPO e do GUOB, palestrante do ENPO, GUOB Tech Day e Oracle Open World, escritor da Revista SQL Magazine e Instrutor na Nerv.

Comentário(s) da Comunidade

  1. Muito interessante Portilho, uma ótima alternativa quando não temos a ferramenta RMAN disponível. Agora fiquei na duvida, em qual situação o RMAN não está disponível ?.. talvez uma corrupção no utilitário ?…

    Abraço,
    Rodrigo Santana

  2. Oi Rodrigo ! Blz?

    Já ocorreu comigo em duas situações. Na pior delas, era um servidor Windows, e um desocupado apagou a pasta com a instalação do Oracle. Foi muita coisa embora, entre elas o executável do RMAN. Mas o banco ficou funcionando, pois o que estava em uso pelo S.O. não foi apagado, e o SQL*Plus era um deles, pois estava aberto.
    Também já tive que acessar um ambiente em estado crítico remotamente, um Unix, não tinha acesso ao Shell, e da minha máquina cliente Windows só tinha um sqlplusw. Mas depois disso até que o cliente liberou o acesso e utilizei o RMAN do servidor. Mas é uma carta na manga !

Deixe um comentário

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

plugins premium WordPress