Neste manual, será mostrado como realizar o restore do backup previamente realizado conforme artigo anteriormente postado.
Obs: Para esta demonstração, não apagaremos o spfile, ele será mantido intacto.
– Conectando com o usuário do Banco de Dados
# su - oracle
– Criando e exportando a variável ORACLE_SID
$ export ORACLE_SID=orcl
– Conectando ao Banco de Dados
$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Sun Aug 9 16:33:24 2015 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
– Confirmando que a estrutura de memória do banco de dados está reservada
SQL> show sga; Total System Global Area 339738624 bytes Fixed Size 2924112 bytes -- Realizando o shutdown do Banco de Dados SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. Database Buffers 58720256 bytes Redo Buffers 5464064 bytes SQL> shutdown abort; ORACLE instance shut down
– Saíndo do SQLPLUS
SQL> exit Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
– Deletando os datafiles e controlfiles
$ ls -l /u01/app/oracle/oradata/orcl/ total 1921220 -rw-r----- 1 oracle oinstall 10371072 Aug 9 16:34 control01.ctl -rw-r----- 1 oracle oinstall 52429312 Aug 9 16:32 redo01.log -rw-r----- 1 oracle oinstall 52429312 Aug 9 16:34 redo02.log -rw-r----- 1 oracle oinstall 52429312 Aug 9 16:32 redo03.log -rw-r----- 1 oracle oinstall 796925952 Aug 9 16:33 sysaux01.dbf -rw-r----- 1 oracle oinstall 849354752 Aug 9 16:33 system01.dbf -rw-r----- 1 oracle oinstall 62922752 Aug 9 00:55 temp01.dbf -rw-r----- 1 oracle oinstall 141565952 Aug 9 16:33 undotbs01.dbf -rw-r----- 1 oracle oinstall 5251072 Aug 9 16:32 users01.dbf $ rm -rf /u01/app/oracle/oradata/orcl/* $ ls -l /u01/app/oracle/oradata/orcl/ total 0
– Deletando o controlfile
$ ls -l /u01/app/oracle/fast_recovery_area/ orcl/control02.ctl -rw-r----- 1 oracle oinstall 10371072 Aug 9 16:34 /u01/app/oracle/fast_recovery_area/ orcl/control02.ctl $ rm -rf /u01/app/oracle/fast_recovery_area/ orcl/control02.ctl $ ls -l /u01/app/oracle/fast_recovery_area/ orcl/control02.ctl ls: cannot access /u01/app/oracle/fast_recovery_area/ orcl/control02.ctl: No such file or directory
– Conectando-se ao RMAN
$ rman target / Recovery Manager: Release 12.1.0.2.0 - Production on Sun Aug 9 16:42:26 2015 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. connected to target database (not started)
— Inicializando o Banco de Dados em modo nomount
RMAN> startup nomount; Oracle instance started Total System Global Area 339738624 bytes Fixed Size 2924112 bytes Variable Size 260047280 bytes Database Buffers 71303168 bytes Redo Buffers 5464064 bytes
– Restaurando o Controlfie
RMAN> restore controlfile; Starting restore at 09-AUG-15 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=21 device type=DISK RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of restore command at 08/09/2015 16:43:19 RMAN-06563: control file or SPFILE must be restored using FROM AUTOBACKUP RMAN> show all; using target database control file instead of recovery catalog RMAN configuration parameters for database with db_unique_name ORCL are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ENCRYPTION FOR DATABASE OFF; # default CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
Veja que os parâmetros do RMAN estão como default novamente, isso ocorre porque como não estamos utilizando um catalogo, os parâmetros alterados estão guardados no antigo controlfile, como não o restauramos até o momento, precisamos informar o caminho completo do autobackup para restaurar o controlfile.
– Restaurando o Controlfile
RMAN> restore controlfile from '/backup/autobackup/c-1411380092-20150808-00'; Starting restore at 09-AUG-15 using channel ORA_DISK_1 channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 output file name=/u01/app/oracle/oradata/orcl/control01.ctl output file name=/u01/app/oracle/fast_recovery_area/orcl/control02.ctl Finished restore at 09-AUG-15
– Alterando o modo do Banco de Dados para mount
RMAN> alter database mount; Statement processed released channel: ORA_DISK_1
– Verificando os parâmetros do RMAN
RMAN> show all; RMAN configuration parameters for database with db_unique_name ORCL are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/autobackup/%F'; CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/repositorio/%U'; CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ENCRYPTION FOR DATABASE OFF; # default CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/ 12.1.0.2/db_1/dbs/snapcf_orcl.f'; # default
Agora, podemos notar que as alterações feitas anteriormente retornaram.
– Realizando o Restore do Banco de Dados
RMAN> restore database; Starting restore at 09-AUG-15 Starting implicit crosscheck backup at 09-AUG-15 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=21 device type=DISK Crosschecked 3 objects Finished implicit crosscheck backup at 09-AUG-15 Starting implicit crosscheck copy at 09-AUG-15 using channel ORA_DISK_1 Finished implicit crosscheck copy at 09-AUG-15 searching for all files in the recovery area cataloging files... cataloging done List of Cataloged Files ======================= File Name: /u01/app/oracle/fast_recovery_area/ORCL/archivelog/ 2015_08_09/o1_mf_1_4_bwhbp23p_.arc using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set channel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/ oradata/orcl/system01.dbf channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/ oradata/orcl/sysaux01.dbf channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/ oradata/orcl/undotbs01.dbf channel ORA_DISK_1: restoring datafile 00006 to /u01/app/oracle/ oradata/orcl/users01.dbf channel ORA_DISK_1: reading from backup piece /backup/ repositorio/05qe4730_1_1 channel ORA_DISK_1: piece handle=/backup/repositorio/ 05qe4730_1_1 tag=TAG20150808T214711 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:02:06 Finished restore at 09-AUG-15
– Realizando o Recover
RMAN> recover database; Starting recover at 09-AUG-15 using channel ORA_DISK_1 starting media recovery archived log for thread 1 with sequence 3 is already on disk as file /u01/app/oracle/fast_recovery_area/ORCL/archivelog/ 2015_08_08/o1_mf_1_3_bwf8vsvl_.arc archived log for thread 1 with sequence 4 is already on disk as file /u01/app/oracle/fast_recovery_area/ORCL/archivelog/ 2015_08_09/o1_mf_1_4_bwhbp23p_.arc archived log file name=/u01/app/oracle/fast_recovery_area/ORCL/archivelog/ 2015_08_08/o1_mf_1_3_bwf8vsvl_.arc thread=1 sequence=3 archived log file name=/u01/app/oracle/fast_recovery_area/ORCL/archivelog/ 2015_08_09/o1_mf_1_4_bwhbp23p_.arc thread=1 sequence=4 unable to find archived log archived log thread=1 sequence=5 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of recover command at 08/09/2015 16:47:18 RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 5 and starting SCN of 3025701 RMAN> list backup of archivelog sequence=5; specification does not match any backup in the repository
O erro acima, refere-se a impossibilidade do RMAN de restaurar a sequencia 5 do archivelog, porém, se tentarmos listar através do RMAN o archivelog que contém a sequência 5, não encontraremos, isso significa que o recover foi realizado até o fim, garantindo a integridade dos dados e já podemos abrir o Banco de Dados.
– Abrindo o Banco de Dados com a opção resetlogs.
RMAN> alter database open resetlogs; Statement processed -- Saindo do RMAN RMAN> exit Recovery Manager complete. $
Restore realizado com sucesso!!!
No próximo artigo, será mostrado como criar um catalogo, como conectar-se a ele através do RMAN.