Você está na página 1de 135

Oracle Backup & Recovery 9iR1 ao 11gR2

Ricardo Portilho Proni


ricardo@nervinformatica.com.br

Minha abordagem
Pense em Recovery, e no em Backup. RMAN significa Recovery Manager, e no Backup Manager. Sem RMAN, o Manager do Recovery ser voc. O cliente no quer saber se tem Backup, quando pergunta isto. Quer saber se tem Recovery. A maior responsabilidade de um DBA o Recovery. Os Bancos de Dados esto cada vez maiores, e o Recovery, mais difcil. Cerca de 80% dos grandes Bancos de Dados no so recuperveis. 60% das empresas que perderam dados fecharam suas portas em at 1 ano. Backup e Recovery com RMAN. O RMAN grtis: se voc comprou o Oracle, ele j seu. O RMAN no precisa ser instalado. Se o Banco de Dados importante, deve estar em ARCHIVELOG. Se o Banco de Dados no importante, para que colocar dados nele? No h motivo que justifique Backup Offline (Backup Frio). Recovery uma situao estressante. Durante uma situao estressante, tendemos a utilizar as opes que conhecemos melhor. Recovery deve ser praticado, treinado, dominado. Voc ter que fazer um Recovery. A questo no SE, QUANDO. Saiba o tempo necessrio para um Recovery iro lhe perguntar. Durante o Recovery, se puder, tenha uma segunda pessoa olhando o que voc est fazendo. Saiba o momento em que deve pedir ajuda. No execute uma operao sem saber seu efeito. Conhea outros RDBMS. TI no lugar para paixes. Voc ficaria surpreso em descobrir as vantagens dos Logs de outros RDBMs sobre o Oracle. Saiba dizer No.

O que o RMAN?

Packages RMAN
DBMS_RCVMAN DBMS_BACKUP_RESTORE DBMS_RCVCAT DBMS_TDB

Arquitetura RMAN

MML

Por que usar o RMAN?

Lab 0.1: Por que usar o RMAN?


$ sqlplus / as sysdba SQL> ALTER TABLESPACE USERS ADD DATAFILE '/u01/oradata/ORCL/users02.dbf' SIZE 10M AUTOEXTEND ON MAXSIZE UNLIMITED; SQL> EXIT; $ rman TARGET / RMAN> REPORT NEED BACKUP; RMAN> EXIT; $ sqlplus / AS SYSDBA SQL> CREATE TABLE T TABLESPACE USERS NOLOGGING AS SELECT * FROM ALL_OBJECTS; SQL> EXIT; $ rman TARGET / RMAN> REPORT UNRECOVERABLE; RMAN> EXIT;

RMAN: Vantagens
Backup Lgico (exp / expdp) mais lento que Backup Fsico (RMAN). Restore Lgico (imp / imdp) mais lento que Restore Fsico (RMAN). Restores Lgicos no podem ser em um ponto do tempo. User Managed Backup (BEGIN BACKUP / END BACKUP) gera mais Redo Logs. O RMAN sabe automaticamente onde esto todos os arquivos do Banco de Dados. Compresso embutida significa Backups a mais, e dinheiro a mais. E todas as New Features a seguir no podero ser utilizadas

RMAN New Features: 10gR1


RMAN Scripts Manageability Enhanced RMAN Reporting Backup Compression Bounded Backup Window Recovery Area Full Alert Flash Backup and Recovery RMAN Database Deregistration Backup and Restore of Standby Control File Automatic TSPITR Simplified Recovery Manager Cataloging of Backup Files Automatic Channel Failover for Backup and Restore Automatic File Creation During Recovery Simplified Backups to Disk Proxy Copy Backup of Archivelogs Incrementally Updated Backups Simplified Recovery Through Resetlogs Restore Tolerates Corrupt or Missing Backups Full Database Begin Backup Command Change-Aware Incremental Backups

10

RMAN New Features: 10gR2


Automatic Deletion of Applied Archive Logs Dynamic RMAN Channel Allocation for Backing Up and Recovering RAC Database RMAN Backup Encryption Enhanced RMAN Backup Job Views Hardware Assisted Resilient Data (HARD) Compliant RMAN Backups Incremental Roll Forward of Database Copy Unused Block Compression Restore Point Temporary Datafiles Are Re-Created on RMAN Recovery Use RMAN Compression During Cloning

11

RMAN New Features: 11gR1


Archive Log Management Improvements Fast Incremental Backups on Physical Standby Database Improved Backup Compression Performance Improved Integration with Data Guard Network-Aware DUPLICATE Command Optimized Undo Backup Read-Only Transported Tablespaces Backup Virtual Private Catalog Data Recovery Advisor Enhance LogMiner to Support Automatic Data Repair Integrated Protection From Various Data Corruptions Lost-Write Detection Using a Physical Standby Database

12

RMAN New Features: 11gR2


Automatic Block Repair Backup to Amazon Simple Storage Service (S3) Using OSB Cloud Computing DUPLICATE Without Connection to Target Database Enhanced Tablespace Point-In-Time Recovery (TSPITR) New DUPLICATE Options New SET NEWNAME Clauses and Format Options Tablespace Checks in DUPLICATE

13

RMAN: Conexes, Opes, Configuraes e Comandos

14

Conexes

15

Conexes

TARGET

$ rman TARGET / $ rman TARGET BACKUP_USER/BACKUP_USER $ rman TARGET BACKUP_USER/BACKUP_USER@PRD

CATALOG
$ rman TARGET / CATALOG=RMAN_USER/RMAN_USER@CATALOGO

AUXILIARY
$ rman AUXILIARY / $ rman TARGET / AUXILIARY / $ rman AUXILIARY BACKUP_USER/BACKUP_USER $ rman AUXILIARY BACKUP_USER/BACKUP_USER@PRD TARGET / $ rman AUXILIARY / TARGET BACKUP_USER/BACKUP_USER@PRD

16

Opes

17

Configuraes
Exibir todas configuraes padro
RMAN> SHOW ALL;

Exibir uma configurao padro


RMAN> SHOW RETENTION POLICY;

Alterar uma configurao padro


RMAN> CONFIGURE BACKUP OPTIMIZATION ON;

Reiniciar uma configurao padro


RMAN> CONFIGURE BACKUP OPTIMIZATION CLEAR;

Ignorar uma configurao padro at o final da sesso


RMAN> SET COMPRESSION ALGORITHM 'HIGH';

Ignorar uma configurao padro uma vez


RMAN> RUN {SET BACKUP COPIES 2; BACKUP DATABASE;}

18

Comandos
@ @@ ADVISE FAILURE ALLOCATE CHANNEL ALLOCATE CHANNEL FOR MAINTENANCE ALTER DATABASE BACKUP CATALOG CHANGE CONFIGURE CONNECT CONVERT CREATE CATALOG CREATE SCRIPT CROSSCHECK DELETE DELETE SCRIPT DROP CATALOG DROP DATABASE DUPLICATE EXECUTE SCRIPT EXIT FLASHBACK DATABASE GRANT HOST IMPORT CATALOG LIST PRINT SCRIPT QUIT RECOVER REGISTER DATABASE RELEASE CHANNEL REPAIR FAILURE REPLACE SCRIPT REPORT RESET DATABASE RESTORE RESYNC CATALOG REVOKE RMAN RUN SEND SET SHOW SHUTDOWN SPOOL SQL STARTUP SWITCH TRANSPORT TABLESPACE UNREGISTER UPGRADE CATALOG VALIDATE

19

Lab 1.1: Conexes, Opes, Configuraes


Execute o RMAN em modo DEBUG.
$ rman DEBUG TRACE=/home/oracle/rman.trc TARGET / RMAN> SHOW ALL; RMAN EXIT;

Verifique o contedo do arquivo de TRACE. Execute o RMAN em modo LOG.


$ rman LOG=/home/oracle/rman.log TARGET / RMAN> SHOW ALL; RMAN> EXIT;

Verifique o contedo do arquivo de LOG. Estudando o TRACE, execute o SHOW ALL pelo SQL*Plus.

20

Lab 1.2: Conexes, Opes, Configuraes


Verifique todas as configuraes do RMAN.
$ rman TARGET / RMAN> SHOW ALL;

Altere as seguintes configuraes do RMAN.


RMAN> CONFIGURE BACKUP OPTIMIZATION ON; RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET; RMAN> CONFIGURE COMPRESSION ALGORITHM 'HIGH' OPTIMIZE FOR LOAD TRUE AS OF RELEASE 'DEFAULT';

Verifique indidualmente o contedo das configuraes alteradas. Volte uma das configuraes ao seu valor original (CLEAR), e a altere novamente.

21

Instance

22

Instance States
Estados:
SHUTDOWN STARTUP --- O RMAN s conecta no TARGET e AUXILIARY a partir deste estgio. MOUNT OPEN O RMAN s conecta no CATALOG neste estgio.

Comandos:
RMAN> STARTUP; RMAN> STARTUP NOMOUNT; RMAN> ALTER DATABASE MOUNT; RMAN> STARTUP MOUNT; RMAN> ALTER DATABASE OPEN; SQL> STARTUP RESTRICT; SQL> ALTER SYSTEM DISABLE RESTRICTED SESSION; RMAN> STARTUP DBA; RMAN> STARTUP FORCE; RMAN> SHUTDOWN NORMAL; RMAN> SHUTDOWN IMMEDIATE; RMAN> SHUTDOWN TRANSACTIONAL; RMAN> SHUTDOWN ABORT;

23

Lab 2.1: Instance


Altere o Banco de Dados para o modo NOARCHIVELOG.
SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER DATABASE NOARCHIVELOG; SQL> ALTER DATABASE OPEN;

Execute um BACKUP OFFLINE.


RMAN> SHUTDOWN IMMEDIATE; RMAN> STARTUP MOUNT; RMAN> BACKUP DATABASE; RMAN> ALTER DATABASE OPEN;

24

Archived Redo Logs

25

Archived Redo Logs

26

Parmetros: Archived Redo Logs


archive_lag_target log_archive_config log_archive_dest log_archive_dest_1, log_archive_dest_2 , log_archive_dest_3... log_archive_dest_state_1, log_archive_dest_state_2, log_archive_dest_state_3... log_archive_duplex_dest log_archive_format log_archive_local_first log_archive_max_processes log_archive_min_succeed_dest log_archive_start log_archive_trace standby_archive_dest

27

Format: Archived Redo Logs


%s: log sequence number %S: log sequence number, zero filled %t: thread number %T: thread number, zero filled %a: activation ID %d: database ID %r: resetlogs ID

28

Lab 3.1: Archived Redo Logs


Escolha um local de armazenamento dos Archived Redo Logs.
$ mkdir /u01/archives SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/u01/archives';

Escolha um nome para os Archives.


SQL> ALTER SYSTEM SET LOG_ARCHIVE_FORMAT = ...

Altere o Banco de Dados para o modo ARCHIVELOG.


SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE OPEN;

Habilite mais um destino de armazenamento dos Archived Redo Logs. Verifique se os Archived Redo Logs esto sendo gerados nos dois destinos. Verifique o Alert Log.

29

RMAN: Backup

30

Lab 4.1: Backup


RMAN> BACKUP SPFILE; RMAN> BACKUP CURRENT CONTROLFILE; RMAN> BACKUP DATAFILE 1; RMAN> BACKUP DATAFILE 1, 2; RMAN> BACKUP TABLESPACE USERS; RMAN> BACKUP TABLESPACE USERS, SYSAUX; RMAN> BACKUP DATABASE;

31

Lab 4.2: Backup


RMAN> LIST ARCHIVELOG ALL; RMAN> SQL 'ALTER SYSTEM SWITCH LOGFILE'; RMAN> SQL 'ALTER SYSTEM SWITCH LOGFILE'; RMAN> SQL 'ALTER SYSTEM SWITCH LOGFILE'; RMAN> SQL 'ALTER SYSTEM SWITCH LOGFILE'; RMAN> SQL 'ALTER SYSTEM SWITCH LOGFILE'; RMAN> SQL 'ALTER SYSTEM SWITCH LOGFILE'; RMAN> LIST ARCHIVELOG ALL; RMAN> LIST ARCHIVELOG SEQUENCE 1; RMAN> LIST ARCHIVELOG FROM SEQUENCE 1; RMAN> LIST ARCHIVELOG FROM SEQUENCE 2 UNTIL SEQUENCE 4; RMAN> BACKUP ARCHIVELOG SEQUENCE 1; RMAN> BACKUP ARCHIVELOG FROM SEQUENCE 2 UNTIL SEQUENCE 3; RMAN> BACKUP ARCHIVELOG UNTIL SEQUENCE 5;

32

Lab 4.3: Backup


RMAN> BACKUP ARCHIVELOG SEQUENCE 12; RMAN> BACKUP ARCHIVELOG SEQUENCE 12; RMAN> BACKUP ARCHIVELOG ALL NOT BACKED UP 3 TIMES; RMAN> BACKUP ARCHIVELOG ALL; RMAN> BACKUP ARCHIVELOG ALL DELETE INPUT; RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;

33

RMAN: Repository

34

RMAN Repository

CONTROL_FILE_RECORD_KEEP_TIME

35

RMAN CATALOG
RC_ARCHIVED_LOG RC_BACKUP_ARCHIVELOG_DETAILS RC_BACKUP_ARCHIVELOG_SUMMARY RC_BACKUP_CONTROLFILE RC_BACKUP_CONTROLFILE_DETAILS RC_BACKUP_CONTROLFILE_SUMMARY RC_BACKUP_COPY_DETAILS RC_BACKUP_COPY_SUMMARY RC_BACKUP_CORRUPTION RC_BACKUP_DATAFILE RC_BACKUP_DATAFILE_DETAILS RC_BACKUP_DATAFILE_SUMMARY RC_BACKUP_FILES RC_BACKUP_PIECE RC_BACKUP_PIECE_DETAILS RC_BACKUP_REDOLOG RC_BACKUP_SET RC_BACKUP_SET_DETAILS RC_BACKUP_SET_SUMMARY RC_BACKUP_SPFILE RC_BACKUP_SPFILE_DETAILS RC_BACKUP_SPFILE_SUMMARY RC_CHECKPOINT RC_CONTROLFILE_COPY RC_COPY_CORRUPTION RC_DATABASE RC_DATABASE_BLOCK_CORRUPTION RC_DATABASE_INCARNATION RC_DATAFILE RC_DATAFILE_COPY RC_LOG_HISTORY RC_OFFLINE_RANGE RC_PROXY_ARCHIVEDLOG RC_PROXY_ARCHIVELOG_DETAILS RC_PROXY_ARCHIVELOG_SUMMARY RC_PROXY_CONTROLFILE RC_PROXY_COPY_DETAILS RC_PROXY_COPY_SUMMARY RC_PROXY_DATAFILE RC_REDO_LOG RC_REDO_THREAD RC_RESTORE_POINT RC_RESYNC RC_RMAN_BACKUP_JOB_DETAILS RC_RMAN_BACKUP_SUBJOB_DETAILS RC_RMAN_BACKUP_TYPE RC_RMAN_CONFIGURATION RC_RMAN_OUTPUT RC_RMAN_STATUS RC_SITE RC_STORED_SCRIPT RC_STORED_SCRIPT_LINE RC_TABLESPACE RC_TEMPFILE RC_UNUSABLE_BACKUPFILE_DETAILS

36

Lab 5.1: Catalog


Crie um CATALOG em seu prprio Banco de Dados.
$ sqlplus / AS SYSDBA SQL> CREATE TABLESPACE TBS_CATALOGO DATAFILE '/u01/oradata/ORCL/tbs_catalogo_01.dbf' SIZE 10M AUTOEXTEND ON NEXT 10M; SQL> CREATE USER USER_CATALOGO IDENTIFIED BY USER_CATALOGO DEFAULT TABLESPACE TBS_CATALOGO; SQL> GRANT CONNECT, RESOURCE, RECOVERY_CATALOG_OWNER TO USER_CATALOGO; SQL> EXIT; $ rman CATALOG=USER_CATALOGO/USER_CATALOGO RMAN> CREATE CATALOG TABLESPACE TBS_CATALOGO; RMAN> EXIT;

Registre seu Banco de Dados no CATALOG local.


$ rman CATALOG=USER_CATALOGO/USER_CATALOGO TARGET / RMAN> REGISTER DATABASE;

Desregistre seu Banco de Dados do CATALOG local, e remova o CATALOG.


RMAN> UNREGISTER DATABASE; RMAN> DROP CATALOG;

Registre seu Banco de Dados no CATALOG centralizado.

37

Lab 5.2: Catalog


Com o RMAN, conecte no TARGET sem conectar no CATALOG.
$ rman TARGET /

Altere uma configurao do RMAN.


RMAN> CONFIGURE BACKUP OPTIMIZATION OFF;

Saia do RMAN, e agora conecte-se ao TARGET e ao CATALOG.


RMAN> EXIT; $ rman CATALOG=USER_CATALOGO/USER_CATALOGO@CATALOGO TARGET /

A configurao se manteve? Por que? Explore as VIEWs do CATALOG. Habitue-se ao seu contudo. Execute o script de limpeza do CATALOG.
$ sqlplus USER_CATALOGO/USER_CATALOGO@CATALOGO SQL>@?/rdbms/admin/prgrmanc.sql

38

RMAN: Validate

39

Lab 6.1: Validate


RMAN> BACKUP VALIDATE DATAFILE 1; RMAN> BACKUP VALIDATE DATAFILE 1,2; RMAN> BACKUP VALIDATE TABLESPACE USERS; RMAN> BACKUP VALIDATE TABLESPACE USERS, SYSAUX; RMAN> BACKUP VALIDATE DATABASE; RMAN> BACKUP VALIDATE CHECK LOGICAL DATAFILE 1; RMAN> BACKUP VALIDATE CHECK LOGICAL DATAFILE 1,2; RMAN> BACKUP VALIDATE CHECK LOGICAL TABLESPACE USERS; RMAN> BACKUP VALIDATE CHECK LOGICAL TABLESPACE USERS, SYSAUX; RMAN> BACKUP VALIDATE CHECK LOGICAL DATABASE;

OU
RMAN> VALIDATE DATAFILE 1; RMAN> VALIDATE DATAFILE 1,2; RMAN> VALIDATE TABLESPACE USERS; RMAN> VALIDATE TABLESPACE USERS, SYSAUX; RMAN> VALIDATE DATABASE; RMAN> VALIDATE CHECK LOGICAL DATAFILE 1; RMAN> VALIDATE CHECK LOGICAL DATAFILE 1,2; RMAN> VALIDATE CHECK LOGICAL TABLESPACE USERS; RMAN> VALIDATE CHECK LOGICAL TABLESPACE USERS, SYSAUX; RMAN> VALIDATE CHECK LOGICAL DATABASE;

40

Lab 6.2: Validate


RMAN> RESTORE VALIDATE CHECK LOGICAL DATAFILE 1; RMAN> RESTORE VALIDATE CHECK LOGICAL DATAFILE 1,2; RMAN> RESTORE VALIDATE CHECK LOGICAL TABLESPACE USERS; RMAN> RESTORE VALIDATE CHECK LOGICAL TABLESPACE USERS, SYSAUX; RMAN> RESTORE VALIDATE CHECK LOGICAL DATABASE; RMAN> RESTORE VALIDATE DATAFILE 1; RMAN> RESTORE VALIDATE DATAFILE 1,2; RMAN> RESTORE VALIDATE TABLESPACE USERS; RMAN> RESTORE VALIDATE TABLESPACE USERS, SYSAUX; RMAN> RESTORE VALIDATE DATABASE; RMAN> RESTORE VALIDATE TABLESPACE TBS_CATALOGO; RMAN> RESTORE VALIDATE CHECK LOGICAL TABLESPACE TBS_CATALOGO; RMAN> REPORT NEED BACKUP; RMAN> VALIDATE BACKUPSET...

41

RMAN: Compression

42

Compression

43

Compression
Algoritmo ZLIB 11.1.0
CONFIGURE or SET COMPRESSION ALGORITHM 'ZLIB';

11.2.0
CONFIGURE or SET COMPRESSION ALGORITHM 'MEDIUM';

Algoritmo BZIP2 11.1.0


CONFIGURE or SET COMPRESSION ALGORITHM 'BZIP2';

11.2.0
CONFIGURE or SET COMPRESSION ALGORITHM 'BASIC';

Advanced Compression 11.2.0


CONFIGURE or SET COMPRESSION ALGORITHM 'HIGH';

Pre-Compression Block Processing 11.2.0


OPTIMIZE FOR LOAD TRUE OPTIMIZE FOR LOAD FALSE

Exemplo:
RMAN> CONFIGURE COMPRESSION ALGORITHM 'HIGH' OPTIMIZE FOR LOAD TRUE;

44

Lab 7.1: Compression


Verifique a compresso padro atual do RMAN. Altere o modo de compresso padro do RMAN.
RMAN> CONFIGURE COMPRESSION ALGORITHM 'MEDIUM' OPTIMIZE FOR LOAD FALSE;

Execute um Backup Completo do Banco de Dados.


RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE;

Altere o modo de compresso padro do RMAN.


RMAN> CONFIGURE COMPRESSION ALGORITHM 'HIGH' OPTIMIZE FOR LOAD TRUE;

Execute novamente um Backup Completo do Banco de Dados. Qual a diferena de tempo e tamanho entre os Backups? Qual a diferena de uso de CPU entre os Backups?

45

RMAN: Encryption

46

Encryption
Transparent Encryption
RMAN> SET ENCRYPTION ON

Password Encryption
RMAN> SET ENCRYPTION ON IDENTIFIED BY 'MyPasswordIsHard' ONLY; RMAN> SET DECRYPTION IDENTIFIED BY 'MyPasswordIsHard';

Dual Mode Encryption


RMAN> SET ENCRYPTION ON IDENTIFIED BY 'MyPasswordIsHard'; RMAN> SET DECRYPTION IDENTIFIED BY 'MyPasswordIsHard';

47

Oracle Wallet

48

Lab 8.1: Encryption


Habilite o Password Encryption para uma sesso. Execute um Backup de um DATAFILE. Restaure o Datafile.

49

RMAN: Snapshot Controlfile

50

Lab 9.1: Snapshot Controlfile


Altere a localizao padro do Snapshot Controlfile. Execute o RMAN em modo DEBUG, e verifique se o Snapshot Controlfile utilizado.

51

RMAN: List

52

Lab 10.1: List


RMAN> LIST BACKUP OF CONTROLFILE; RMAN> LIST BACKUP OF DATAFILE 1; RMAN> LIST BACKUP OF TABLESPACE USERS; RMAN> LIST BACKUP OF DATABASE; RMAN> LIST BACKUP; RMAN> LIST BACKUP OF CONTROLFILE SUMMARY; RMAN> LIST BACKUP OF DATAFILE 1 SUMMARY; RMAN> LIST BACKUP OF TABLESPACE USERS SUMMARY; RMAN> LIST BACKUP OF DATABASE SUMMARY; RMAN> LIST BACKUP SUMMARY;

53

RMAN: Crosscheck

54

CROSSCHECK

55

Lab 11.1: Crosscheck


Execute Crosscheck de vrios tipos de dados do Repositrio do RMAN.
RMAN> CROSSCHECK BACKUP DATAFILE (?) RMAN> CROSSCHECK BACKUP TABLESPACE (?) RMAN> CROSSCHECK BACKUP SPFILE (?) RMAN> CROSSCHECK ARCHIVELOG ALL;

Mova um ARCHIVE para outro diretrio, e refaa o CROSSCHECK. Remova este ARCHIVE do Repositrio com o DELETE EXPIRED.
RMAN> DELETE EXPIRED (?)

Reinsira as informaes do ARCHIVE com o comando CATALOG.


RMAN> CATALOG ARCHIVELOG '/home/oracle/archive_10101010.arc'; RMAN> CATALOG START WITH '/home/oracle';

Verifique se a informao do ARCHIVE voltou a existir no Repositrio do RMAN.


RMAN> LIST ARCHIVELOG ALL;

Encontre estas informaes nas Views do CATALOG.

56

Lab 11.2: Crosscheck


Mova um BACKUP para outro diretrio, e refaa o CROSSCHECK. Remova este BACKUP do Repositrio com o DELETE EXPIRED.
DELETE EXPIRED (?)

Reinsira as informaes do BACKUP com o comando CATALOG.


RMAN> CATALOG BACKUP '/home/oracle/bkp_10101010.bkp'; RMAN> CATALOG START WITH '/home/oracle';

Verifique se a informao do BACKUP voltou a existir no Repositrio do RMAN.


RMAN> LIST BACKUP (?)

Encontre estas informaes nas Views do CATALOG.

57

RMAN: Backup Optimization

58

Lab 12.1: Backup Optimization


Verifique se o OPTIMIZATION est em ON. Altere uma TABLESPACE para READ ONLY. Execute um BACKUP completo do Banco de Dados. Execute novamente um BACKUP completo do Banco de Dados. Verifique se o segundo Backup incluiu a TABLESPACE em READ ONLY. Execute novamente um BACKUP completo do Banco de Dados, mas com FORCE.
RMAN> BACKUP DATABASE FORCE;

59

RMAN: Backup, Tag, Backup Set, Backup Piece

60

Hierarquia
BACKUP BACKUP TAG BACKUP SET BACKUP PIECE

61

Lab 13.1: Backup, BackupSet, PackupPiece


Altere a configurao do RMAN para utilizar paralelismo de BACKUP.
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2;

Execute um BACKUP Completo do Banco de Dados. Encontre no resultado os BACKUP SETs, BACKUP PIECEs e TAG. Altere o MAXPIECESIZE para 100M.
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 100M;

Execute um BACKUP Completo do Banco de Dados. Encontre no resultado os BACKUP SETs, BACKUP PIECEs e TAG. Altere o MAXSETSIZE para 100M.
RMAN> CONFIGURE MAXSETSIZE TO 100M;

Execute um BACKUP Completo do Banco de Dados. Encontre no resultado os BACKUP SETs, BACKUP PIECEs e TAG. Execute um BACKUP Completo do Banco de Dados, com uma TAG com seu nome.

62

RMAN: FORMAT

63

FORMAT
%a Activation ID %c Copy number %d Database name %D Day of the month %e Archived log sequence %f Absolute file number %F Combines the DBID, day, month, year, and sequence %h Archived redo log thread number. %I Database ID. %M Month %N Tablespace name %n Database name, padded on the right with x %p Piece number within the backup set %s Backup set number %t Backup set time stamp %T Year, month, and day %U System-generated unique filename %Y Year

64

Lab 14.1: Format


Crie um diretrio para armazenar os BACKUPs. Altere a localizao e nome padro dos BACKUPS, utilizando o FORMAT.
RMAN> CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT...

Execute um BACKUP completo do Banco de Dados, e verifique os novos nomes. Altere a localizao e nome padro do CONTROLFILE AUTOBACKUP. Execute um BACKUP de 1 Datafile, e verifique o novo nome do CONTROLFILE AUTOBACKUP.

65

RMAN: Backup Incremental

66

Differential Incremental Backups

67

Cumulative Incremental Backups

68

Lab 15.1: Backup Incremental


Execute um BACKUP completo do Banco de Dados.
RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;

Execute um BACKUP INCREMENTAL LEVEL 1 do Banco de Dados.


RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;

Execute um BACKUP completo do Banco de Dados.


RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;

Execute um BACKUP INCREMENTAL LEVEL 1 do Banco de Dados.


RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;

Habilite o BLOCK CHANGE TRACKING.


SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE...

Execute um BACKUP completo do Banco de Dados.


RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;

Execute um BACKUP INCREMENTAL LEVEL 1 do Banco de Dados.


RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;

Qual Backup foi mais rpido? Qual foi menor?

69

RMAN: Switch

70

Lab 16.1: Switch


Troque a localizao de um DATAFILE com RMAN.
RMAN> RUN { BACKUP DATAFILE 5; SQL 'ALTER TABLESPACE EXAMPLE OFFLINE'; SET NEWNAME FOR DATAFILE 5 TO '/home/oracle/example01.NEWNAME.dbf'; RESTORE DATAFILE 5; RECOVER DATAFILE 5; SWITCH DATAFILE 5; SQL 'ALTER TABLESPACE EXAMPLE ONLINE'; }

Funcionou? Por que? O DATAFILE sumiu da localizao anterior?

71

RMAN: Retention

72

Retentions

73

Lab 17.1: Retention


Altere o RETENTION para RECOVERY WINDOW OF 6 DAYS.
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 6 DAYS;

Verifique quais BACKUPs esto obsoletos.


RMAN> REPORT OBSOLETE;

Remova os BACKUPs obsoletos.


RMAN> DELETE OBSOLETE;

Altere o RETENTION para REDUNDANCY 1.


RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 1;

Verifique quais BACKUPs esto obsoletos.


RMAN> REPORT OBSOLETE;

Remova os BACKUPs obsoletos.


RMAN> DELETE OBSOLETE;

74

Lab 17.2: Retention


Altere o RETENTION para REDUNDANCY 2.
RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2;

Verifique quais BACKUPs esto obsoletos.


RMAN> REPORT OBSOLETE;

Remova os BACKUPs obsoletos.


RMAN> DELETE OBSOLETE;

Execute um BACKUP completo do Banco de Dados.


RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;

Verifique quais BACKUPs esto obsoletos.


RMAN> REPORT OBSOLETE;

Remova os BACKUPs obsoletos.


RMAN> DELETE OBSOLETE;

75

Lab 17.3: Retention


Execute um BACKUP que ignora o RETENTION.
RMAN> BACKUP DATABASE KEEP UNTIL TIME='SYSDATE+366';

Verifique quais BACKUPs esto obsoletos.


RMAN> REPORT OBSOLETE;

76

RMAN: Scripts

77

Lab 18.1: Scripts


Crie um Stored Script para um BACKUP completo do Banco de Dados.
RMAN> CREATE SCRIPT BackupCompleto { BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT; }

Verifique o contedo do Stored Script.


RMAN> PRINT SCRIPT BackupCompleto;

Execute o Stored Script.


RMAN> RUN {EXECUTE SCRIPT BackupCompleto;}

Onde ficam armazeadas as informaes sobre os Stored Scripts? Remova o Stored Script.
RMAN> DELETE SCRIPT BackupCompleto;

Crie um Shell Script que execute um Stored Script.

78

RMAN: Copy

79

Lab 19.1: Copy


Criar uma cpia de um DATAFILE.
RMAN> COPY DATAFILE 1 TO '/tmp/system01.dbf';

Crie uma cpia do CONTROLFILE.


RMAN> COPY CURRENT CONTROLFILE TO '/tmp/control01.ctl';

Criar uma Cpia completa do Banco de Dados.


RMAN> BACKUP AS COPY DB_FILE_NAME_CONVERT = ('/u01','/u02') DATABASE;

Criar uma Cpia completa do Banco de Dados, com o CONTROLFILE.


RMAN> BACKUP AS COPY DB_FILE_NAME_CONVERT = ('/u01','/u02') DATABASE INCLUDE CURRENT CONTROLFILE;

Crie um BACKUP de um BACKUP.


RMAN> BACKUP BACKUPSET...

80

RMAN: Change

81

Lab 20.1: Change


Liste todos os BACKUPS do DATAFILE 1. Altere um BACKUPSET para UNAVAILABLE.
RMAN> CHANGE BACKUPSET 522 UNAVAILABLE;

Liste novamente todos os BACKUPS do DATAFILE 1. O que mudou? Valide o BACKUPSET que est UNAVAILABLE. Liste todos os ARCHIVELOGs. Remova todos ARCHIVELOGs do Repositrio.
RMAN> CHANGE ARCHIVELOG ALL UNCATALOG;

Liste todos os ARCHIVELOGs. O que mudou? Inclua todos ARCHIVELOGs no Repositrio novamente.
RMAN> CATALOG START WITH '/tmp';

82

Lab 20.2: Change


Liste todos os Backups. Altere o Retention de um deles.
RMAN> CHANGE BACKUP TAG 'MeuBackup' KEEP FOREVER;

83

RMAN: Restore & Recover

84

RESTORE & RECOVER

85

RESTORE & RECOVER

86

RMAN: Recovery - SPFILE

87

Lab 21.1: Restore Spfile


Cenrios com a Instance em OPEN. Restore com CATALOG e com Backup. Preparao:
Deixe a Instance em estado OPEN. Remova o SPFILE. Se tiver um PFILE (init), mova-o para o /home/oracle. Altere um parmetro no SPFILE.

Procedimento:

Conectar no RMAN, com TARGET / e CATALOG centralizado. Listar Backups Disponveis (LIST). Escolher qual Backup recuperar. Restaurar SPFILE (RESTORE). Altere um parmetro no SPFILE.

88

Lab 21.2: Restore Spfile


Cenrios com a Instance em OPEN. Restore sem CATALOG e com Backup. Preparao:
Deixe a Instance em estado OPEN. Remova o SPFILE. Se tiver um PFILE (init), mova-o para o /home/oracle. Altere um parmetro no SPFILE.

Procedimento:

Conectar no RMAN, com TARGET /. Listar Backups Disponveis (LIST). Escolher qual Backup recuperar. Restaurar SPFILE (RESTORE). Altere um parmetro no SPFILE.

89

Lab 21.3: Restore Spfile


Cenrios com a Instance em OPEN. Restore sem CATALOG, sem Backup, e com PFILE (init). Preparao:
Deixe a Instance em estado OPEN. Crie um PFILE a partir do SPFILE, e mova-o para o /home/oracle. Remova o SPFILE. Altere um parmetro no SPFILE.

Procedimento:

Passe a Instance ao estado SHUTDOWN. Passe a instance ao estado OPEN, utilizando o PFILE. Criar SPFILE a partir do PFILE. Passe a Instance ao estado SHUTDOWN. Passe a instance ao estado OPEN. Altere um parmetro no SPFILE.

90

Lab 21.4: Restore Spfile


Cenrios com a Instance em OPEN. Restore sem CATALOG, sem BACKUP, e sem PFILE (init). Preparao:
Deixe a Instance em estado OPEN. Remova o SPFILE. Se tiver um PFILE (init), mova-o para o /home/oracle. Altere um parmetro no SPFILE.

Procedimento:

Criar PFILE a partir do Alert Log. Passe a Instance ao estado SHUTDOWN. Passe a instance ao estado OPEN, utilizando o PFILE. Criar SPFILE a partir do PFILE. Passe a Instance ao estado SHUTDOWN. Passe a instance ao estado OPEN. Altere um parmetro no SPFILE.

91

Lab 21.5: Restore Spfile


Cenrios com a Instance em SHUTDOWN. Para RESTORE de SPFILE em SHUTDOWN, no importa QUANDO ou COMO a Instance passou ao estado SHUTDOWN. Restore com CATALOG e com Backup. Preparao:
Deixe a Instance em estado SHUTDOWN. Se tiver um PFILE (init), mova-o para o /home/oracle. Remova o SPFILE.

Procedimento:

Conectar no RMAN, com TARGET / e CATALOG centralizado. SET DBID. Passe a Instance ao estgio STARTUP NOMOUNT. Como, sem o SPFILE ou PFILE? Listar Backups Disponveis (LIST). Neste momento, verifique o Parmetro control_files pelo SQL*Plus. Escolher qual Backup recuperar. Restaurar SPFILE (RESTORE). Passe a Instance ao estgio SHUTDOWN. Passe a Instance ao estgio OPEN. Altere um parmetro no SPFILE.

92

Lab 21.6: Restore Spfile


Cenrios com a Instance em SHUTDOWN. Para RESTORE de SPFILE em SHUTDOWN, no importa QUANDO ou COMO a Instance passou ao estado SHUTDOWN. Restore sem CATALOG e com Backup. Preparao:
Deixe a Instance em estado SHUTDOWN. Se tiver um PFILE (init), mova-o para o /home/oracle. Remova o SPFILE.

Procedimento:

Conectar no RMAN, com TARGET /. SET DBID. Passe a Instance ao estgio STARTUP NOMOUNT. Listar Backups Disponveis (LIST). Por que no funciona? Neste momento, verifique o Parmetro control_files pelo SQL*Plus. Escolher qual BACKUP recuperar. Inclua este BACKUP no Repositrio (CATALOG). Por que no funciona? Restaurar SPFILE (RESTORE). Passe a Instance ao estgio SHUTDOWN. Passe a Instance ao estgio OPEN. Altere um parmetro no SPFILE.

93

Lab 21.7: Restore Spfile


Cenrios com a Instance em SHUTDOWN. Para RESTORE de SPFILE em SHUTDOWN, no importa QUANDO ou COMO a Instance passou ao estado SHUTDOWN. Restore sem CATALOG, sem Backup, e sem PFILE (init) e sem Alert Log. Preparao:
Passe a Instance ao estado SHUTDOWN. Remova o PFILE. Remova o SPFILE.

Procedimento:

Crie um PFILE s com os parmetros bsicos. Passe a instance ao estado OPEN, utilizando o PFILE. Criar SPFILE a partir do PFILE. Passe a Instance ao estado SHUTDOWN. Passe a instance ao estado OPEN. Altere um parmetro no SPFILE.

94

RMAN: Recovery - ARCHIVEs

95

Restore ARCHIVELOGs
ARCHIVELOGs s podem ser restaurados com a INSTANCE em MOUNT ou OPEN. O RESTORE s pode ser feito com dados do Repositrio. Comandos:
RMAN> RUN {SET ARCHIVELOG DESTINATION TO '/tmp';} RMAN> RESTORE ARCHIVELOG SEQUENCE 10; RMAN> RESTORE ARCHIVELOG FROM SEQUENCE 5; RMAN> RESTORE ARCHIVELOG FROM SEQUENCE 5 UNTIL SEQUENCE 10; RMAN> RESTORE ARCHIVELOG UNTIL SEQUENCE 15; RMAN> RESTORE ARCHIVELOG ALL;

96

Lab 22.1: Restore Archived Redo Logs


ARCHIVELOGs s podem ser restaurados com a INSTANCE em MOUNT ou OPEN. O RESTORE s pode ser feito com dados do Repositrio. Procedimento:
Execute BACKUP de todos ARCHIVELOGs com DELETE INPUT. Liste todos os ARCHIVELOGs disponveis no deve ter nenhum. Liste todos os BACKUPs de ARCHIVELOG disponveis. Recupere todos os ARCHIVELOGs para um diretrio diferente. Liste todos os ARCHIVELOGs disponveis. A localizao dos ARCHIVELOGs mudou?

97

RMAN: Recovery - DATAFILE

98

Hierarquia Restore & Recover


RESTORE
COPY BACKUPSET FULL ou INCREMENTAL LEVEL 0

RECOVER
REDO LOGs BACKUPSET INCREMENTAL LEVEL 1 ARCHIVED REDO LOGs

99

Lab 23.1: Restore Datafile


Cenrio com Backup de DATAFILE e a Instance em estado OPEN. DATAFILEs s podem ser restaurados com a INSTANCE nos estados MOUNT ou OPEN. O RESTORE s pode ser feito com dados do Repositrio. DATAFILEs isolados s podem sofrer COMPLETE RECOVERY. Preparao:
Deixe a Instance em estado OPEN. Remova o DATAFILE users02.dbf pelo Sistema Operacional. Verifique o Alert Log. Crie uma tabela na TABLESPACE USERS. Verifique o Alert Log. Execute uma validao do Banco de Dados. Verifique o Alert Log.

Procedimento:

Coloque o DATAFILE em OFFLINE. Execute o RESTORE do DATAFILE. Execute o RECOVER do DATAFILE. Altere o DATAFILE para ONLINE.

100

Lab 23.2: Restore Datafile


Cenrio com Backup de DATAFILE e a Instance em estado SHUTDOWN. DATAFILEs s podem ser restaurados com a INSTANCE nos estados MOUNT ou OPEN. O RESTORE s pode ser feito com dados do Repositrio. DATAFILEs isolados s podem sofrer COMPLETE RECOVERY. Preparao:
Deixe a Instance em estado OPEN. Remova o DATAFILE users02.dbf pelo Sistema Operacional. Execute SHUTDOWN IMMEDIATE. Verifique o Alert Log. Execute SHUTDOWN ABORT. Verifique o Alert Log.

Procedimento:

Execute STARTUP. Em que estado a Instance parou? Execute o RESTORE do DATAFILE. Execute o RECOVER do DATAFILE. Altere a Instance para o estado OPEN.

101

Lab 23.3: Restore Datafile


Cenrio sem Backup de DATAFILE, com ARCHIVEs e a Instance em estado OPEN. DATAFILEs s podem ser restaurados com a INSTANCE nos estados MOUNT ou OPEN. O RESTORE s pode ser feito com dados do Repositrio. DATAFILEs isolados s podem sofrer COMPLETE RECOVERY. Preparao:
Deixe a Instance em estado OPEN. Crie um novo DATAFILE na TABLESPACE USERS. Crie uma tabela na TABLESPACE USERS. Remova o novo DATAFILE pelo Sistema Operacional. Verifique o Alert Log. Execute uma validao do Banco de Dados. Verifique o Alert Log.

Procedimento:

Coloque o DATAFILE em OFFLINE. Crie uma cpia do DATAFILE perdido. SQL> ALTER DATABASE CREATE DATAFILE '/LocalAntigo/users04.dbf' AS '/LocalNovo/users04.dbf'; Execute o RECOVER da cpia. SQL> RECOVER DATAFILE '/LocalNovo/users04.dbf'. Altere o DATAFILE para ONLINE.

102

Lab 23.4: Restore Datafile


Cenrio sem Backup de DATAFILE, com ARCHIVEs e a Instance em estado SHUTDOWN. DATAFILEs s podem ser restaurados com a INSTANCE nos estados MOUNT ou OPEN. O RESTORE s pode ser feito com dados do Repositrio. DATAFILEs isolados s podem sofrer COMPLETE RECOVERY. Preparao:
Deixe a Instance em estado OPEN. Remova o novo DATAFILE da TABLESPACE USERS pelo Sistema Operacional. Verifique o Alert Log. Execute uma validao do Banco de Dados. Verifique o Alert Log. Execute SHUTDOWN ABORT.

Procedimento:

Execute STARTUP. Em que estado a Instance parou? Coloque o DATAFILE em OFFLINE. Crie uma cpia do DATAFILE perdido. SQL> ALTER DATABASE CREATE DATAFILE '/LocalAntigo/users04.dbf' AS '/LocalNovo/users04.dbf'; Execute o RECOVER da cpia. SQL> RECOVER DATAFILE '/LocalNovo/users04.dbf'; Altere o DATAFILE para ONLINE. Altere a Instance para o estado OPEN.

103

Lab 23.5: Restore Datafile


Cenrio sem Backup de DATAFILE, sem ARCHIVEs e a Instance em estado OPEN. DATAFILEs s podem ser restaurados com a INSTANCE nos estados MOUNT ou OPEN. O RESTORE s pode ser feito com dados do Repositrio. DATAFILEs isolados s podem sofrer COMPLETE RECOVERY. Preparao:
Deixe a Instance em estado OPEN. Remova o DATAFILE 5 pelo Sistema Operacional. Verifique o Alert Log. Execute uma validao do Banco de Dados. Verifique o Alert Log.

Procedimento:

Abra um Shell com o usurio root. Verifique qual o PID do processo dbw0. V ao diretrio dos File Descriptor (cd /proc/<PID>/fd). Verifique qual o File Descriptor do arquivo removido (ls -lh). Copie o File Descriptor para o local original do arquivo removido (cat 27 > /u01/app/oracle/oradata/ORCL/users01.dbf). D permisso ao usurio oracle para o arquivo copiado (chown oracle:dba /u01/app/oracle/oradata/ORCL/users01.dbf) Execute uma validao do Banco de Dados.

104

Lab 23.6: Restore Datafile


Cenrio sem Backup de DATAFILE, sem ARCHIVEs e a Instance em estado SHUDOWN. DATAFILEs s podem ser restaurados com a INSTANCE nos estados MOUNT ou OPEN. O RESTORE s pode ser feito com dados do Repositrio. DATAFILEs isolados s podem sofrer COMPLETE RECOVERY.

Preparao:

Deixe a Instance em estado OPEN. Remova o DATAFILE users02.dbf pelo Sistema Operacional. Execute SHUTDOWN IMMEDIATE. Verifique o Alert Log. Execute SHUTDOWN ABORT. Verifique o Alert Log.

Procedimento:

Execute STARTUP. Em que estado a Instance parou? Coloque o DATAFILE em OFFLINE. Passe a instncia ao estado OPEN.

105

Lab 23.7: Restore Datafile


Cenrio com corrupo de um DATAFILE, e com a Instance em OPEN. Preparao:
Deixe a Instance em estado OPEN. Crie uma nova TABLESPACE. Crie uma Tabela, com dados, nesta nova TABLESPACE. Faa um BACKUP Completo do Banco de Dados. Verifique qual o HEADER BLOCK dos dados desta Tabela. SQL> SELECT HEADER_BLOCK FROM DBA_SEGMENTS WHERE OWNER = 'SYS' AND SEGMENT_NAME = 'TESTE'; Verifique o Alert Log. Corrompa o DATAFILE. $ dd of=/u01/oradata/ORCL/teste01.dbf bs=8192 conv=notrunc seek=131 <<EOF > Vamos corromper este datafile > EOF Faa uma Validao do Banco de Dados. Verifique o Alert Log. Faa um Backup Completo do Banco de Dados. Por que no funciona? Se um dia precisar utilize: SET MAXCORRUPT FOR DATAFILE 4 TO 2;

Procedimento:

RMAN> BLOCKRECOVER DATAFILE 7 BLOCK 131. Verifique o Alert Log.

106

RMAN: Recovery - TEMPFILE

107

Lab 24.1: Restore Tempfile


TEMPFILEs s podem ser alterados com a INSTANCE nos estados MOUNT ou OPEN. No h BACKUP de TEMPFILEs. Preparao:
Deixe a Instance em estado OPEN. Adicione um TEMPFILE a TABLESPACE temporria padro. Remova o novo TEMPFILE pelo Sistema Operacional. Execute uma validao do Banco de Dados. Crie uma Tabela a partir da ALL_OBJECTS (CREATE TABLE T AS SELECT * FROM ALL_OBJECTS). Aumente o tamanho da tabela (8x INSERT INTO T SELECT * FROM T; COMMIT;). Execute um SELECT operao de GROUP BY nesta tabela. Verifique o Alert Log.

Procedimento:

Remova logicamente o TEMPFILE. SQL> ALTER DATABASE TEMPFILE '/u01/app/oracle/oradata/ORCL/temp02.dbf' DROP; Adicione um novo TEMPFILE.

108

RMAN: Recovery - TABLESPACES

109

TSPITI

110

Lab 25.1: Restore Tablespace


Cenrio com a Instance em estado OPEN. TABLESPACEs s podem ser restauradas com a INSTANCE nos estados MOUNT ou OPEN. O RESTORE s pode ser feito com dados do Repositrio. Preparao:
Execute um Backup Completo do Banco de Dados. Deixe a Instance em estado OPEN. Remova todos os DATAFILEs da TABLESPACE USERs pelo Sistema Operacional. Verifique o Alert Log. Crie uma tabela na TABLESPACE USERS. Verifique o Alert Log. Execute uma validao do Banco de Dados. Verifique o Alert Log.

Procedimento:

Coloque o TABLESPACE em OFFLINE. Execute o RESTORE da TABLESPACE. Execute o RECOVER da TABLESPACE. Altere a TABLESPACE para ONLINE.

111

Lab 25.2: Restore Tablespace


Cenrio com a Instance em estado SHUTDOWN. TABLESPACEs s podem ser restaurados com a INSTANCE nos estados MOUNT ou OPEN. O RESTORE s pode ser feito com dados do Repositrio. Preparao:
Deixe a Instance em estado OPEN. Remova todos os DATAFILEs da TABLESPACE USERs pelo Sistema Operacional. Execute SHUTDOWN IMMEDIATE. Verifique o Alert Log. Execute SHUTDOWN ABORT. Verifique o Alert Log.

Procedimento:

Execute STARTUP. Em que estado a Instance parou? Execute o RESTORE da TABLESPACE. Execute o RECOVER da TABLESPACE. Altere a Instance para o estado OPEN.

112

Lab 25.3: Restore Tablespace


TSPITR: Tablespace Point In Time Recovery. Preparao:
Crie um diretorio temporrio para esta operao. Habilite o Usurio SCOTT. SQL> ALTER USER SCOTT ACCOUNT UNLOCK IDENTIFIED BY TIGER; Crie uma TABLESPACE. SQL> CREATE TABLESPACE USUARIOS DATAFILE '/u01/app/oracle/oradata/ORCL/usuarios01.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED; Crie uma Tabela com o Usurio SCOTT na nova TABLESPACE. SQL> CREATE TABLE T TABLESPACE USUARIOS AS SELECT * FROM USER_OBJECTS; Execute um BACKUP completo do Banco de Dados. Gere novos ARCHIVEs (ALTER SYSTEM SWITCH LOGFILE). Verifique qual o ltimo ARCHIVELOG gerado (LIST ARCHIVELOG ALL). Remova a Tabela criada pelo SCOTT.

Procedimento:

RMAN> RECOVER TABLESPACE USUARIOS UNTIL SEQUENCE 35 AUXILIARY DESTINATION '/home/oracle/auxiliary/'; Pegue um bombom e aprecie o show.

113

RMAN: Recovery - UNDO

114

Lab 26.1: Restore Undo


Cenrio com 1 DATAFILE de UNDO com segmentos ativos, com Backup e com a Instance em OPEN. Preparao:
Deixe a Instance em estado OPEN. Verifique qual a TABLESPACE de UNDO padro. Remova o DATAFILE da TABLESPACE de UNDO. Verifique o Alert Log. Execute uma validao do Banco de Dados. Verifique o Alert Log.

Procedimento:

Coloque o DATAFILE em OFFLINE. O que aconteceu com o DATAFILE? E sua sesso? Execute o RESTORE do DATAFILE. Verifique o Alert Log. O RESTORE funcionou? Execute o RECOVER do DATAFILE. O que aconteceu com o DATAFILE? E sua sesso? Execute SHUTDOWN IMMEDIATE. Por que no funciona? Execute SHUTDOWN ABORT. Execute STARTUP. Em que estado a Instance parou? Qual o Estado do DATAFILE? Execute o RECOVER do DATAFILE. Qual o Estado do DATAFILE? Altere o DATAFILE para ONLINE. Verifique o Alert Log. Execute uma validao do Banco de Dados. Verifique o Alert Log.

115

Lab 26.2: Restore Undo


Cenrio com 1 DATAFILE de UNDO sem segmentos ativos, com Backup e com a Instance em OPEN. Preparao:
Deixe a Instance em estado OPEN. Verifique qual a TABLESPACE de UNDO padro. Adicione um DATAFILE a TABLESPACE de UNDO padro. Executa um BACKUP Completo do Banco de Dados. Remova o novo DATAFILE da TABLESPACE de UNDO. Verifique o Alert Log. Execute uma validao do Banco de Dados. Verifique o Alert Log.

Procedimento:

Coloque o DATAFILE em OFFLINE. Execute o RESTORE do DATAFILE. Execute o RECOVER do DATAFILE. Altere o DATAFILE para ONLINE. Verifique o Alert Log. Execute uma validao do Banco de Dados. Verifique o Alert Log.

116

Lab 26.3: Restore Undo


Cenrio com 1 DATAFILE de UNDO sem segmentos ativos, sem Backup e com a Instance em OPEN. Preparao:
Deixe a Instance em estado OPEN. Verifique qual a TABLESPACE de UNDO padro. Remova o primeiro DATAFILE da TABLESPACE de UNDO. Verifique o Alert Log. Execute uma validao do Banco de Dados. Verifique o Alert Log.

Procedimento:

Crie um PFILE atravs do SPFILE. Execute SHUTDOWN IMMEDIATE. Por que no funciona? Execute SHUTDOWN ABORT. Altere no PFILE o Parmetro UNDO_MANAGEMENT para MANUAL. Execute STARTUP. Em que estado a Instance parou? Altere o DATAFILE para OFFLINE DROP. Passe a Instance ao Estado OPEN. Remova a antiga TABLESPACE de UNDO, e crie outra com o mesmo nome. Se necessrio, utilize o parmetro."_offline_rollback_segments". Reinicie a Instance.

117

RMAN: Recovery REDO LOGs

118

RESETLOGS

119

Incomplete Recovery
TIME SET UNTIL TIME "TO_DATE('2010-07-14:13:00:00','YYYY-MM-DD:HH24:MI:SS')"; SCN SET UNTIL SCN 824753; SEQUENCE SET UNTIL SEQUENCE 42;

120

Lab 27.1: Restore Redo Logs


Cenrio com REDO LOG multiplexado, e com a Instance em OPEN. Preparao:
Deixe a Instance em estado OPEN. Adicione 1 Grupo de REDO Log Multiplexado. Remova 1 membro deste grupo de REDO LOG. Verifique o Alert Log.

Procedimento:

Verifique qual o membro que est com status INVALID (V$LOGFILE). Remova o membro INVALID. SQL> ALTER DATABASE DROP LOGFILE MEMBER; Adicione outro membro, para manter os REDO LOGs multiplexados.

121

Lab 27.2: Restore Redo Logs


Cenrio com REDO LOG no multiplexado, REDO LOG INACTIVE, e com a Instance em OPEN. Preparao:
Deixe a Instance em estado OPEN. Verifique um REDO LOG com status INACTIVE (V$LOG). Remova um REDO LOG com status INACTIVE. Verifique o Alert Log.

Procedimento:
SQL>ALTER DATABASE CLEAR LOGFILE GROUP 1;

122

Lab 27.3: Restore Redo Logs


Cenrio com REDO LOG no multiplexado, REDO LOG ACTIVE, e com a Instance em OPEN. Preparao:
Deixe a Instance em estado OPEN. Verifique um REDO LOG com status ACTIVE (V$LOG). Remova um REDO LOG com status ACTIVE. Verifique o Alert Log.

Procedimento:

Execute SHUTDOWN IMMEDIATE. Execute STARTUP MOUNT. Execute um INCOMPLETE RECOVERY falso. SQL> RECOVER DATABASE UNTIL CANCEL; Passe a Instance ao estado OPEN, com RESETLOGS. SQL> ALTER DATABASE OPEN RESETLOGS; Verifique os INCARNATIONs de seu Banco de Dados. RMAN> LIST INCARNATION;

123

Lab 27.4: Restore Redo Logs


Cenrio com REDO LOG no multiplexado, REDO LOG CURRENT, e com a Instance em OPEN. Preparao:
Deixe a Instance em estado OPEN. Execute um BACKUP completo do Banco de Dados. Execute vrias vezes ALTER SYSTEM SWITCH LOG. Verifique qual o REDO LOG com status CURRENT (V$LOG). Verifique qual a ltima SEQUENCE completada. Remova o REDO LOG com status CURRENT. Verifique o Alert Log.

Procedimento:

Execute SHUTDOWN IMMEDIATE. Execute STARTUP MOUNT. Execute um INCOMPLETE RECOVERY. RUN { SET UNTIL SEQUENCE 8; RESTORE DATABASE; RECOVER DATABASE; ALTER DATABASE OPEN RESETLOGS; } Verifique os INCARNATIONs de seu Banco de Dados.

124

Lab 27.5: Restore Redo Logs


Incomplete Recovery para uma outro INCARNATION. Preparao:
Deixe a Instance em estado OPEN. Execute um BACKUP completo do Banco de Dados.

Procedimento:

Verifique os INCARNATIONs de seu Banco de Dados (LIST INCARNATION). Execute SHUTDOWN IMMEDIATE. Execute STARTUP MOUNT. Altere para o INCARNATION anterior ao CURRENT: RMAN> RESET DATABASE TO INCARNATION 4; Execute INCOMPLETE RECOVERY at um SCN anterior ao primeiro SCN do INCARNATION CURRENT. RMAN>RESTORE DATABASE UNTIL SCN 825321; RMAN> RECOVER DATABASE UNTIL SCN 825321; RMAN> ALTER DATABASE OPEN RESETLOGS; Verifique os INCARNATIONs de seu Banco de Dados.

125

RMAN: Recovery CONTROLFILEs

126

Encontrando o DBID
Onde encontrar o DBID? V$DATABASE Ao conectar no RMAN No CATALOG. No nome do CONTROLFILE AUTOBACKUP. Dentro dos Backups da SYSTEM, SYSAUX e UNDO (MAXVALUE ou DBID:). Dentro do DATAFILE da SYSAUX (MAXVALUE ou DBID:).

127

Controfile AutoBackup
O comando de RESTORE s procura por 7 dias ou 10 Backups, mesmo utilizando Repositrio CATALOG.
RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP MAXSEQ 200 MAXDAYS 100;

128

Lab 28.1: Restore Controlfiles


Cenrio com perda de 1 CONTROLFILE multiplexado, e com a Instance em OPEN. Preparao:
Deixe a Instance em estado OPEN. Verifique quais os CONTROLFILEs do Banco de Dados. Apague um dos CONTROLFILEs. Verifique o Alert Log. Faa uma Validao do Banco de Dados. Verifique o Alert Log.

Procedimento:

Execute SHUTDOWN IMMEDIATE. Por que no funciona? Execute SHUTDOWN ABORT. Copie o CONTROLFILE sobrevivente para o que foi apagado. Execute STARTUP.

129

Lab 28.2: Restore Controlfiles


Cenrio com perda de todos CONTROLFILEs, com Backup, com CATALOG, e com a Instance em OPEN. Preparao:
Deixe a Instance em estado OPEN. Verifique quais os CONTROLFILEs do Banco de Dados. Apague todos os CONTROLFILEs. Verifique o Alert Log. Faa uma Validao do Banco de Dados. Verifique o Alert Log.

Procedimento:

Execute SHUTDOWN IMMEDIATE. Por que no funciona? Execute SHUTDOWN ABORT. Execute STARTUP. Em que estado a Instance parou? Execute RESTORE do CONTROLFILE. Para onde so restaurados? Execute um Incomplete Recovery falso RMAN> RECOVER DATABASE. Abra a Instance em RESETLOGS. Verifique os INCARNATIONs de seu Banco de Dados.

130

Lab 28.3: Restore Controlfiles


Cenrio com perda de todos CONTROLFILEs, sem Backup via RMAN, sem CATALOG, com Backup em TRACE, e com a Instance em SHUTDOWN. Preparao:
Deixe a Instance em estado OPEN. Execute um BACKUP em TRACE. ALTER DATABASE BACKUP CONTROLFILE TO TRACE. Verifique quais os CONTROLFILEs do Banco de Dados. Execute SHUTDOWN IMMEDIATE. Apague todos os CONTROLFILEs.

Procedimento:

Execute STARTUP. Em que estado a Instance parou? Execute o comando CREATE CONTROLFILE que est no final do TRACE. Execute um Incomplete Recovery falso. SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL; Abra a Instance em RESETLOGS. Verifique os INCARNATIONs de seu Banco de Dados.

131

Lab 28.4: Restore Controlfiles


Cenrio com perda de todos CONTROLFILEs, sem Backup, sem CATALOG, com Backup em TRACE, e com a Instance em OPEN. Preparao:
Deixe a Instance em estado OPEN. Execute um BACKUP em TRACE. ALTER DATABASE BACKUP CONTROLFILE TO TRACE. Verifique quais os CONTROLFILEs do Banco de Dados. Verifique e guarde o contedo da View V$LOG. Apague todos os CONTROLFILEs. Verifique o Alert Log. Faa uma Validao do Banco de Dados. Verifique o Alert Log.

Procedimento:

Execute SHUTDOWN IMMEDIATE. Por que no funciona? Execute SHUTDOWN ABORT. Execute STARTUP. Em que estado a Instance parou? Execute o comando CREATE CONTROLFILE que est no final do TRACE. Execute um Incomplete Recovery falso. SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL; Quando for solicitado, indique o REDO LOG que estava CURRENT no momento do ABORT. Abra a Instance em RESETLOGS. Verifique os INCARNATIONs de seu Banco de Dados.

132

Lab 28.5: Restore Controlfiles


Cenrio com perda de todos CONTROLFILEs, sem Backup, sem CATALOG, sem Backup em TRACE, e com a Instance em OPEN. Preparao:
Deixe a Instance em estado OPEN. Verifique quais os CONTROLFILEs do Banco de Dados. Apague todos os CONTROLFILEs. Verifique o Alert Log. Faa uma Validao do Banco de Dados. Verifique o Alert Log. Verifique o contedo da View V$LOG.

Procedimento:

Execute SHUTDOWN IMMEDIATE. Por que no funciona? Execute SHUTDOWN ABORT. Execute STARTUP. Em que estado a Instance parou? Execute o comando CREATE CONTROLFILE. Execute um Incomplete Recovery falso. SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL; Quando for solicitado, indique o REDO LOG que estava CURRENT no momento do ABORT. Abra a Instance em RESETLOGS. Verifique os INCARNATIONs de seu Banco de Dados.

133

Lab 28.6: Restore Controlfiles


Cenrio com perda de todos CONTROLFILEs, sem Backup, sem CATALOG, sem Backup em TRACE, e com a Instance em OPEN. Preparao:
Deixe a Instance em estado OPEN. Verifique quais os CONTROLFILEs do Banco de Dados. Apague um dos CONTROLFILEs. Verifique o Alert Log. Faa uma Validao do Banco de Dados. Verifique o Alert Log.

Procedimento:
Execute SHUTDOWN IMMEDIATE. Por que no funciona? Execute SHUTDOWN ABORT. Copie o SNAPSHOT CONTROLFILE para os que foram apagados. Execute STARTUP. Execute um Incomplete Recovery falso. SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL; Quando for solicitado, indique o REDO LOG que estava CURRENT no momento do ABORT.

134

Melhores Prticas
Domine a manipulao de dados do REPOSITORY. Utilize um nome til nos ARCHIVED REDO LOGs. Utilize um nome til nos BACKUPPIECEs. Utilize TAGs. Utilize o CATALOG. Centralize o agendamento e execuo de seus BACKUPs no CATALOG. Utilize RMAN STORED SCRIPTs. O banco de dados do CATALOG o mais importante de seu ambiente. Execute VALIDATE CHECK LOGICAL regularmente. Execute RESTORE VALIDATE regularmente. Anote o tempo de execuo. Utilize PASSWORD ENCRYPTION. Habilite o CONTROLFILE AUTOBACKUP, em um locao seguro. Habilite o BACKUP OPTIMIZATION. Utilize compresso MEDIUM (ZLIB). Armazene seus Redo Logs em filesystem SYNC. SHUTDOWN ABORT mais rpido e to seguro quando IMMEDIATE. No utilize BACKUPs incrementais: prefira um ARCHIVED REDO LOG a mais. Utilize RETENTION do tipo REDUNDANCY: voc no quer um backup do ms passado. Pratique cenrios de RESTORE e RECOVER regularmente. Antes que acontea.

135