Oracle Backup Recovery 12cr2 and Shared Connecton Pool For Oracle Cloud and Multtenant
Oracle Backup Recovery 12cr2 and Shared Connecton Pool For Oracle Cloud and Multtenant
Comando no SQL*Plus:
SQL> SELECT STATUS FROM V$INSTANCE;
Comando no RMAN:
RMAN> REPORT SCHEMA;
3
rlwrap
# wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum -y install epel-release-latest-7.noarch.rpm
# yum -y install rlwrap
4
Logs
Oracle
$ tail -f $ORACLE_BASE/diag/rdbms/<database>/<SID>/trace/alert_<SID>.log
Linux
# tail -f /var/log/messages
1
----------
1
Elapsed: 00:00:00.00
09:09:00 SYS@ORCL>
6
CDB Architecture
7
Deprecaton of Non-CDB Architecture
Documentação 12cR1:
Documentação 12cR2:
8
12cR2 CDB New Features
✔ Subset Standby
✔ Data Guard Broker PDB Migraton or Failover
✔ Cross-Platorm Import of a Pluggable Database into a Multtenant Container Database
✔ I/O Rate Limits for PDBs
✔ Heat Map and Automatc Data Optmizaton Support for CDBs
✔ PDB Character Set
✔ PDB Refresh
✔ Hints in CONTAINERS Query
✔ Parallel PDB Creaton Clause
✔ PDB Archive Files (.pdb Files)
✔ Default Tablespace Clause
✔ Cloning a PDB
✔ Near Zero Downtme PDB Relocaton
✔ Logical Standby Database to Support CDBs with PDBs with Diferent Character Sets
✔ LogMiner to Support CDBs with PDBs with Diferent Character Sets
✔ Support for PDBs with Diferent Character Sets, Time Zone File Versions, and Database Time Zones in a
CDB
✔ Memory Resource Management
✔ Per-Process PGA Limits
✔ Performance Profles and Mandatory PDB Profles
✔ CDB-Level PDB Lockdown
9
12cR2 CDB New Features
✔ Applicaton Root
✔ Proxy PDB
✔ Forwarding Connectons to A New Address Based on Service
✔ Service-Level ACLs for TCP Protocol
✔ Flashback Pluggable Database
✔ Upgrading a CDB With One or More PDBs in a Single Operaton
✔ Support for Thousands of Pluggable Databases for Each Multtenant Container Database
✔ Pluggable Database Lockdown Profles Enhancements
✔ Pluggable Database Operatng System Credentals
✔ Oracle Enterprise Manager Database Express (EM Express) Resource Manager Support
✔ EM Express: Simplifying Confguraton for Multtenant Through Single Port Access
✔ EM Express: Performance Hub Enhancements
✔ Automatc Workload Repository (AWR) Support for a Pluggable Database (PDB)
✔ Selectve PDB Upgrades
✔ AWR_PDB_AUTOFLUSH_ENABLED Initalizaton Parameter
✔ ENABLE_AUTOMATIC_MAINTENANCE_PDB Initalizaton Parameter
✔ AUTOTASK_MAX_ACTIVE_PDBS Initalizaton Parameter
✔ Global and Shared Connecton Pool for Oracle Cloud and Multtenant Oracle Databases
✔ Prioritzed Rebalancing
✔ Oracle Database Vault Common Realms and Command Rules for Oracle Multtenant
10
Opton Multtenant
11
Multtenant - EE
12
Singletenant - SE2
13
Esse banco utliza CDB Arquitecture?
14
Que Containers / PDBs este banco tem?
15
Em que Container estou conectado?
16
Como conectar em um PDB? SET CONTAINER
17
Como conectar em um PDB?
$ lsnrctl status
...
Services Summary...
Service "5397376af7702ac5e0536a00a8c0505d" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "ORCL" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "ORCLXDB" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "prod" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
The command completed successfully
$
18
Como conectar em um PDB? tnsnames.ora
$ cat $ORACLE_HOME/network/admin/tnsnames.ora
...
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = nerv06.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
PROD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = nerv06.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PROD)
)
)
...
$
19
Como conectar em um PDB? tnsnames.ora
20
Como conectar em um PDB? Easy Connect
21
E agora, qual o nome da Instância? E do Banco?
22
E agora, qual o nome da Instância? E do Banco?
23
CDB e PDBs: STARTUP
24
CDB e PDBs: STARTUP
25
Alert Log
26
DATAFILEs
27
DATAFILEs
28
DATAFILEs
29
Dicionário de Dados
30
VIEWs
31
VIEWs
32
Parâmetros
33
Parâmetros
34
TABLESPACEs
35
USERs
36
USERs
37
USERs
38
USERs
39
SELECT em outros Containers
40
Criando (Clonando) um PDB
41
Criando (Clonando) um PDB
42
Criando (Clonando) um PDB
43
Criando (Clonando) um PDB
44
Criando (Clonando) um PDB
45
Unplug / Plug
46
Unplug / Plug
47
DROP
48
Backup
CDB e PDBs
RMAN> BACKUP DATABASE;
RMAN> BACKUP DATAFILE 1;
RMAN> BACKUP DATAFILE 1,3;
CDB
RMAN> BACKUP DATABASE ROOT;
RMAN> BACKUP TABLESPACE SYSTEM;
RMAN> BACKUP TABLESPACE SYSTEM,SYSAUX;
PDBs
RMAN> BACKUP PLUGGABLE DATABASE DEV1;
RMAN> BACKUP PLUGGABLE DATABASE DEV1,DEV2;
RMAN> BACKUP TABLESPACE DEV1:SYSTEM;
49
Restore / Recover
CDB e PDBs
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
RMAN> RESTORE DATAFILE 1;
RMAN> RECOVER DATAFILE 1;
CDB
RMAN> RESTORE DATABASE ROOT;
RMAN> RECOVER DATABASE ROOT;
RMAN> RESTORE TABLESPACE SYSTEM;
RMAN> RECOVER TABLESPACE SYSTEM;
PDBs
RMAN> RESTORE PLUGGABLE DATABASE DEV1;
RMAN> RECOVER PLUGGABLE DATABASE DEV1;
RMAN> RESTORE TABLESPACE DEV1:USERS;
RMAN> RECOVER TABLESPACE DEV1:USERS;
50
Minha abordagem
• Pense em Recovery, e não em Backup. RMAN signifca Recovery Manager, e não Backup Manager.
• Sem RMAN, o Manager do Recovery será você.
• O cliente não 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 estão cada vez maiores, e o Recovery, mais difcil.
• Cerca de 80% dos grandes Bancos de Dados não são recuperáveis.
• 60% das empresas que perderam dados fecharam suas portas em até 1 ano.
• Backup e Recovery é com RMAN.
• O RMAN é gráts: se você comprou o Oracle, ele já é seu.
• O RMAN não precisa ser instalado.
• Se o Banco de Dados é importante, deve estar em ARCHIVELOG.
• Se o Banco de Dados não é importante, para que colocar dados nele?
• Não há motvo que justfque Backup Ofine (“Backup Frio”).
• Recovery é uma situação estressante.
• Durante uma situação estressante, tendemos a utlizar as opções que conhecemos melhor.
• Recovery deve ser pratcado, treinado, dominado.
• Você terá que fazer um Recovery. A questão não é SE, é QUANDO.
• Saiba o tempo necessário para um Recovery – irão 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. Não execute uma operação sem saber seu efeito.
• Conheça outros RDBMS. TI não é lugar para paixões. Você fcaria surpreso em descobrir as vantagens
dos Logs de outros RDBMs sobre o Oracle.
• Faça um Backup antes, e outro depois.
• Saiba dizer “Não”.
51
Estratégia / Polítca de Backup
●
RTO (Recovery Time Objectve)
●
RPO (Recovery Point Objectve)
●
Retenção por Negócio
●
Retenção por Legislação
●
DISK / FRA / TAPE
52
O que é o RMAN?
53
Packages RMAN
rman + recover.bsq:
●
DBMS_RCVMAN
●
DBMS_BACKUP_RESTORE
●
DBMS_RCVCAT
●
DBMS_TDB
54
Por que usar o RMAN?
55
Lab 0.1: Por que usar o RMAN?
$ sqlplus / as sysdba
SQL> ALTER TABLESPACE USERS ADD DATAFILE
'/u01/app/oracle/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;
56
RMAN: Vantagens
• Backup Lógico (exp / expdp) é mais lento que Backup Físico (RMAN).
• Restore Lógico é (imp / imdp) é mais lento que Restore Físico (RMAN).
• Restores Lógicos não podem ser em um ponto do tempo.
• User Managed Backup (BEGIN BACKUP / END BACKUP) gera mais Redo Logs.
• O RMAN sabe automatcamente onde estão todos os arquivos do Banco de Dados.
• Compressão embutda signifca Backups a mais, e dinheiro a mais.
• E todas as New Features a seguir não poderão ser utlizadas…
57
RMAN New Features: 10gR1
• RMAN Scripts Manageability
• Enhanced RMAN Reportng
• Backup Compression
• Bounded Backup Window
• Recovery Area Full Alert
• Flash Backup and Recovery
• RMAN Database Deregistraton
• Backup and Restore of Standby Control File
• Automatc TSPITR
• Simplifed Recovery Manager Cataloging of Backup Files
• Automatc Channel Failover for Backup and Restore
• Automatc File Creaton During Recovery
• Simplifed Backups to Disk
• Proxy Copy Backup of Archivelogs
• Incrementally Updated Backups
• Simplifed Recovery Through Resetlogs
• Restore Tolerates Corrupt or Missing Backups
• Full Database Begin Backup Command
• Change-Aware Incremental Backups
58
RMAN New Features: 10gR2
• Automatc Deleton of Applied Archive Logs
• Dynamic RMAN Channel Allocaton for Backing Up and Recovering RAC Database
• RMAN Backup Encrypton
• 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 Datafles Are Re-Created on RMAN Recovery
• Use RMAN Compression During Cloning
59
RMAN New Features: 11gR1
●
Archive Log Management Improvements
●
Fast Incremental Backups on Physical Standby Database
●
Improved Backup Compression Performance
●
Improved Integraton with Data Guard
●
Network-Aware DUPLICATE Command
●
Optmized Undo Backup
●
Read-Only Transported Tablespaces Backup
●
Virtual Private Catalog
●
Data Recovery Advisor
●
Enhance LogMiner to Support Automatc Data Repair
●
Integrated Protecton From Various Data Corruptons
●
Lost-Write Detecton Using a Physical Standby Database
60
RMAN New Features: 11gR2
• Automatc Block Repair
• Backup to Amazon Simple Storage Service (S36) Using OSB Cloud Computng
• DUPLICATE Without Connecton to Target Database
• Enhanced Tablespace Point-In-Time Recovery (TSPITR)
• New DUPLICATE Optons
• New SET NEWNAME Clauses and Format Optons
• Tablespace Checks in DUPLICATE
61
RMAN New Features: 12c
12cR1
• Comandos SQL / DESCRIBE / SELECT
• SYSBACKUP Administraton Privilege
• Storage Snapshot Optmizaton
• Table-Level Recovery From Backups
• Actve Database Duplicaton Enhancements
• Cross-Platorm Backup and Restore
• DUPLICATE Enhancements
• Multsecton Image Copies
• Multsecton Incremental Backups
• Network-Enabled RESTORE
12cR2
• RMAN: Syntax Enhancements
• SCAN Listener Supports HTTP Protocol
• Oracle Recovery Manager - Enhanced Table Recoveries Across Schemas Using REMAP SCHEMA
• Disk Space Check During RECOVER TABLE Operaton
• Upgrading the Incremental Transportable Scripts
• Cross-Platorm Import of a Pluggable Database into a Multtenant Container Database
• Cross-Platorm Migraton Support for Encrypted Tablespaces
• Cross-Platorm Support Over The Network
• Data Guard DUPLICATE Command Enhancements
• DUPLICATE Command Support for Non Auto-Login Wallet Based Encrypted Backups
62
Features Enterprise
• Duplexed Backup Sets
• Block Change Tracking
• Unused Block Compression Backup
• Block-Level Recovery
• Automatc Block Repair
• Parallel Backup and Recovery
• TSPITR
• TPITR
• Trial Recovery
• Flashback
• Cross-Platorm Backup & Recovery
• Transportable Tablespace and Full Transportable Database
• Compression (exceto BASIC)
63
RMAN: Conexões, Opções,
Confgurações e Comandos
64
Conexões
65
Conexões
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 BACKUP_USER/BACKUP_USER@PRD TARGET /
$ rman AUXILIARY / TARGET BACKUP_USER/BACKUP_USER@PRD
66
Opções
67
Confgurações
Exibir todas confgurações padrão
RMAN> SHOW ALL;
68
Comandos
@ LIST
@@ PRINT SCRIPT
ADVISE FAILURE QUIT
ALLOCATE CHANNEL RECOVER
ALLOCATE CHANNEL FOR MAINTENANCE REGISTER DATABASE
ALTER DATABASE RELEASE CHANNEL
BACKUP REPAIR FAILURE
CATALOG REPLACE SCRIPT
CHANGE REPORT
CONFIGURE RESET DATABASE
CONNECT RESTORE
CONVERT RESYNC CATALOG
CREATE CATALOG REVOKE
CREATE SCRIPT RMAN
CROSSCHECK RUN
DELETE SEND
DELETE SCRIPT SET
DROP CATALOG SHOW
DROP DATABASE SHUTDOWN
DUPLICATE SPOOL
EXECUTE SCRIPT SQL
EXIT STARTUP
FLASHBACK DATABASE SWITCH
GRANT TRANSPORT TABLESPACE
HOST UNREGISTER
IMPORT CATALOG UPGRADE CATALOG
VALIDATE
69
Lab 1.1: Conexões, Opções, Confgurações
Execute o RMAN em modo DEBUG.
$ rman DEBUG TRACE=/home/oracle/rman.trc TARGET /
RMAN> SHOW ALL;
RMAN EXIT;
70
Lab 1.2: Conexões, Opções, Confgurações
Verifque todas as confgurações do RMAN.
$ rman TARGET /
RMAN> SHOW ALL;
Volte uma das confgurações ao seu valor original (CLEAR), e a altere novamente.
71
Instance
72
Instance States
Estados:
SHUTDOWN
NOMOUNT --- O RMAN só conecta no TARGET e AUXILIARY a partr deste estágio.
MOUNT
OPEN – O RMAN só conecta no CATALOG neste estágio.
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;
73
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;
74
Archived Redo Logs
75
Archived Redo Logs
76
Parâmetros: Archived Redo Logs
archive_lag_target
log_archive_confg
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_frst
log_archive_max_processes
log_archive_min_succeed_dest (MANDATORY / OPTIONAL)
log_archive_start
log_archive_trace
standby_archive_dest
77
Format: Archived Redo Logs
%s: log sequence number
%S: log sequence number, zero flled
%t: thread number
%T: thread number, zero flled
%a: actvaton ID
%d: database ID
%r: resetlogs ID
78
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';
Verifque se os Archived Redo Logs estão sendo gerados nos dois destnos.
79
RMAN: Backup
80
BACKUP Multtenant
RMAN> BACKUP DATABASE root;
RMAN> BACKUP DATABASE;
81
Lab 4.1: Backup
RMAN> BACKUP SPFILE;
82
Lab 4.2: Backup
RMAN> LIST ARCHIVELOG ALL;
RMAN> ALTER SYSTEM SWITCH LOGFILE;
RMAN> ALTER SYSTEM SWITCH LOGFILE;
RMAN> ALTER SYSTEM SWITCH LOGFILE;
RMAN> LIST ARCHIVELOG ALL;
84
Lab 4.4: Backup
RMAN> BACKUP AS COPY SPFILE;
85
RMAN: Repository
86
RMAN Repository
●
CONTROL_FILE_RECORD_KEEP_TIME
●
Licenciamento
●
Backup
●
High Availability
●
Backup, e depois resync
87
RMAN Compatbility Matrix
88
RMAN CATALOG
RC_ARCHIVED_LOG RC_DATABASE_INCARNATION
RC_BACKUP_ARCHIVELOG_DETAILS RC_DATAFILE
RC_BACKUP_ARCHIVELOG_SUMMARY RC_DATAFILE_COPY
RC_BACKUP_CONTROLFILE RC_LOG_HISTORY
RC_BACKUP_CONTROLFILE_DETAILS RC_OFFLINE_RANGE
RC_BACKUP_CONTROLFILE_SUMMARY RC_PROXY_ARCHIVEDLOG
RC_BACKUP_COPY_DETAILS RC_PROXY_ARCHIVELOG_DETAILS
RC_BACKUP_COPY_SUMMARY RC_PROXY_ARCHIVELOG_SUMMARY
RC_BACKUP_CORRUPTION RC_PROXY_CONTROLFILE
RC_BACKUP_DATAFILE RC_PROXY_COPY_DETAILS
RC_BACKUP_DATAFILE_DETAILS RC_PROXY_COPY_SUMMARY
RC_BACKUP_DATAFILE_SUMMARY RC_PROXY_DATAFILE
RC_BACKUP_FILES RC_REDO_LOG
RC_BACKUP_PIECE RC_REDO_THREAD
RC_BACKUP_PIECE_DETAILS RC_RESTORE_POINT
RC_BACKUP_REDOLOG RC_RESYNC
RC_BACKUP_SET RC_RMAN_BACKUP_JOB_DETAILS
RC_BACKUP_SET_DETAILS RC_RMAN_BACKUP_SUBJOB_DETAILS
RC_BACKUP_SET_SUMMARY RC_RMAN_BACKUP_TYPE
RC_BACKUP_SPFILE RC_RMAN_CONFIGURATION
RC_BACKUP_SPFILE_DETAILS RC_RMAN_OUTPUT
RC_BACKUP_SPFILE_SUMMARY RC_RMAN_STATUS
RC_CHECKPOINT RC_SITE
RC_CONTROLFILE_COPY RC_STORED_SCRIPT
RC_COPY_CORRUPTION RC_STORED_SCRIPT_LINE
RC_DATABASE RC_TABLESPACE
RC_DATABASE_BLOCK_CORRUPTION RC_TEMPFILE
RC_UNUSABLE_BACKUPFILE_DETAILS
89
Lab 5.1: Catalog
Crie um CATALOG em seu próprio Banco de Dados.
$ sqlplus / AS SYSDBA
SQL> ALTER SESSION SET CONTAINER = PROD;
SQL> CREATE TABLESPACE TBS_CATALOGO DATAFILE
'/u01/app/oracle/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> ALTER USER USER_CATALOGO QUOTA UNLIMITED ON TBS_CATALOGO;
$ rman CATALOG=USER_CATALOGO/USER_CATALOGO@PROD
RMAN> CREATE CATALOG TABLESPACE TBS_CATALOGO;
RMAN> EXIT;
90
Lab 5.2: Catalog
Com o RMAN, conecte no TARGET sem conectar no CATALOG.
$ rman TARGET /
91
RMAN: Validate
92
Lab 6.1: Validate
RMAN> BACKUP VALIDATE DATAFILE 1;
RMAN> BACKUP VALIDATE TABLESPACE USERS;
RMAN> BACKUP VALIDATE DATABASE;
RMAN> BACKUP VALIDATE CHECK LOGICAL DATAFILE 1;
RMAN> BACKUP VALIDATE CHECK LOGICAL TABLESPACE USERS;
RMAN> BACKUP VALIDATE CHECK LOGICAL DATABASE;
OU
93
Lab 6.2: Validate
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;
94
RMAN: Compression
95
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';
Algoritmo HIGH
11.2.0
CONFIGURE or SET COMPRESSION ALGORITHM 'HIGH';
Exemplo:
RMAN> CONFIGURE COMPRESSION ALGORITHM 'HIGH' OPTIMIZE FOR LOAD TRUE;
96
Lab 7.1: Compression
Verifque a compressão padrão atual do RMAN.
97
RMAN: Encrypton
98
Encrypton
Transparent Encrypton
RMAN> SET ENCRYPTION ON;
Password Encrypton
RMAN> SET ENCRYPTION ON IDENTIFIED BY 'MyPasswordIsHard' ONLY;
RMAN> SET DECRYPTION IDENTIFIED BY 'MyPasswordIsHard';
99
Lab 8.1: Encrypton
Habilite o Password Encrypton para uma sessão.
RMAN> SET ENCRYPTION ON IDENTIFIED BY 'Nerv2017' ONLY;
Restaure o ARCHIVELOG.
RMAN> RESTORE ARCHIVELOG SEQUENCE 1;
100
RMAN: Snapshot Controlfle
101
Lab 9.1: Snapshot Controlfle
Crie um diretório para armazenar o SNAPSHOT CONTROLFILE.
102
RMAN: Crosscheck
103
CROSSCHECK
104
Lab 10.1: Crosscheck
Execute Crosscheck de vários tpos de dados do Repositório do RMAN.
RMAN> CROSSCHECK BACKUP OF DATAFILE 1;
RMAN> CROSSCHECK BACKUP OF TABLESPACE USERS;
RMAN> CROSSCHECK BACKUP OF SPFILE;
RMAN> CROSSCHECK ARCHIVELOG ALL;
105
Lab 10.2: Crosscheck
Mova um BACKUP para outro diretório, e refaça o CROSSCHECK.
Que informação mudou?
106
RMAN: Backup Optmizaton
107
Lab 11.1: Backup Optmizaton
Verifque se o OPTIMIZATION está em ON.
108
RMAN: Backup, Tag, Backup Set, Backup Piece
109
Hierarquia
→ BACKUP
→ BACKUP TAG
→ BACKUP SET
→ BACKUP PIECE
110
Lab 12.1: Backup, BackupSet, PackupPiece
Altere a confguração do RMAN para utlizar 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.
Execute um BACKUP Completo do Banco de Dados, com uma TAG com seu nome.
111
RMAN: List
112
Lab 13.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;
113
RMAN: FORMAT
114
FORMAT
%a Actvaton ID
%c Copy number
%d Database name
%D Day of the month
%e Archived log sequence
%f Absolute fle 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 tme stamp
%T Year, month, and day
%U System-generated unique flename
%Y Year
115
Lab 14.1: Format
Crie um diretório para armazenar os BACKUPs.
116
RMAN: Backup Incremental
117
Diferental Incremental Backups
118
Cumulatve Incremental Backups
119
Lab 15.1: Backup Incremental
Execute um BACKUP completo do Banco de Dados.
RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;
120
Lab 15.2: Backup Incremental
Habilite o BLOCK CHANGE TRACKING.
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE ‘/home/oracle/BCT.rman’;
121
Lab 15.3: Backup Incremental
Execute um Incrementally Updated Backup.
RMAN> BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'BackupFull' DATABASE;
RMAN> BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'BackupFull' DATABASE;
RMAN> BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'BackupFull' DATABASE;
122
RMAN: Switch
123
Lab 16.1: Switch
Troque a localização de um DATAFILE com RMAN.
RMAN> RUN {
BACKUP DATAFILE 7;
SQL 'ALTER TABLESPACE USERS OFFLINE';
SET NEWNAME FOR DATAFILE 7 TO '/home/oracle/users01.NEWNEWNAME.dbf';
RESTORE DATAFILE 7;
RECOVER DATAFILE 7;
SWITCH DATAFILE 7;
SQL 'ALTER TABLESPACE USERS ONLINE';
REPORT SCHEMA;
}
Funcionou? Por que?
O DATAFILE sumiu da localização anterior?
124
RMAN: Retenton
125
Retentons
126
Lab 17.1: Retenton
Altere o RETENTION para RECOVERY WINDOW OF 6 DAYS.
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 6 DAYS;
127
Lab 17.2: Retenton
Altere o RETENTION para REDUNDANCY 2.
RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
128
Lab 17.3: Retenton
Execute um BACKUP que ignora o RETENTION.
RMAN> BACKUP DATABASE KEEP UNTIL TIME='SYSDATE+366';
129
RMAN: Scripts
130
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;}
131
RMAN: Change
132
Lab 19.1: Change
Liste todos os BACKUPS do DATAFILE 1.
133
Lab 19.2: Change
Liste todos os Backups.
134
RMAN: Clone
135
Lab 20.1: Clone
Crie um PFILE para o banco Clone.
$ vi /u01/app/oracle/product/12.2.0.1/db_1/dbs/initTESTE.ora
*.audit_file_dest='/u01/app/oracle/admin/TESTE/adump'
*.audit_trail='db'
*.compatible='12.2.0.1.0'
*.control_files='/u01/app/oracle/oradata/TESTE/control01.ctl','/u01/app/oracle/fast_recovery
_area/TESTE/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='TESTE'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=100g
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
*.job_queue_processes=4
*.log_archive_format='%t_%s_%r.dbf'
*.open_cursors=300
*.pga_aggregate_target=512m
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.resource_manager_plan='DEFAULT_PLAN'
*.sga_target=1024m
*.undo_tablespace='UNDOTBS1'
*.db_file_name_convert=('/u01/app/oracle/oradata/ORCL/','/u01/app/oracle/oradata/TESTE/')
*.log_file_name_convert=('/u01/app/oracle/oradata/ORCL/','/u01/app/oracle/oradata/TESTE/')
*.enable_pluggable_database=TRUE
136
Lab 20.2: Clone
Crie uma entrada no tnsnames.ora para o banco Clone.
$ vi /u01/app/oracle/product/12.2.0.1/db_1/network/admin/tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = nerv02.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
TESTE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = nerv02.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TESTE)
(UR=A)
)
)
137
Lab 20.3: Clone
Crie uma entrada estática no listener.ora para o banco Clone.
$ vi /u01/app/oracle/product/12.2.0.1/db_1/network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = nerv02.localdomain)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=TESTE)
(ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1)(SID_NAME=TESTE)))
Reinicie o LISTENER.
$ lsnrctl stop
$ lsnrctl start
138
Lab 20.4: Clone
Inicie a instância Clone.
$ export ORACLE_SID=TESTE
$ rlwrap sqlplus / AS SYSDBA
SQL> STARTUP NOMOUNT;
SQL> CREATE SPFILE FROM PFILE;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP NOMOUNT;
SQL> EXIT;
139
RMAN: Tuning
140
Tuning
Memória
●
DISK_ASYNCH_IO / TAPE_ASYNCH_IO
●
DBWR_IO_SLAVES
●
BACKUP_TAPE_IO_SLAVES
●
PGA / LARGE_POOL / SHARED_POOL
Multplexing
●
PARALLELISM
●
Mult-secton backups: BACKUP SECTION SIZE 1G TABLESPACE USERS;
Leitura
●
CONFIGURE CHANNEL 1 DEVICE TYPE DISK MAXOPENFILES 4;
●
Block Change Tracking
Gravação
●
BACKUP DATABASE FILESPERSET 1;
DURATION
●
BACKUP DURATION 5:00 PARTIAL MINIMIZE TIME DATABASE FILESPERSET 1;
●
BACKUP DURATION 5:00 PARTIAL MINIMIZE LOAD DATABASE FILESPERSET 1;
141
Tuning
Acompanhamento
SET PAGESIZE 1000
SET LINESIZE 200
COL MESSAGE FORMAT A100
SELECT SID,SERIAL#,START_TIME,
((SOFAR/TOTALWORK)*100),'%',TIME_REMAINING, MESSAGE FROM
V$SESSION_LONGOPS where TIME_REMAINING > 0 ORDER BY TIME_REMAINING;
142
Views RMAN
V$BACKUP_FILES
V$BACKUP_PIECE
V$BACKUP_SET_SUMMARY
V$BACKUP_CONTROLFILE_DETAILS
V$BACKUP_COPY_DETAILS
V$BACKUP_DATAFILE_DETAILS
V$RMAN_OUTPUT
V$RMAN_STATUS
V$RMAN_BACKUP_JOB_DETAILS
SQL> SELECT
INPUT_TYPE,
TO_CHAR(START_TIME, 'DD/MM/YYYY, HH24:MI:SS'),
TO_CHAR(END_TIME, 'DD/MM/YYYY, HH24:MI:SS'),
STATUS
FROM V$RMAN_BACKUP_JOB_DETAILS
ORDER BY START_TIME;
143
Lab 21.1: Tuning
Qual a diferença destas duas execuções?
RMAN> BACKUP DURATION 5:00 PARTIAL MINIMIZE TIME DATABASE FILESPERSET 1;
RMAN> BACKUP DURATION 5:00 PARTIAL MINIMIZE LOAD DATABASE FILESPERSET 1;
144
RMAN: Restore & Recover
145
RESTORE & RECOVER
146
RESTORE & RECOVER Multtenant
RMAN> RESTORE DATABASE;
RMAN> RESTORE DATABASE root;
RMAN> RESTORE PLUGGABLE DATABASE PDB1;
RMAN> RESTORE TABLESPACE PDB1:USERS;
147
RMAN: Recovery - SPFILE
148
Lab 22.1: Restore Spfle
Cenário com a Instance em OPEN.
Restore com CATALOG e com Backup.
Preparação:
• Deixe a Instance em estado OPEN.
• Remova o SPFILE.
• Se tver um PFILE (initORCL.ora), mova-o para o /home/oracle.
• Altere um parâmetro no SPFILE.
Procedimento:
• Conectar no RMAN, com TARGET / e CATALOG centralizado.
• Listar Backups Disponíveis (LIST).
• Escolher qual Backup recuperar.
• Restaurar SPFILE (RESTORE).
• Altere um parâmetro no SPFILE.
149
Lab 22.2: Restore Spfle
Cenário com a Instance em OPEN.
Restore sem CATALOG e com Backup.
Preparação:
• Deixe a Instance em estado OPEN.
• Remova o SPFILE.
• Se tver um PFILE (initORCL.ora), mova-o para o /home/oracle.
• Altere um parâmetro no SPFILE.
Procedimento:
• Conectar no RMAN, com TARGET /.
• Listar Backups Disponíveis (LIST).
• Escolher qual Backup recuperar.
• Restaurar SPFILE (RESTORE).
• Altere um parâmetro no SPFILE.
150
Lab 22.3: Restore Spfle
Cenário com a Instance em OPEN.
Restore sem CATALOG, sem Backup, e com PFILE (init).
Preparação:
• Deixe a Instance em estado OPEN.
• Crie um PFILE a partr do SPFILE, e mova-o para o /home/oracle.
• Remova o SPFILE.
• Altere um parâmetro no SPFILE.
Procedimento:
• Passe a Instance ao estado SHUTDOWN.
• Passe a instance ao estado OPEN, utlizando o PFILE.
• Criar SPFILE a partr do PFILE.
• Passe a Instance ao estado SHUTDOWN.
• Passe a instance ao estado OPEN.
• Altere um parâmetro no SPFILE.
151
Lab 22.4: Restore Spfle
Cenário com a Instance em OPEN.
Restore sem CATALOG, sem BACKUP, e sem PFILE (init).
Preparação:
• Deixe a Instance em estado OPEN.
• Remova o SPFILE.
• Se tver um PFILE (initORCL.ora), mova-o para o /home/oracle.
• Altere um parâmetro no SPFILE.
Procedimento:
• Criar PFILE a partr do Alert Log.
• Passe a Instance ao estado SHUTDOWN.
• Passe a instance ao estado OPEN, utlizando o PFILE.
• Criar SPFILE a partr do PFILE.
• Passe a Instance ao estado SHUTDOWN.
• Passe a instance ao estado OPEN.
• Altere um parâmetro no SPFILE.
152
Lab 22.5: Restore Spfle
Cenário com a Instance em SHUTDOWN.
Restore com CATALOG e com Backup.
Preparação:
• Deixe a Instance em estado SHUTDOWN.
• Se tver um PFILE (initORCL.ora), mova-o para o /home/oracle.
• Remova o SPFILE.
Procedimento:
• Conectar no RMAN, com TARGET / e CATALOG centralizado.
• SET DBID.
●
Passe a Instance ao estágio STARTUP NOMOUNT. Como, sem o SPFILE ou PFILE?
●
Listar Backups Disponíveis (LIST). Neste momento, verifque o Parâmetro control_fles pelo SQL*Plus.
• Escolher qual Backup recuperar.
• Restaurar SPFILE (RESTORE).
• Passe a Instance ao estágio SHUTDOWN.
• Passe a Instance ao estágio OPEN.
• Altere um parâmetro no SPFILE.
153
Lab 22.6: Restore Spfle
Cenário com a Instance em SHUTDOWN.
Restore sem CATALOG e com Backup.
Preparação:
• Deixe a Instance em estado SHUTDOWN.
• Se tver um PFILE (init), mova-o para o /home/oracle.
• Remova o SPFILE.
Procedimento:
• Conectar no RMAN, com TARGET /.
• SET DBID.
• Passe a Instance ao estágio STARTUP NOMOUNT.
• Listar Backups Disponíveis (LIST). Por que não funciona?
Neste momento, verifque o Parâmetro control_fles pelo SQL*Plus.
• Escolher qual BACKUP recuperar.
• Inclua este BACKUP no Repositório (CATALOG). Por que não funciona?
• Restaurar SPFILE (RESTORE).
• Passe a Instance ao estágio SHUTDOWN.
• Passe a Instance ao estágio OPEN.
• Altere um parâmetro no SPFILE.
154
Lab 22.7: Restore Spfle
Cenários com a Instance em SHUTDOWN.
Restore sem CATALOG, sem Backup, e sem PFILE (init) e sem Alert Log.
Preparação:
• Passe a Instance ao estado SHUTDOWN.
• Remova o PFILE.
• Remova o SPFILE.
Procedimento:
• Crie um PFILE só com os parâmetros básicos.
• Passe a instance ao estado OPEN, utlizando o PFILE.
• Criar SPFILE a partr do PFILE.
• Passe a Instance ao estado SHUTDOWN.
• Passe a instance ao estado OPEN.
• Altere um parâmetro no SPFILE.
155
RMAN: Recovery - ARCHIVEs
156
Lab 23.1: Restore Archived Redo Logs
ARCHIVELOGs só podem ser restaurados com a INSTANCE em MOUNT ou OPEN.
Procedimento:
• Execute BACKUP de todos ARCHIVELOGs com DELETE ALL INPUT.
RMAN> BACKUP ARCHIVELOG ALL DELETE ALL INPUT;
157
RMAN: Recovery - DATAFILE
158
Hierarquia Restore & Recover
RESTORE
→ COPY
→ BACKUPSET FULL ou INCREMENTAL LEVEL 0
RECOVER
→ REDO LOGs
→ BACKUPSET INCREMENTAL LEVEL 1
→ ARCHIVED REDO LOGs
159
Lab 24.1: Restore Datafle
DATAFILEs só podem ser restaurados com a INSTANCE nos estados MOUNT ou OPEN.
O RESTORE só pode ser feito com dados do Repositório.
DATAFILEs isolados só podem sofrer COMPLETE RECOVERY.
Cenário com Backup de DATAFILE e a Instance em estado OPEN.
Preparação:
• Deixe a Instance em estado OPEN.
• Remova o DATAFILE users02.dbf pelo Sistema Operacional.
• Verifque o Alert Log.
• Crie uma tabela na TABLESPACE USERS.
• Verifque o Alert Log.
• Execute uma validação do Banco de Dados.
• Verifque o Alert Log.
Procedimento:
• Coloque o DATAFILE em OFFLINE.
• Execute o RESTORE do DATAFILE.
• Execute o RECOVER do DATAFILE.
• Altere o DATAFILE para ONLINE.
160
Lab 24.2: Restore Datafle
Cenário com Backup de DATAFILE e a Instance em estado SHUTDOWN.
Preparação:
• Deixe a Instance em estado OPEN.
• Remova o DATAFILE users02.dbf pelo Sistema Operacional.
• Execute SHUTDOWN IMMEDIATE.
• Verifque o Alert Log.
• Execute SHUTDOWN ABORT.
• Verifque 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.
161
Lab 24.3: Restore Datafle
Cenário sem Backup de DATAFILE, com ARCHIVEs e a Instance em estado OPEN.
Preparação:
• 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.
• Verifque o Alert Log.
• Execute uma validação do Banco de Dados.
• Verifque o Alert Log.
Procedimento:
• Coloque o DATAFILE em OFFLINE.
162
Lab 24.4: Restore Datafle
Cenário sem Backup de DATAFILE, com ARCHIVEs e a Instance em estado SHUTDOWN.
Preparação:
• Deixe a Instance em estado OPEN.
• Remova o novo DATAFILE da TABLESPACE USERS pelo Sistema Operacional.
• Verifque o Alert Log.
• Execute uma validação do Banco de Dados.
• Verifque o Alert Log.
• Execute SHUTDOWN ABORT.
Procedimento:
• Execute STARTUP. Em que estado a Instance parou?
163
Lab 24.5: Restore Datafle
Cenário sem Backup de DATAFILE, sem ARCHIVEs e a Instance em estado OPEN.
Preparação:
• Deixe a Instance em estado OPEN.
• Remova um DATAFILE pelo Sistema Operacional.
• Verifque o Alert Log.
• Execute uma validação do Banco de Dados.
• Verifque o Alert Log.
Procedimento:
• Verifque qual o PID do processo Database Writer.
$ ps aux | grep dbw
164
Lab 24.6: Restore Datafle
Cenário sem Backup de DATAFILE, sem ARCHIVEs e a Instance em estado SHUTDOWN.
Preparação:
•
●
Deixe a Instance em estado OPEN.
●
Remova o DATAFILE soe04.dbf pelo Sistema Operacional.
●
Execute SHUTDOWN IMMEDIATE.
●
Verifque o Alert Log.
●
Execute SHUTDOWN ABORT.
●
Verifque o Alert Log.
Procedimento:
• Execute STARTUP. Em que estado a Instance parou?
• Coloque o DATAFILE em OFFLINE.
• Passe a instância ao estado OPEN.
• Mova os objetos que não tnham segmentos no DATAFILE perdido para outra TABLESPACE, e remova a
antga.
SQL> ALTER PLUGGABLE DATABASE PROD OPEN READ WRITE;
SQL> ALTER SESSION SET CONTAINER = PROD;
SQL> SELECT DISTINCT SEGMENT_NAME, SEGMENT_TYPE FROM DBA_EXTENTS WHERE
SEGMENT_NAME NOT IN (SELECT SEGMENT_NAME FROM DBA_EXTENTS WHERE FILE_ID = 20)
AND TABLESPACE_NAME = 'SOE';
SQL> CREATE TABLESPACE NEW_SOE DATAFILE '/u01/soe01.dbf' size 1g AUTOEXTEND ON;
SQL> ALTER USER SOE QUOTA UNLIMITED ON NEW_SOE;
SQL> ALTER TABLE SOE.... MOVE TABLESPACE NEW_SOE;
SQL> DROP TABLESPACE SOE INCLUDING CONTENTS AND DATAFILES;
165
Lab 24.7: Restore Datafle
Cenário com corrupção de um DATAFILE, e com a Instance em OPEN.
Preparação:
• Crie uma nova TABLESPACE.
• Crie uma Tabela, com dados, nesta nova TABLESPACE.
SQL> CREATE TABLE T TABLESPACE TESTE AS SELECT * FROM ALL_OBJECTS;
Faça um BACKUP Completo do Banco de Dados.
• Verifque qual o HEADER BLOCK dos dados desta Tabela.
SQL> SELECT HEADER_BLOCK FROM DBA_SEGMENTS WHERE OWNER = 'SYS' AND SEGMENT_NAME =
'TESTE';
Procedimento:
• RMAN> BLOCKRECOVER DATAFILE 7 BLOCK 131.
• Verifque o Alert Log.
166
RMAN: Recovery - TEMPFILE
167
Lab 25.1: Restore Tempfle
TEMPFILEs só podem ser alterados com a INSTANCE nos estados MOUNT ou OPEN.
Não há BACKUP de TEMPFILEs.
Preparação:
• Deixe a Instance em estado OPEN.
• Remova todos os TEMPFILEs pelo Sistema Operacional.
• Execute uma validação do Banco de Dados.
• Crie uma Tabela a partr da ALL_OBJECTS.
SQL> CREATE TABLE T AS SELECT * FROM ALL_OBJECTS;
Procedimento:
• Adicione um novo TEMPFILE.
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/ORCL/temp02.dbf'
SIZE 100M;
• Remova logicamente o TEMPFILE.
SQL> ALTER DATABASE TEMPFILE '/u01/app/oracle/oradata/ORCL/temp01.dbf' DROP;
168
RMAN: Recovery - TABLESPACES
169
Lab 26.1: Restore Tablespace
Cenário 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 Repositório.
Preparação:
• Execute um Backup Completo do Banco de Dados.
• Deixe a Instance em estado OPEN.
• Remova todos os DATAFILEs da TABLESPACE USERs pelo Sistema Operacional.
• Verifque o Alert Log.
• Crie uma tabela na TABLESPACE USERS.
• Verifque o Alert Log.
• Execute uma validação do Banco de Dados.
• Verifque o Alert Log.
Procedimento:
• Altere os DATAFILE da TABLESPACE em OFFLINE.
• Execute o RESTORE da TABLESPACE.
• Execute o RECOVER da TABLESPACE.
• Altere os DATAFILE da TABLESPACE em ONLINE.
170
Lab 26.2: Restore Tablespace
Cenário 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 Repositório.
Preparação:
• Deixe a Instance em estado OPEN.
• Remova todos os DATAFILEs da TABLESPACE USERs pelo Sistema Operacional.
• Execute SHUTDOWN IMMEDIATE.
• Verifque o Alert Log.
• Execute SHUTDOWN ABORT.
• Verifque 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.
171
Lab 26.3: Restore Tablespace
TSPITR: Tablespace Point In Time Recovery.
Preparação:
• Crie um diretorio temporário para esta operação.
• Crie uma TABLESPACE.
SQL> ALTER SESSION SET CONTAINER = PROD;
SQL> CREATE TABLESPACE NEWTS DATAFILE ‘/u01/new01.dbf’ SIZE 1G;
SQL> ALTER USER SCOTT QUOTA UNLIMITED ON NEWTS;
• Crie uma Tabela com o Usuário SCOTT na nova TABLESPACE.
$ sqlplus SCOTT/tiger@PROD
SQL> CREATE TABLE T1 (C1 NUMBER) TABLESPACE NEWTS;
SQL> INSERT INTO T1 VALUES (1);
SQL> COMMIT;
SQL> INSERT INTO T1 SELECT * FROM T1; – - Executar 20x.
SQL> COMMIT;
• Execute um BACKUP completo do Banco de Dados.
• Gere novos ARCHIVEs (ALTER SYSTEM SWITCH LOGFILE).
• Verifque qual o últmo ARCHIVELOG gerado (LIST ARCHIVELOG ALL).
• Remova a Tabela criada pelo SCOTT.
Procedimento:
Execute o TSPITR:
RMAN> RECOVER TABLESPACE PROD:NEWTS UNTIL SEQUENCE 35 AUXILIARY
DESTINATION '/home/oracle/TableSpaceRecover/';
172
Lab 26.4: Restore Table
TPITR: Table Point In Time Recovery.
Preparação:
• Crie um diretorio temporário para esta operação.
• Crie uma Tabela com dados com o Usuário SCOTT.
• Execute um BACKUP completo do Banco de Dados.
• Gere novos ARCHIVEs (ALTER SYSTEM SWITCH LOGFILE).
• Verifque qual o últmo ARCHIVELOG gerado (LIST ARCHIVELOG ALL).
• Apague todos os dados da Tabela criada pelo SCOTT.
Procedimento:
RMAN> RECOVER TABLE SCOTT.T OF PLUGGABLE DATABASE PROD
UNTIL SEQUENCE 35
AUXILIARY DESTINATION '/home/oracle/TableRecover/'
REMAP TABLE SCOTT.T:T2;
173
RMAN: Recovery - UNDO
174
Lab 27.1: Restore Undo
Cenário com 1 DATAFILE de UNDO com segmentos atvos, com Backup e com a Instance em OPEN.
Preparação:
• Deixe a Instance em estado OPEN.
• Verifque qual a TABLESPACE de UNDO padrão.
• Remova o DATAFILE da TABLESPACE de UNDO.
• Verifque o Alert Log.
• Execute uma validação do Banco de Dados.
• Verifque o Alert Log.
Procedimento:
• Coloque o DATAFILE em OFFLINE. O que aconteceu com o DATAFILE? E sua sessão?
• Execute o RESTORE do DATAFILE. Verifque o Alert Log. O RESTORE funcionou?
• Execute o RECOVER do DATAFILE. O que aconteceu com o DATAFILE? E sua sessão?
• Execute SHUTDOWN IMMEDIATE. Por que não 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.
• Verifque o Alert Log.
• Execute uma validação do Banco de Dados.
• Verifque o Alert Log.
175
Lab 27.2: Restore Undo
Cenário com 1 DATAFILE de UNDO sem segmentos atvos, com Backup e com a Instance em OPEN.
Preparação:
• Deixe a Instance em estado OPEN.
• Verifque qual a TABLESPACE de UNDO padrão.
• Adicione um DATAFILE a TABLESPACE de UNDO padrão.
• Executa um BACKUP Completo do Banco de Dados.
• Remova (rm) o novo DATAFILE da TABLESPACE de UNDO.
• Verifque o Alert Log.
• Execute uma validação do Banco de Dados.
• Verifque o Alert Log.
Procedimento:
• Coloque o DATAFILE em OFFLINE.
• Execute o RESTORE do DATAFILE.
• Execute o RECOVER do DATAFILE.
• Altere o DATAFILE para ONLINE.
• Verifque o Alert Log.
• Execute uma validação do Banco de Dados.
• Verifque o Alert Log.
176
Lab 27.3: Restore Undo
Cenário com perda de todos os DATAFILEs de UNDO, sem Backup e com a Instance em OPEN.
Preparação:
• Deixe a Instance em estado OPEN.
• Verifque qual a TABLESPACE de UNDO padrão.
• Remova todos os DATAFILEs da TABLESPACE de UNDO.
• Verifque o Alert Log.
• Execute uma validação do Banco de Dados.
• Verifque o Alert Log.
Procedimento:
• Crie um PFILE através do SPFILE.
• Execute SHUTDOWN IMMEDIATE. Por que não funciona?
• Execute SHUTDOWN ABORT.
• Altere no PFILE o Parâmetro UNDO_MANAGEMENT para MANUAL.
• Execute STARTUP. Em que estado a Instance parou?
• Altere os DATAFILEs para OFFLINE DROP.
• Passe a Instance ao Estado OPEN.
• Remova a antga TABLESPACE de UNDO, e crie outra com o mesmo nome.
• Se necessário, utlize o parâmetro ."_ofine_rollback_segments".
• Reinicie a Instance.
177
RMAN: Recovery – REDO LOGs
178
RESETLOGS
179
Incomplete Recovery
• TIME
SET UNTIL TIME "TO_DATE('2010-07-14:136:00:00','YYYY-MM-DD:HH24:MI:SS')";
• SCN
SET UNTIL SCN 8247536;
• SEQUENCE
SET UNTIL SEQUENCE 42;
180
Lab 28.1: Restore Redo Logs
Cenário com REDO LOG multplexado, e com a Instance em OPEN.
Preparação:
• Deixe a Instance em estado OPEN.
• Adicione 1 Grupo de REDO Log Multplexado.
SQL> ALTER DATABASE ADD LOGFILE ('/u01/redo04a.log', '/u01/redo04b.log') SIZE 50M;
• Remova (rm) 1 membro deste grupo de REDO LOG.
• Verifque o Alert Log.
Procedimento:
• Execute 4x ALTER SYSTEM SWITCH LOGFILE;
• Verifque qual o membro que está com status INVALID (V$LOGFILE).
181
Lab 28.2: Restore Redo Logs
Cenário com REDO LOG não multplexado, REDO LOG INACTIVE, e com a Instance em OPEN.
Preparação:
• Deixe a Instance em estado OPEN.
• Verifque um REDO LOG com status INACTIVE (V$LOG).
• Remova (rm) um REDO LOG com status INACTIVE.
• Verifque o Alert Log.
Procedimento:
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;
182
Lab 28.3: Restore Redo Logs
Cenário com REDO LOG não multplexado, REDO LOG ACTIVE, e com a Instance em OPEN.
Preparação:
• Deixe a Instance em estado OPEN.
• Verifque um REDO LOG com status ACTIVE (V$LOG).
• Remova um REDO LOG com status ACTIVE.
• Verifque o Alert Log.
Procedimento:
• Execute SHUTDOWN IMMEDIATE.
• Execute STARTUP MOUNT.
• Execute um INCOMPLETE RECOVERY falso.
SQL> RECOVER DATABASE UNTIL CANCEL;
183
Lab 28.4: Restore Redo Logs
Cenário com REDO LOG não multplexado, REDO LOG CURRENT, e com a Instance em OPEN.
Preparação:
• Deixe a Instance em estado OPEN.
• Execute um BACKUP completo do Banco de Dados.
• Execute várias vezes ALTER SYSTEM SWITCH LOGFILE.
• Verifque qual o REDO LOG com status CURRENT (V$LOG).
• Verifque qual a últma SEQUENCE completada.
• Remova o REDO LOG com status CURRENT.
• Verifque 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;
}
• Verifque os INCARNATIONs de seu Banco de Dados.
184
Lab 28.5: Restore Redo Logs
Incomplete Recovery para uma outro INCARNATION.
Preparação:
• Deixe a Instance em estado OPEN.
• Execute um BACKUP completo do Banco de Dados.
Procedimento:
• Verifque 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;
185
Flashback
186
Flashback
●
Flashback Database
●
Flashback Table
●
Flashback Drop
●
Flashback Transacton
●
Flashback Transacton Query
●
Flashback Query
●
Flashback Versions Query
●
Oracle Flashback Data Archive / Total Recall
187
Lab 29.1: Flashback Database
Atve o Flashback.
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE FLASHBACK ON;
SQL> ALTER DATABASE OPEN;
Remova um SCHEMA.
SQL> ALTER SESSION SET CONTAINER = PROD;
SQL> SELECT TO_CHAR(SUM(BYTES)) FROM DBA_SEGMENTS WHERE OWNER = 'SOE';
SQL> DROP USER SOE CASCADE;
188
RMAN: Recovery – CONTROLFILEs
189
Encontrando o DBID
Onde encontrar o DBID?
• V$DATABASE
• Ao conectar no RMAN
• No CATALOG.
• No Alert Log, ao trocar o DBID.
• No nome do CONTROLFILE AUTOBACKUP.
• Dentro dos Backups da SYSTEM, SYSAUX e UNDO (“MAXVALUE” ou “DBID:”).
• Dentro do DATAFILE da SYSTEM ou SYSAUX (“MAXVALUE” ou “DBID:”).
190
Lab 30.1: Restore Controlfles
Cenário com perda de 1 CONTROLFILE multplexado, e com a Instance em OPEN.
Preparação:
• Deixe a Instance em estado OPEN.
• Verifque quais os CONTROLFILEs do Banco de Dados.
• Apague um dos CONTROLFILEs.
• Verifque o Alert Log.
• Faça uma Validação do Banco de Dados.
• Verifque o Alert Log.
Procedimento:
• Execute SHUTDOWN IMMEDIATE. Por que não funciona?
• Execute SHUTDOWN ABORT.
• Copie o CONTROLFILE sobrevivente para o que foi apagado.
• Execute STARTUP.
191
Lab 30.2: Restore Controlfles
Cenário com perda de todos CONTROLFILEs, com Backup, com CATALOG, e com a Instance em
OPEN.
Preparação:
• Deixe a Instance em estado OPEN.
• Verifque quais os CONTROLFILEs do Banco de Dados.
• Apague todos os CONTROLFILEs.
• Verifque o Alert Log.
• Faça uma Validação do Banco de Dados.
• Verifque o Alert Log.
Procedimento:
• Execute SHUTDOWN IMMEDIATE. Por que não funciona?
• Execute SHUTDOWN ABORT.
• Execute STARTUP. Em que estado a Instance parou?
• Execute o comando SET DBID.
• Execute RESTORE do CONTROLFILE. Para onde são restaurados?
• Execute um Incomplete Recovery falso
RMAN> RECOVER DATABASE;
192
Lab 30.3: Restore Controlfles
Cenário com perda de todos CONTROLFILEs, sem Backup via RMAN, sem CATALOG, com Backup em
TRACE, e com a Instance em SHUTDOWN.
Preparação:
• Deixe a Instance em estado OPEN.
• Execute um BACKUP em TRACE.
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/tmp/CF.trc';
Procedimento:
• Execute STARTUP. Em que estado a Instance parou?
• Execute o comando CREATE CONTROLFILE que está no fnal do TRACE.
• Execute um Incomplete Recovery falso.
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
193
Lab 30.4: Restore Controlfles
Cenário com perda de todos CONTROLFILEs, sem Backup, sem CATALOG, com Backup em TRACE, e
com a Instance em OPEN.
Preparação:
• Deixe a Instance em estado OPEN.
• Execute um BACKUP em TRACE.
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/tmp/CF.trc';
Procedimento:
• Execute SHUTDOWN IMMEDIATE. Por que não funciona?
• Execute SHUTDOWN ABORT.
• Execute STARTUP. Em que estado a Instance parou?
• Execute o comando CREATE CONTROLFILE que está no fnal 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.
• Verifque os INCARNATIONs de seu Banco de Dados.
194
Lab 30.5: Restore Controlfles
Cenário com perda de todos CONTROLFILEs, sem Backup, sem CATALOG, sem Backup em TRACE, e
com a Instance em OPEN.
Preparação:
• Deixe a Instance em estado OPEN.
• Verifque quais os CONTROLFILEs do Banco de Dados.
• Apague todos os CONTROLFILEs.
• Verifque o Alert Log.
• Faça uma Validação do Banco de Dados.
• Verifque o Alert Log.
• Verifque o conteúdo da View V$LOG.
Procedimento:
• Execute SHUTDOWN IMMEDIATE. Por que não 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.
• Verifque os INCARNATIONs de seu Banco de Dados.
195
Lab 30.6: Restore Controlfles
Cenário com perda de todos CONTROLFILEs, sem Backup, sem CATALOG, sem Backup em TRACE, e com
a Instance em OPEN.
Preparação:
• Deixe a Instance em estado OPEN.
• Verifque quais os CONTROLFILEs do Banco de Dados.
• Apague todos os CONTROLFILEs.
• Verifque o Alert Log.
• Faça uma Validação do Banco de Dados.
• Verifque o Alert Log.
Procedimento:
●
Execute SHUTDOWN IMMEDIATE. Por que não 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.
196
Melhores Prátcas
●
Domine a manipulação de dados do REPOSITORY.
●
Utlize um nome útl nos ARCHIVED REDO LOGs.
●
Utlize um nome útl nos BACKUPPIECEs.
●
Utlize TAGs.
●
Utlize o CATALOG.
●
Centralize o agendamento e execução de seus BACKUPs no CATALOG.
●
Utlize 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 execução.
●
Utlize PASSWORD ENCRYPTION.
●
Habilite o CONTROLFILE AUTOBACKUP, em um local seguro.
●
Habilite o BACKUP OPTIMIZATION.
●
Utlize compressão MEDIUM (ZLIB).
●
Use REDO LOGs multplexados.
●
Use CONTROLFILEs multplexados.
●
SHUTDOWN ABORT é mais rápido e tão seguro quando IMMEDIATE.
●
Não utlize BACKUPs incrementais: prefra um ARCHIVED REDO LOG a mais.
●
Utlize RETENTION do tpo REDUNDANCY: você não quer um backup do mês passado.
●
Pratque cenários de RESTORE e RECOVER regularmente. Antes que aconteça.
197
Perguntas?