Anda di halaman 1dari 125

Oracle Data Guard 12cR1

Ricardo Portilho Proni


ricardo@nervinformatica.com.br

Esta obra est licenciada sob a licena


Creative Commons Atribuio-SemDerivados 3.0 Brasil.
Para ver uma cpia desta licena, visite
http://creativecommons.org/licenses/by-nd/3.0/br/.
Alta Disponibilidade

2
Caractersticas da Alta Disponibilidade
Confiana
Recuperabilidade
Deteco de erros em tempo hbil
Continuidade operacional

3
Anlise de Alta Disponibilidade
Anlise de impacto no negcio
Custo de tempo fora de operao
Objetivo de tempo de recuperao (RTO)
Objetivo de ponto de recuperao (RPO)
Meta de gerenciamento
Custo total de propriedade (TCO)
Retorno sobre o investimento (ROI)

4
Sistemas e Alta Disponibilidade
Camada 1 (Faturamento, Vendas)
Camada 2 (Compras, Estoque)
Camada 3 (BI, Desenvimento)

5
Custos e Alta Disponibilidade
Tempo mximo de parada tolerado.
Frequncia mxima de paradas tolerada.
Custos facilmente mensurveis (vendas, funcionrios ociosos, multas contratuais)
Custos dificilmente mensurveis (processos judiciais)
Custos no mensusveis (publicidade negativa, clientes irritados)

6
Implantao de Alta Disponibilidade

7
Solues Oracle para Alta Disponibilidade
Fast-Start Fault Recovery
Oracle Restart
Oracle Real Application Clusters and Oracle Clusterware
Oracle RAC One Node
Oracle Data Guard
Oracle GoldenGate and Oracle Streams
Oracle Flashback Technology
Oracle Automatic Storage Management
Fast Recovery Area
Recovery Manager
Data Recovery Advisor
Oracle Secure Backup
Oracle Security Features
LogMiner
Oracle Exadata Storage Server Software (Exadata Cell)
Oracle Exadata Database Machine
Oracle Database File System (DBFS)
Client Failover
Automatic Block Repair
Corruption Prevention, Detection, and Repair

8
Indisponibilidades Planejadas
Operating system and hardware upgrades -> Oracle RAC
Oracle Database patches -> Oracle RAC
Oracle Grid Infrastructure upgrades and patches -> Oracle RAC
Storage Migration -> Oracle ASM
Migrating to Exadata Storage -> Oracle MAA best practices
Upgrading Exadata Storage -> Exadata Patch Manager
Migrating a single-instance database to Oracle RAC -> Oracle Grid Infrastructure
Migrating to Oracle ASM -> Oracle Data Guard
Migrating a single-instance database to Oracle RAC -> Oracle Data Guard
Patch set and database upgrades -> Oracle Data Guard using SQL Apply
Oracle interim patches, Oracle clusterware upgrades and patches, Oracle ASM upgrades,
Operating System and Hardware Upgrades -> Oracle Data Guard Standby-First Patch Apply
Migration across Windows and Linux -> Oracle Data Guard
Platform migration across the same endian format platforms -> Transportable database
Platform migration across different endian format platforms -> Transportable tablespace
Patch set and database upgrades, platform migration, rolling upgrades, and when different
character sets are required -> Oracle GoldenGate and Oracle Streams
Application upgrades -> Online Application Maintenance and Upgrades

9
Indisponibilidades no Planejadas
Site Failures -> Oracle Data Guard
Site Failures -> Oracle GoldenGate and Oracle Streams
Site Failures -> Recovery Manager
Computer Failures -> Oracle Real Application Clusters and Oracle Clusterware
Computer Failures -> Oracle RAC One Node
Computer Failures -> Fast-Start Fault Recovery
Computer Failures -> Oracle Data Guard
Computer Failures -> Oracle GoldenGate and Oracle Streams
Storage Failures -> Oracle Automatic Storage Management
Storage Failures -> Oracle Data Guard
Storage Failures -> RMAN with Fast Recovery Area and Oracle Secure Backup
Storage Failures -> Oracle GoldenGate and Oracle Streams
Data Corruption -> Oracle Exadata Storage Server Software (Exadata Cell) and Oracle ASM
Data Corruption -> Corruption Prevention, Detection, and Repair
Data Corruption -> Data Recovery Advisor and RMAN with Fast Recovery Area
Data Corruption -> Oracle Data Guard
Data Corruption -> Oracle GoldenGate and Oracle Streams
Human Errors -> Oracle Security Features
Human Errors -> Oracle Flashback Technology
Human Errors -> LogMiner
Lost writes -> Oracle Data Guard, RMAN, DB_LOST_WRITE_PROTECT
Lost writes -> Oracle Data Guard Oracle Exadata Storage Server Software (Exadata Cell)
Hangs or slow down - Oracle Database and Oracle Enterprise Manager

10
Maiores informaes
High Availability Overview:
http://docs.oracle.com/database/121/HAOVW/toc.htm

High Availability Best Practices:


http://docs.oracle.com/database/121/HABPT/toc.htm

11
Oracle Data Guard: Evoluo

12
New Features Data Guard 10.1
Data Guard Broker Support for RAC
Automatic LogMiner Configuration
Log Miner Support for Index-Organized Tables
LogMiner Support for More Types: LONG, Multibyte CLOB and NCLOB
Fine-Grained Supplemental Logging
Secured Redo Transmission
Uniquely Named Databases with DB_UNIQUE_NAME
Simplified Zero Data Loss for Data Guard SQL Apply
Zero Downtime Instantiation for SQL Apply
Real Time Apply
Automating Recovery Through Open Resetlogs in Standby Databases

13
New Features Data Guard 10.2
Fast-Start Failover
Automatic Conversion of the Primary Database to a Standby Database Upon Failover
Optimized Asynchronous Redo Transmission
Faster Redo Apply Failover
Faster SQL Apply Failover
Additional Data Type Support in LogMiner and SQL Apply
Automatic Deletion of Applied Archive Logs
Data Guard: Improved Manageability for Redo Transport, Log Apply, and Broker
Easy Conversion of a Physical Standby Database to a Reporting Database
Flashback Across Data Guard Switchovers
Fine-Grained, Automated Tracking of SQL Apply Runtime Performance
Optimized Creation of Logical Standby Database

14
New Features Data Guard 11.1
Fast-Start Failover for Maximum Performance Mode
Compression of Redo Traffic (Only for Gap Resolution)
Real-Time Query Capability of Physical Standby Database
Fast Role Transitions in a Data Guard Configuration
User Configurable Conditions to Initiate Fast-Start Failover
Dynamic Setting of Oracle Data Guard SQL Apply Parameters
Enhanced Data Guard Broker Based Management Framework
Enhanced Data Guard Management Interface (Using SQL*Plus)
Histogram for Redo Transport Response Time
Snapshot Standby
Strong Authentication for Data Guard Redo Transport
Enhanced DDL Handling in Oracle Data Guard SQL Apply
Enhanced Oracle RAC Switchover Support for Logical Standby Databases
Oracle Scheduler Support in Data Guard SQL Apply
Fine-Grained Auditing (FGA) Support in Data Guard SQL Apply
Support Transparent Data Encryption (TDE) with Data Guard SQL Apply
Support XMLType Data Type (Only CLOB) in Data Guard SQL Apply
Virtual Private Database (VPD) Support in Data Guard SQL Apply
SMP Scalable Redo Apply
Archive Log Management Improvements

15
New Features Data Guard 11.2
Automatic Block Repair
Compressed Table Support in Logical Standby Databases and Oracle LogMiner
Configurable Real-Time Query Apply Lag Limit
Integrated Support for Application Failover in a Data Guard Configuration
Support Up to 30 Standby Databases
Universal Connection Pool (UCP) Integration with Oracle Data Guard
Enable Sampling for Active Data Guard
SQL Apply Support for Object Relational Model
SQL Apply Support for Binary XML

16
New Features Data Guard 12.1.0.1

Global Data Services (GDS)

Data Guard Support for Separation of Duty (SoD)

Advanced Data Guard Broker Manageability

Oracle Data Guard Broker Support for Cascaded Standby Databases

Fast Sync

Single Command Role Transitions

Real-Time Apply is Default Setting for Data Guard

Resumable Switchover Operations

Active Data Guard Enhanced Security

Active Data Guard Support for DML on Global Temporary Tables

Active Data Guard Support for Sequences

Active Data Guard Real-Time Cascade

Active Data Guard Far Sync

SQL Apply Extended Data Type Support (EDS)

SQL Apply Support for Objects, Collections, and XMLType

SQL Apply Support for XMLType

SQL Apply Support for SecureFiles LOBs

Data Guard Rolling Upgrade Support for Advanced Data Types

Data Guard Rolling Upgrade Support for XDB Repository

Disaster Protection During Database Rolling Upgrade

Oracle Advanced Queuing (AQ) Support for Data Guard Database Rolling Upgrade

Oracle Data Guard Broker Support for Database Rolling Upgrades

Oracle Scheduler Support for Data Guard Database Rolling Upgrade

Rolling Upgrade Using Active Data Guard

17
Oracle Data Guard - Conceitos

18
Configuraes
Primary database
Physical standby database
Logical standby database
Snapshot Standby Database

19
Servios
Redo Transport Services
Apply Services
Role Transitions

20
Role Transitions
Switchover
Switchback
Failover
Reinstate
Convert

21
Interfaces
Enterprise Manager / Grid Control / Cloud Control
DGMGRL
SQL*Plus
Initialization Parameters

22
Modos de Proteo
Maximum Performance
Maximum Availability
Maximum Protection

23
Tecnologias Complementares
Oracle RAC
Flashback Database
RMAN

24
Por que Data Guard?
Vantagens
Proteo contra desastres.
Completa proteo de dados.
Uso eficiente de recursos.
Flexibilidade entre disponibilidade e desempenho.
Flexibilidade entre configuraes.
Deteco e resoluo automtica de erros.
Gerenciamento simples e centralizado.
Integrao completa com Oracle Database.
Automatic role transitions.

Desvantagens
Maior complexidade do ambiente.
Maior custo de licenas.
Maior custo de equipamentos.
Maior custo de conhecimento.

25
Lab 1: Standby Manual

26
Lab 1.1: Standby Manual
Na mquina nerv01, crie um banco de dados com o nome SeuNome01.
$ dbca -silent -createDatabase -templateName New_Database.dbt -gdbName TERRA01
-sysPassword Nerv2014 -systemPassword Nerv2015 -characterset WE8ISO8859P1
-nationalCharacterSet AL16UTF16 -emConfiguration NONE -databaseType OLTP

Na mquina nerv01, coloque o banco de dados em modo ARCHIVELOG.

Na mquina nerv01, Habilite o FORCE LOGGING.


SQL> ALTER DATABASE FORCE LOGGING;

Na mquina nerv01, habilite o backup automtico de CONTROLFILE.


RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

Na mquina nerv01, execute um backup:


RMAN> BACKUP DATABASE;

Copie para a mquina nerv02 os BACKUPPIECEs criados pelo backup executado na


mquina nerv01, para qualquer diretrio.

Copie o SPFILE da mquina nerv01 para a mquina nerv02, em $ORACLE_HOME/dbs.

Na mquina nerv02, crie todos os diretrios utilizados por parmetros no SPFILE.

27
Lab 1.2: Standby Manual
Na mquina nerv02, inicie a instncia em NOMOUNT.
RMAN> STARTUP NOMOUNT;

Na mquina nerv02, restaure o CONTROLFILE.


RMAN> RESTORE CONTROLFILE FROM /home/oracle/o1_mf_s_775375054_7msfqgo1_.bkp;

Na mquina nerv02, altere a instncia para o estgio MOUNT.


RMAN> ALTER DATABASE MOUNT;

Na mquina nerv02, catalogue o BACKUPPIECE do BACKUP DATABASE.


RMAN> CATALOG BACKUPPIECE '/home/oracle/TAG20120216T055648.bkp';

Na mquina nerv02, restaure o banco de dados.


RMAN> RESTORE DATABASE;

Na mquina nerv02, abra a instncia em READ ONLY.


RMAN> ALTER DATABASE OPEN READ ONLY;
Por que no funciona?

Na mquina nerv02, execute RECOVER no banco de dados.


RMAN> RECOVER DATABASE;
Por que no funciona?

28
Lab 1.3: Standby Manual
Na mquina nerv01, verifique os ARCHIVED REDO LOGs gerados antes e depois do
BACKUP DATABASE.
RMAN> ALTER SYSTEM SWITCH LOGFILE;
RMAN> ALTER SYSTEM SWITCH LOGFILE;
RMAN> ALTER SYSTEM SWITCH LOGFILE;
RMAN> LIST ARCHIVELOG ALL;

Na mquina nerv01, copie os ARCHIVED REDO LOGs para a mquina nerv02, para qualquer
diretrio.

Na mquina nerv02, catalogue os ARCHIVED REDO LOGs copiados.


RMAN> CATALOG ARCHIVELOG '/home/oracle/o1_mf_1_70_7mshox4j_.arc';

Na mquina nerv02, execute RECOVER no banco de dados.


RMAN> RECOVER DATABASE;
Por que continua com erro?

Na mquina nerv02, abra a instncia em READ ONLY.


RMAN> ALTER DATABASE OPEN READ ONLY;

29
Lab 1.4: Standby Manual
Na mquina nerv01, gere mais ARCHIVED REDO LOGs
RMAN> ALTER SYSTEM SWITCH LOGFILE;
RMAN> ALTER SYSTEM SWITCH LOGFILE;
RMAN> ALTER SYSTEM SWITCH LOGFILE;

Na mquina nerv01, copie os ARCHIVED REDO LOGs para a mquina nerv02, para o mesmo
diretrio que est na mquina nerv01.

Na mquina nerv02, execute RECOVER no banco de dados.


RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP MOUNT;
RMAN> RECOVER DATABASE;
Por que continua com erro?

Na mquina nerv02, abra a instncia em READ ONLY.


RMAN> ALTER DATABASE OPEN READ ONLY;

30
Physical Standby

31
Por que?
Vantagens
Proteo contra desastres.
Proteo de dados.
Reduo da carga na produo (RMAN, Read only SQL).
Baixo impacto na Produo.

Desvantagens
Banco de dados disponvel apenas para leitura.
O Standby deve ser uma cpia exata da Produo.

32
Parmetros
COMPATIBLE (Todos)
CONTROL_FILE_RECORD_KEEP_TIME (Todos)
CONTROL_FILES (Todos)
DB_FILE_NAME_CONVERT (Physical Standby, Snapshot Standby)
DB_UNIQUE_NAME (Todos)
FAL_SERVER (Physical Standby, Snapshot Standby)
INSTANCE_NAME (Todos)
LOG_ARCHIVE_CONFIG (Todos)
LOG_ARCHIVE_DEST_n (Todos)
LOG_ARCHIVE_DEST_STATE_n (Todos) ENABLE, DEFER ou ALTERNATE.
LOG_ARCHIVE_FORMAT (Todos)
LOG_ARCHIVE_MAX_PROCESSES (Todos)
LOG_ARCHIVE_MIN_SUCCEED_DEST (Todos)
LOG_ARCHIVE_TRACE (Todos)
LOG_FILE_NAME_CONVERT (Physical Standby, Logical tandby, Snapshot Standby)
REMOTE_LOGIN_PASSWORDFILE (Todos)
SHARED_POOL_SIZE (Todos)
STANDBY_FILE_MANAGEMENT (Primary, Physical Standby, Snapshot Standby)

FAL_CLIENT (Physical Standby, Snapshot Standby) Obsolete

STANDBY_ARCHIVE_DEST (Physical Standby, Logical Standby, Snapshot Standby) Obsolete

LOG_ARCHIVE_LOCAL_FIRST (Primary, Snapshot Standby) Obsolete

33
LOG_ARCHIVE_DEST_n
AFFIRM / NOAFFIRM
ALTERNATE
COMPRESSION
DB_UNIQUE_NAME
DELAY
LOCATION and SERVICE
MANDATORY
MAX_CONNECTIONS
MAX_FAILURE
NET_TIMEOUT
NOREGISTER
REOPEN
SYNC / ASYNC
TEMPLATE
VALID_FOR

34
Lab 2: Physical Standby

35
Lab 2.1 (Cold Filesystem Backup)
Na mquina nerv01, crie uma entrada no /etc/hosts para a mquina nerv02.
Na mquina nerv02, crie uma entrada no /etc/hosts para a mquina nerv01.

Na mquina nerv01, crie um arquivo listener.ora e inicie-o.

Na mquina nerv01, crie uma entrada no tnsnames.ora para as instncias das mquinas nerv01 e
nerv02.
TERRA01=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=nerv01)
(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=TERRA01)(SERVER=DEDICATED)))
TERRA02=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=nerv02)
(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=TERRA02)(SERVER=DEDICATED)))

Na mquina nerv01, copie o tnsnames.ora para a mquina nerv02.


Na mquina nerv01, copie o listener.ora para a mquina nerv02.
Na mquina nerv02, corrija o listener.ora, e inicie o LISTENER.
Na mquina nerv02, veja qual o SERVICE que o LISTENER prov.

Na mquina nerv01, copie o PASSWORD FILE para a mquina nerv02.

Teste a resoluo de nomes (ping) e o Oracle Net (tnsping) entre as duas mquinas.
Por que no funciona?

Na mquina nerv02, passe a instncia ao estado SHUTDOWN.

36
Lab 2.2 (Cold Filesystem Backup)
Nas mquinas nerv01 e nerv02, crie um diretrio para armazenar ARCHIVED REDO LOGs.

Na mquina nerv01, altere os parmetros abaixo.


SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(TERRA01,TERRA02)';

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1= 'LOCATION=/home/oracle/archives/


VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=TERRA01';

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=


'SERVICE=TERRA02 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=TERRA02';

Na mquina nerv01, copie o SPFILE para a mquina nerv02.

Na mquina nerv01, crie um STANDBY CONTROLFILE.


SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/stbCF.ctl';

Na mquina nerv01, copie o STANDBY CONTROLFILE para a mquina nerv02, para os


locais indicados no SPFILE.

37
Lab 2.3 (Cold Filesystem Backup)
Na mquina nerv01, passe a instncia ao estado SHUTDOWN, e copie todos os DATAFILEs
para a mquina nerv02, para o mesmo diretrio da mquina nerv01.

Na mquina nerv02, inicie a instncia, deixando-a no estado NOMOUNT, e altere o seguinte


parmetro.
SQL> ALTER SYSTEM SET DB_UNIQUE_NAME=TERRA02 SCOPE=SPFILE;

Na mquina nerv02, reinicie a instncia, deixando-a em estado NOMOUNT.


Na mquina nerv02, veja qual o SERVICE que o LISTENER prov.

Na mquina nerv02, altere os seguintes parmetros.


SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1= 'LOCATION=/home/oracle/archives/
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=TERRA02';
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2= '';
SQL> ALTER SYSTEM SET FAL_SERVER=TERRA01;
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

Na mquina nerv01, inicie a instncia, deixando-a em estado OPEN.


Na mquina nerv01, gere alguns ARCHIVED REDO LOGs.

Nas mquinas nerv01 e nerv02, acompanhe o Alert Log.

38
Lab 2.4 (Cold Filesystem Backup)
Na mquina nerv02, passe a instncia ao estgio MOUNT.
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

Na mquina nerv02, inicie o RECOVER.


SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM
SESSION;

Nas mquinas nerv01 e nerv02, acompanhe o Alert Log.

Na mquina nerv01, gere alguns ARCHIVED REDO LOGs.

39
Checklist para Physical Standby

Modo ARCHIVELOG.
FORCE LOGGING.
Resoluo de nomes bilateral.
Resoluo de SQL*Net bilateral.
Autenticao via PASSWORD FILE.
Adequao de parmetros no PRIMARY.
Adequao de parmetros no STANDBY.
Criao e cpia de STANDBY CONTROLFILE.
Backup e Restore.
No Physical Standby, MOUNT em modo STANDBY DATABASE.
Criao de STANDBY REDO LOGs.
No Physical Standby, execuo de RECOVER MANAGED STANDBY.

40
Lab 3.1 (User Managed Backup)
Na mquina nerv02, passe a instncia ao estgio SHUTDOWN.

Na mquina nerv01, crie um STANDBY CONTROLFILE.


SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/stbCF.ctl';

Na mquina nerv01, copie o STANDBY CONTROLFILE para a mquina nerv02, para os


locais indicados no SPFILE.

Na mquina nerv01, passe o banco de dados ao modo BEGIN BACKUP.


SQL> ALTER DATABASE BEGIN BACKUP;

Na mquina nerv01, copie por scp todos os DATAFILEs.

Na mquina nerv01, finalize o modo BEGIN BACKUP.


SQL> ALTER DATABASE END BACKUP;

41
Lab 3.2 (User Managed Backup)
Na mquina nerv02, inicie a instncia, deixando-a em estado NOMOUNT;

Na mquina nerv02, passe a instncia ao estgio MOUNT.


SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

Na mquina nerv02, inicie o RECOVER.


SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM
SESSION;

Nas mquinas nerv01 e nerv02, acompanhe o Alert Log.

Na mquina nerv01, gere alguns ARCHIVED REDO LOGs.

42
Lab 4.1 (RMAN Hot Backup)
Na mquina nerv02, passe a instncia ao estgio SHUTDOWN.

Na mquina nerv01, crie um STANDBY CONTROLFILE.


SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/stbCF.ctl';

Na mquina nerv01, copie o STANDBY CONTROLFILE para a mquina nerv02, para os


locais indicados no SPFILE.

Na mquina nerv01, execute um backup do banco de dados pelo RMAN.


RMAN> BACKUP DATABASE;

Copie para a mquina nerv02 os BACKUPPIECEs criados pelo backup executado na


mquina nerv01, para qualquer diretrio.

43
Lab 4.2 (RMAN Hot Backup)
Na mquina nerv02, inicie a instncia em NOMOUNT.
RMAN> STARTUP NOMOUNT;

Na mquina nerv02, altere a instncia para o estgio MOUNT.


SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

Na mquina nerv02, catalogue o BACKUP PIECE do BACKUP DATABASE.


RMAN> CATALOG BACKUPPIECE '/home/oracle/TAG20120216T055648.bkp';

Na mquina nerv02, restaure o banco de dados.


RMAN> RESTORE DATABASE;

Na mquina nerv02, inicie o RECOVER.


SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM
SESSION;

Nas mquinas nerv01 e nerv02, acompanhe o Alert Log.

Na mquina nerv01, gere alguns ARCHIVED REDO LOGs.

44
Lab 5.1 (RMAN Duplication)
Na mquina nerv02, passe a instncia ao estgio SHUTDOWN.

Na mquina nerv01, execute um backup do banco de dados pelo RMAN.


RMAN> BACKUP DATABASE;

Copie para a mquina nerv02 os BACKUPPIECEs criados pelo backup executado na


mquina nerv01, para os mesmos diretrios.
$ scp -Cr /u01/app/oracle/fast_recovery_area/* nerv02:/u01/app/oracle/fast_recovery_area/

Na mquina nerv02, reinicie a instncia, deixando-a em estado NOMOUNT.


SQL> STARTUP NOMOUNT;

Na mquina nerv01, conecte-se com RMAN das duas instncias e execute a duplicao.
$ rman TARGET / AUXILIARY=SYS/Nerv2015@TERRA02
RMAN> DUPLICATE TARGET DATABASE FOR STANDBY DORECOVER
NOFILENAMECHECK;

45
Lab 5.2 (RMAN Duplication)
Na mquina nerv02, altere os seguintes parmetros.
SQL> ALTER SYSTEM SET DB_UNIQUE_NAME=TERRA02 SCOPE=SPFILE;

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1= 'LOCATION=/home/oracle/archives/


VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=TERRA02' SCOPE=SPFILE;

SQL> ALTER SYSTEM SET FAL_SERVER=TERRA01 SCOPE=SPFILE;

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO SCOPE=SPFILE;

Na mquina nerv02, reinicie a instncia, deixando-a em estado NOMOUNT;

Na mquina nerv02, passe a instncia ao estgio MOUNT.


SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

Na mquina nerv02, inicie o RECOVER.


SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM
SESSION;

Nas mquinas nerv01 e nerv02, acompanhe o Alert Log.

Na mquina nerv01, gere alguns ARCHIVED REDO LOGs.

46
Lab 6.1 (RMAN Active Duplication)
Na mquina nerv02, passe a instncia ao estgio SHUTDOWN.

Na mquina nerv02, reinicie a instncia, deixando-a em estado NOMOUNT.


SQL> STARTUP NOMOUNT;

Na mquina nerv01, conecte-se com RMAN das duas instncias e execute a duplicao.
$ rman TARGET SYS/Nerv2015 AUXILIARY=SYS/Nerv2015@TERRA02
RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE
DORECOVER NOFILENAMECHECK;

47
Lab 6.2 (RMAN Active Duplication)
Na mquina nerv02, altere os seguintes parmetros.
SQL> ALTER SYSTEM SET DB_UNIQUE_NAME=TERRA02 SCOPE=SPFILE;

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1= 'LOCATION=/home/oracle/archives/


VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=TERRA02' SCOPE=SPFILE;

SQL> ALTER SYSTEM SET FAL_SERVER=TERRA01 SCOPE=SPFILE;

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO SCOPE=SPFILE;

Na mquina nerv02, passe a instncia ao estgio MOUNT.


SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

Na mquina nerv02, inicie o RECOVER.


SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM
SESSION;

Nas mquinas nerv01 e nerv02, acompanhe o Alert Log.

Na mquina nerv01, gere alguns ARCHIVED REDO LOGs.

48
Modos de Proteo

49
Modos de Proteo
- Maximum Performance (NOAFFIRM, ASYNC)
- Maximum Availability (AFFIRM, SYNC)
- Maximum Protection (AFFIRM, SYNC)

50
Lab 7.1: Modos de Proteo
Nas mquinas nerv01 e nerv02, acompanhe o Alert Log durante este Lab.

Na mquina nerv02, adicione STANDBY REDO LOGs.


SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 52428800;


SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 52428800;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 52428800;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 52428800;

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM


SESSION;

51
Lab 7.2: Modos de Proteo
Na mquina nerv01, verifique qual o PROTECTION MODE atual.
SQL> SELECT PROTECTION_MODE FROM V$DATABASE;

Na mquina nerv01, crie uma tabela de testes e duplique-a 8 vezes, contando o tempo.
SQL> SET TIMING ON
SQL> CREATE TABLE T AS SELECT * FROM ALL_OBJECTS;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> COMMIT;

52
Lab 7.3: Modos de Proteo
Na mquina nerv01, altere o PROTECTION MODE.
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=
'SERVICE=TERRA02 SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=TERRA02';
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;

Na mquina nerv01, verifique qual o PROTECTION MODE atual.


SQL> SELECT PROTECTION_MODE FROM V$DATABASE;

Na mquina nerv01, remova a tabela teste e refaa o teste, comparando o tempo.


SQL> SET TIMING ON
SQL> DROP TABLE T;
SQL> CREATE TABLE T AS SELECT * FROM ALL_OBJECTS;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> COMMIT;

53
Lab 7.4: Modos de Proteo
Na mquina nerv01, altere o PROTECTION MODE.
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION;

Na mquina nerv01, verifique qual o PROTECTION MODE atual.


SQL> SELECT PROTECTION_MODE FROM V$DATABASE;

Na mquina nerv01, remova a tabela teste e refaa o teste, comparando o tempo.


SQL> SET TIMING ON
SQL> DROP TABLE T;
SQL> CREATE TABLE T AS SELECT * FROM ALL_OBJECTS;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> INSERT INTO T SELECT * FROM T;
SQL> COMMIT;

54
Lab 7.5: Modos de Proteo
Na mquina nerv02, execute SHUTDOWN IMMEDIATE.
Por que no funciona?

Na mquina nerv02, execute SHUTDOWN ABORT.

Na mquina nerv01, execute uma operao de teste.


SQL> DROP TABLE T;
Por que no funciona?

Na mquina nerv01, abra outra sesso e altere o PROTECTION MODE.


SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=
'SERVICE=TERRA02 ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=TERRA02';
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;
Por que no funciona?

Altere o modo de proteo para MAXIMIZE PERFORMANCE.


Depois, reinicie a mquina nerv02 e o RECOVER.

55
Switchover

56
Lab 8.1: Switchover
Na mquina nerv01, altere os seguintes parmetros.
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
SQL> ALTER SYSTEM SET FAL_SERVER=TERRA02;

Na mquina nerv02, altere os seguintes parmetros.


SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=TERRA01 ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=TERRA01';

Na mquina nerv01, verifique a possibilidade de SWITCHOVER e o execute.


SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION
SHUTDOWN;
SQL> SHUTDOWN ABORT;
SQL> STARTUP NOMOUNT;
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

Na mquina nerv01, verifique a possibilidade de SWITCHOVER.


SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

Na mquina nerv02, verifique a possibilidade de SWITCHOVER e o execute.


SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
SQL> ALTER DATABASE OPEN;

57
Lab 8.2: Switchover
Na mquina nerv01, inicie o RECOVER como um STANDBY.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM
SESSION;

Na mquina nerv01, adicione STANDBY REDO LOGs.


SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 52428800;


SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 52428800;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 52428800;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 52428800;

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM


SESSION;

Na mquina nerv02, gere alguns ARCHIVED REDO LOGs e acompanhe o Alert Log.

58
Switchback

59
Lab 9.1: Switchback
Na mquina nerv02, verifique a possibilidade de SWITCHOVER e o execute.
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION
SHUTDOWN;
SQL> SHUTDOWN ABORT;
SQL> STARTUP NOMOUNT;
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

Na mquina nerv02, verifique a possibilidade de SWITCHOVER.


SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

Na mquina nerv01, verifique a possibilidade de SWITCHOVER e o execute.


SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
SQL> ALTER DATABASE OPEN;

Na mquina nerv02, inicie o RECOVER como um STANDBY.


SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Na mquina nerv01, gere alguns ARCHIVED REDO LOGs e acompanhe o Alert Log.

60
Lab 9.2: Switchback
Na mquina nerv01, execute o SWITCHOVER com a sintaxe 12c.
SQL> ALTER DATABASE SWITCHOVER TO TERRA02 VERIFY;
SQL> ALTER DATABASE SWITCHOVER TO TERRA02;
SQL> STARTUP NOMOUNT;
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM
SESSION;

Na mquina nerv02, finalize o SWITCHOVER.


SQL> ALTER DATABASE OPEN;

Na mquina nerv02, execute o SWITCHBACK com a sintaxe 12c.


SQL> ALTER DATABASE SWITCHOVER TO TERRA01 VERIFY;
SQL> ALTER DATABASE SWITCHOVER TO TERRA01;
SQL> STARTUP NOMOUNT;
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM
SESSION;

Na mquina nerv01, finalize o SWITHBACK.


SQL> ALTER DATABASE OPEN;

61
Failover

62
Lab 10.1: Failover
Na mquina nerv01, habilite o FLASHBACK (necessrio para o REINSTATE).
SQL> ALTER DATABASE FLASHBACK ON;

Na mquina nerv01, desligue a instncia e o LISTENER.


SQL> SHUTDOWN ABORT;

Na mquina nerv02, cancele o RECOVER.


SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;

63
Lab 10.2: Failover
Na mquina nerv02, verifique a possibilidade de FAILOVER.
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

Na mquina nerv02, se o FAILOVER for possvel, execute:


SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION
SHUTDOWN;
SQL> ALTER DATABASE OPEN;

Na mquina nerv02, se o FAILOVER no for possvel, execute:


SQL> ALTER DATABASE ACTIVATE PHYSICAL STANDBY DATABASE;
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION
SHUTDOWN;
SQL> ALTER DATABASE OPEN;

64
Reinstate

65
Lab 11.1: Reinstate
Na mquina nerv01, volte a um SCN mais antigo que o FAILOVER.
SQL> STARTUP MOUNT;
SQL> FLASHBACK DATABASE TO SCN 912044;

Na mquina nerv01, converta o banco de dados para PHYSICAL STANDBY.


SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP NOMOUNT;
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM
SESSION;

Depois de concluir o Reinstate, execute o Switchback.

66
Logical Standby

67
Logical Standby

68
Por que?
Vantagens
Proteo contra tipos de falhas adicionais.
Uso eficiente de recursos.
Distribuio de carga.
Otimizao para relatrios e requerimentos de suporte a decises.
Minimizar tempo de parada durante upgrades.

Desvantagens
Diversas limitaes de tipos de dados.
Diversas limitaes de comandos SQL.
Aplicao do comando SQL, e no do REDO LOG.

69
Tipos de dados no suportados
BFILE
ROWID, UROWID
Collections (including VARRAYs and nested tables)
Objects with nested tables and REFs
Spatial type MDSYS.SDO_GEORASTER
Spatial type MDSYS.SDO_TOPO_GEOMETRY
Identity columns

70
Comandos SQL ignorados
ALTER DATABASE
ALTER MATERIALIZED VIEW
ALTER MATERIALIZED VIEW LOG
ALTER SESSION
ALTER SYSTEM
CREATE CONTROL FILE
CREATE DATABASE
CREATE DATABASE LINK
CREATE PFILE FROM SPFILE
CREATE MATERIALIZED VIEW
CREATE MATERIALIZED VIEW LOG
CREATE SCHEMA AUTHORIZATION
CREATE SPFILE FROM PFILE
DROP DATABASE LINK
DROP MATERIALIZED VIEW
DROP MATERIALIZED VIEW LOG
EXPLAIN
LOCK TABLE
SET CONSTRAINTS
SET ROLE
SET TRANSACTION

71
Controle
SQL> EXECUTE DBMS_LOGSTDBY.SKIP (STMT => 'DML', SCHEMA_NAME => 'HR',
OBJECT_NAME => 'EMPLOYEES');

SQL> EXECUTE DBMS_LOGSTDBY.SKIP (STMT => 'SCHEMA_DDL', SCHEMA_NAME => 'HR',


OBJECT_NAME => 'EMPLOYEES');

SQL> EXECUTE DBMS_LOGSTDBY.UNSKIP(STMT => 'DML', SCHEMA_NAME => 'HR',


OBJECT_NAME => 'EMPLOYEES');

SQL> EXECUTE DBMS_LOGSTDBY.UNSKIP(STMT => 'SCHEMA_DDL', SCHEMA_NAME =>


'HR', OBJECT_NAME => 'EMPLOYEES');

72
Adaptaes
SQL> ALTER DATABASE STOP LOGICAL STANDBY APPLY;
SQL> ALTER SESSION DISABLE GUARD;
SQL> CREATE INDEX EMP_SOUNDEX ON SCOTT.EMP(SOUNDEX(ENAME));
SQL> ALTER SESSION ENABLE GUARD;
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;

73
Views
DBA_LOGSTDBY_EVENTS
DBA_LOGSTDBY_HISTORY
DBA_LOGSTDBY_LOG
DBA_LOGSTDBY_NOT_UNIQUE
DBA_LOGSTDBY_PARAMETERS
DBA_LOGSTDBY_SKIP
DBA_LOGSTDBY_SKIP_TRANSACTION
DBA_LOGSTDBY_UNSUPPORTED
V$LOGSTDBY_PROCESS
V$LOGSTDBY_PROGRESS
V$LOGSTDBY_STATE
V$LOGSTDBY_STATS
V$LOGSTDBY_TRANSACTION

74
Lab 12: Logical Standby

75
Lab 12.1: Logical Standby
Na mquina nerv01, crie uma entrada no /etc/hosts para a mquina nerv03.
Na mquina nerv02, crie uma entrada no /etc/hosts para a mquina nerv03.
Na mquina nerv03, crie uma entrada no /etc/hosts para a mquina nerv01.
Na mquina nerv03, crie uma entrada no /etc/hosts para a mquina nerv02.

Na mquina nerv01, crie uma entrada no tnsnames.ora (TERRA03) para a instncia da


mquina nerv03.
Na mquina nerv01, copie o tnsnames.ora para a mquina nerv03.
Na mquina nerv01, copie o tnsnames.ora para a mquina nerv02.

Na mquina nerv01, copie o listener.ora para a mquina nerv03.

Na mquina nerv03, corrija o listener.ora, e inicie o LISTENER.

Na mquina nerv01, copie o PASSWORD FILE para a mquina nerv03.

Na mquina nerv03, crie um diretrio para armazenar ARCHIVED REDO LOGs.

Teste a resoluo de nomes (ping) e o Oracle Net (tnsping) entre as trs mquinas.
Por que no funciona?

76
Lab 12.2: Logical Standby
Na mquina nerv01, copie o SPFILE para a mquina nerv03.

Na mquina nerv03, crie todos os diretrios mencinados em parmetros do SPFILE.

Na mquina nerv03, reinicie a instncia, deixando-a em estado NOMOUNT.


SQL> STARTUP NOMOUNT;
SQL> ALTER SYSTEM SET SERVICE_NAMES=TERRA03 SCOPE=SPFILE;
SQL> ALTER SYSTEM SET DB_UNIQUE_NAME=TERRA03 SCOPE=SPFILE;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP NOMOUNT;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/archives/
VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=TERRA03';
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=TERRA01 ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=TERRA01';
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_3='LOCATION=/home/oracle/archives_stb/
VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=TERRA03';
SQL> ALTER SYSTEM SET FAL_SERVER=TERRA01;

77
Lab 12.3: Logical Standby
Na mquina nerv01, conecte-se com RMAN das duas instncias e execute a duplicao.
$ rman TARGET SYS/Nerv2015 AUXILIARY=SYS/Nerv2015@TERRA03
RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE
DORECOVER NOFILENAMECHECK;

Na mquina nerv01, habilite o terceiro local de archives.


SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_3='SERVICE=TERRA03 ASYNC NOAFFIRM
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=TERRA03';
Por que no funciona?

Na mquina nerv03, habilite o RECOVER e espere a instncia estar sincronizada.


SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP NOMOUNT;
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 52428800;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 52428800;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 52428800;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 52428800;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM
SESSION;

78
Lab 12.4: Logical Standby
Aps a mquina nerv03 estar sincronizada, cancele o RECOVER.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Na mquina nerv01, crie um dicionrio dos dados dos REDO LOGs.


SQL> EXECUTE DBMS_LOGSTDBY.BUILD;

Na mquina nerv03, faa a converso para LOGICAL STANDBY.


SQL> ALTER DATABASE RECOVER TO LOGICAL STANDBY BI;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE OPEN RESETLOGS;
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;

Verifique a View V$LOGSTDBY_PROGRESS.

79
Lab 12.5: Logical Standby
Na mquina nerv01, crie uma tabela de teste.
$ sqlplus / AS SYSDBA
SQL> DROP TABLE T;
SQL> CREATE TABLE T AS SELECT * FROM ALL_OBJECTS;
SQL> SELECT COUNT(*) FROM T;

Na mquina nerv03, confira a tabela criada.


SQL> SELECT COUNT(*) FROM T;
Por que no funciona?

Na mquina nerv01, crie uma tabela de teste com o usurio SCOTT.


$ sqlplus / AS SYSDBA
SQL> CREATE USER SCOTT IDENTIFIED BY TIGER ACCOUNT UNLOCK;
SQL> ALTER USER SCOTT QUOTA UNLIMITED ON USERS;
SQL> GRANT CONNECT, RESOURCE TO SCOTT;
SQL> CONN SCOTT/TIGER
SQL> CREATE TABLE T AS SELECT * FROM ALL_OBJECTS;
SQL> SELECT COUNT(*) FROM T;

80
Active Data Guard

81
Lab 13.1: Active Data Guard
Na mquina nerv02, cancele o RECOVER, e abra o banco de dados para leitura.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> ALTER DATABASE OPEN;
SQL> SELECT OPEN_MODE FROM V$DATABASE;

Na mquina nerv02, verifique se o banco de dados est acessvel para leitura.


SQL> CONN SCOTT/TIGER
SQL> SELECT COUNT(*) FROM T;

Na mquina nerv01, faa uma alterao na tabela de testes.


SQL> CONN SCOTT/TIGER
SQL> INSERT INTO T SELECT * FROM T;
SQL> SELECT COUNT(*) FROM T;

Na mquina nerv02, verifique que a alterao ainda no foi feita.


SQL> CONN SCOTT/TIGER
SQL> SELECT COUNT(*) FROM T;

82
Lab 13.2: Active Data Guard
Na mquina nerv02, inicie o RECOVER, com o banco de dados para leitura.
SQL> CONN / AS SYSDBA
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT
LOGFILE DISCONNECT;
SQL> SELECT OPEN_MODE FROM V$DATABASE;

Na mquina nerv02, verifique que a alterao agora foi feita.


SQL> CONN SCOTT/TIGER
SQL> SELECT COUNT(*) FROM T;

83
Snapshot Standby

84
Por que?
Vantagen
Reduo dos tempos de Refresh (Pr-produo, Homologao, Desenvolvimento).
Garantia da integridade dos ambientes de homologao e testes.

Desvantagens
Maior espao em disco necessrio, para Archives e Fast Recovery Area.
Necessria estrutura de banco de dados igual ao da Produo
Perda de alteraes aps converso para Physical Standby.
Maior tempo de RECOVER necessrio, em caso de utilizao para Disaster Recovery.

85
Lab 14.1: Snapshot Standby
Na mquina nerv02, cancele o RECOVER, e abra o banco de dados para leitura.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP NOMOUNT;
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
SQL> ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;
SQL> ALTER DATABASE OPEN;

Na mquina nerv01, gere vrios ARCHIVEs, e veja se so aplicados na mquina nerv02.

Na mquina nerv02, faa uma alterao na tabela de testes.


SQL> CONN SCOTT/TIGER
SQL> SELECT COUNT(*) FROM T;
SQL> TRUNCATE TABLE T;
SQL> SELECT COUNT(*) FROM T;

Na mquina nerv02, reverta o SNAPSHOT STANDBY para PHYSICAL STANDBY.


SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP NOMOUNT;
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

86
Lab 14.2: Snapshot Standby
Na mquina nerv02, verifique que a alterao agora foi feita.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> ALTER DATABASE OPEN;
SQL> CONN SCOTT/TIGER
SQL> SELECT COUNT(*) FROM T;

Na mquina nerv02, retorne a aplicao de ARCHIVEs.


SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP NOMOUNT;
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM
SESSION;

87
Cascade Standby

88
Lab 15.1: Cascade Standby
Na mquina nerv01, cancele o envio de REDO LOG para a mquina nerv03.

Na mquina nerv02, habilite o envio de REDO LOG para a mquina nerv03.


Por que no funciona?

Na mquina nerv03, altere o FAL_SERVER para a mquina nerv02.

Na mquina nerv01, gere vrios ARCHIVEs, e veja se so aplicados na mquina nerv03.

Na mquina nerv01, faa uma alterao na tabela de testes e veja se propagada para a
mquina nerv03.

Volte configurao anterior, sem o Cascaded Standby.

Na mquina nerv01, gere vrios ARCHIVEs, e veja se so aplicados na mquina nerv03.

89
Far Sync

90
Far Sync

91
Lab 16.1: Far Sync
Na mquina nerv01, crie uma entrada no /etc/hosts para a mquina nerv04.
Na mquina nerv02, crie uma entrada no /etc/hosts para a mquina nerv04.
Na mquina nerv03, crie uma entrada no /etc/hosts para a mquina nerv04.
Na mquina nerv04, crie uma entrada no /etc/hosts para a mquina nerv01.
Na mquina nerv04, crie uma entrada no /etc/hosts para a mquina nerv02.
Na mquina nerv04, crie uma entrada no /etc/hosts para a mquina nerv01.

Na mquina nerv01, crie uma entrada no tnsnames.ora para a instncia da mquina nerv04.
Na mquina nerv01, copie o tnsnames.ora para a mquina nerv02.
Na mquina nerv01, copie o tnsnames.ora para a mquina nerv03.
Na mquina nerv01, copie o tnsnames.ora para a mquina nerv04.

Na mquina nerv01, copie o listener.ora para a mquina nerv04.


Na mquina nerv04, corrija o listener.ora, e inicie o LISTENER.

Na mquina nerv01, copie o PASSWORD FILE para a mquina nerv04.

Na mquina nerv04, crie um diretrio para armazenar ARCHIVED REDO LOGs.

Teste a resoluo de nomes (ping) e o Oracle Net (tnsping) entre as trs mquinas.
Por que no funciona?

92
Lab 16.2: Far Sync
Na mquina nerv01, crie um FAR SYNC STANDBY CONTROLFILE, e copie para a mquina
nerv04, para a localizao dos CONTROLFILEs.
SQL> ALTER DATABASE CREATE FAR SYNC INSTANCE CONTROLFILE AS '/tmp/STBFS.ctl';

Na mquina nerv01, cancele a replicao para a mquina nerv02, e habilite o envio para a
mquina nerv04.
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='';
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_4='SERVICE=TERRA04 ASYNC NOAFFIRM
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=TERRA04';
Por que no funciona?

93
Lab 16.2: Far Sync
Na mquina nerv04, habilite a replicao para a mquina nerv02.
SQL> STARTUP NOMOUNT;
SQL> ALTER SYSTEM SET SERVICE_NAMES=TERRA04 SCOPE=SPFILE;
SQL> ALTER SYSTEM SET DB_UNIQUE_NAME=TERRA04 SCOPE=SPFILE;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP NOMOUNT;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/archives/
VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=TERRA04';
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=TERRA02 ASYNC
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=TERRA02';
SQL> ALTER SYSTEM SET FAL_SERVER=TERRA01;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 52428800;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 52428800;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 52428800;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 52428800;

Na mquina nerv02, altere a solicitao de ARCHIVEs para a mquina nerv04.


SQL> ALTER SYSTEM SET FAL_SERVER=TERRA04;

94
Data Guard Broker

95
Data Guard Broker

96
Data Guard Broker

97
Componentes Data Guard Broker

98
Bystander Standby Databases

99
Lab 17.1: Data Guard Broker
Habilite o FLASHBACK DATABASE em todos os bancos de dados.

Adicione uma entrada esttica para o Data Guard Broker no listener.ora de cada mquina.

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = nerv01.localdomain)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = TERRA01_DGMGRL)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0.2/db_1)
(SID_NAME = TERRA01)
)
)

ADR_BASE_LISTENER = /u01/app/oracle

100
Lab 17.2: Data Guard Broker
Na mquina nerv01, habilite o Data Guard Broker.
[oracle@nerv01 ~]$ dgmgrl SYS/Nerv2015@TERRA01
DGMGRL> CREATE CONFIGURATION 'DRSolution' AS PRIMARY DATABASE IS TERRA01
CONNECT IDENTIFIER IS TERRA01;
Por que no funciona?

Na mquina nerv01, adicione as outras mquinas da configurao.


DGMGRL> ADD DATABASE TERRA02 AS CONNECT IDENTIFIER IS TERRA02;
DGMGRL> ADD DATABASE TERRA03 AS CONNECT IDENTIFIER IS TERRA03;

Na mquina nerv01, verifique a configurao.


DGMGRL> SHOW CONFIGURATION;

Na mquina nerv01, habilite a configurao.


DGMGRL> ENABLE CONFIGURATION;

Na mquina nerv01, verifique a configurao.


DGMGRL> SHOW CONFIGURATION;

101
Lab 17.3: Data Guard Broker
Na mquina nerv01, verifique detalhes de um banco de dados.
DGMGRL> SHOW DATABASE VERBOSE TERRA01;
DGMGRL> EDIT DATABASE TERRA01 SET PROPERTY 'ArchiveLagTarget'=1200;
DGMGRL> SHOW DATABASE TERRA01 'ArchiveLagTarget';

Na mquina nerv01, altere o Protection Mode.


DGMGRL> EDIT DATABASE TERRA02 SET PROPERTY 'LogXptMode'='SYNC';
DGMGRL> EDIT DATABASE TERRA03 SET PROPERTY 'LogXptMode'='SYNC';
Voc pode alterar estes parmetros com ALTER SYSTEM SET?
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;

Na mquina nerv01, verifique se o Protection Mode foi alterado.


DGMGRL> SHOW CONFIGURATION;

102
Lab 17.4: Data Guard Broker
Na mquina nerv01, simule uma manuteno do ambiente.
DGMGRL> EDIT DATABASE TERRA03 SET STATE='APPLY-OFF';
DGMGRL> EDIT DATABASE TERRA02 SET STATE='APPLY-OFF';
DGMGRL> EDIT DATABASE TERRA01 SET STATE=TRANSPORT-OFF;
Por que no funciona?

Na mquina nerv01, simule o fim da manuteno do ambiente.


DGMGRL> EDIT DATABASE TERRA01 SET STATE=TRANSPORT-ON;
DGMGRL> EDIT DATABASE TERRA03 SET STATE='APPLY-ON';
DGMGRL> EDIT DATABASE TERRA02 SET STATE='APPLY-ON;

Na mquina nerv03, simule uma indisponibilidade no planejada, sempre acompanhando os


Alert Logs.
SQL> SHUTDOWN ABORT;
SQL> STARTUP;

Na mquina nerv02, simule uma indisponibilidade no planejada, sempre acompanhando os


Alert Logs.
SQL> SHUTDOWN ABORT;
SQL> STARTUP;

103
Lab 17.5: Data Guard Broker
Na mquina nerv01, se no tiver nenhum erro, execute Switchover para a mquina nerv02.
DGMGRL> SHOW CONFIGURATION;
DGMGRL> SWITCHOVER TO TERRA02;

Na mquina nerv01, se no tiver nenhum erro, execute Switchover para a mquina nerv01.
DGMGRL> SHOW CONFIGURATION;
DGMGRL> SWITCHOVER TO TERRA01;

Na mquina nerv01, se no tiver nenhum erro, execute Switchover para a mquina nerv03.
DGMGRL> SHOW CONFIGURATION;
DGMGRL> SWITCHOVER TO TERRA03;
Por que no funciona?

Na mquina nerv01, se no tiver nenhum erro, execute Switchover para a mquina nerv01.
DGMGRL> SHOW CONFIGURATION;
DGMGRL> SWITCHOVER TO TERRA01;
O que aconteceu?

Para corrigir, recrie o Physical Standby na mquina, nerv02, e a reabilite no Broker.


DGMGRL> REMOVE DATABASE TERRA02;
DGMGRL> ADD DATABASE TERRA02 AS CONNECT IDENTIFIER IS TERRA02;
DGMGRL> ENABLE DATABASE TERRA02;

104
Lab 17.6: Data Guard Broker
A partir da mquina nerv01, converta o banco de dados da mquina nerv02 para SNAPSHOT
STANDBY.
[oracle@nerv01 ~]$ dgmgrl SYS/Nerv2014@TERRA02
DGMGRL> CONVERT DATABASE TERRA02 TO SNAPSHOT STANDBY;

Na mquina nerv01, se no tiver nenhum erro, execute Switchover para a mquina nerv02.
DGMGRL> SWITCHOVER TO TERRA02;
Por que no funciona?

Converta o banco de dados da mquina nerv02 de volta para PHYSICAL STANDBY.


DGMGRL> CONVERT DATABASE TERRA02 TO PHYSICAL STANDBY;

105
Lab 17.7: Data Guard Broker
Na mquina nerv01, simule uma indisponibilidade no planejada.
SQL> SHUTDOWN ABORT;

Na mquina nerv02, execute FAILOVER para a mquina nerv02.


[oracle@nerv02 ~]$ dgmgrl SYS/Nerv2014@TERRA02
DGMGRL> FAILOVER TO TERRA02;
DGMGRL> SHOW CONFIGURATION;

Reative a instncia na mquina nerv01.

EXECUTE o REISNTATE do banco da mquina nerv01.


DGMGRL> REINSTATE DATABASE TERRA01;

EXECUTE o REISNTATE do banco da mquina nerv03.


DGMGRL> REINSTATE DATABASE TERRA03;

Faa o SWITCHOVER de volta para a mquina nerv01.

106
Fast-Start Failover

107
Lights out administration

108
Lights out administration

Produo:
srvctl add service -d TERRA01 -s OLTP -l PRIMARY -w 1 -z 10
srvctl add service -d TERRA01 -s OLAP -l PHYSICAL_STANDBY -w 1 -z 10

Standby:
srvctl add service -d TERRA02 -s OLTP -l PRIMARY -w 1 -z 10
srvctl add service -d TERRA02 -s OLAP -l PHYSICAL_STANDBY -w 1 -z 10

Client tnsnames.ora:
OLTP =
(DESCRIPTION=
(LOAD_BALANCE=OFF)
(FAILOVER=ON)
(ADDRESS=(PROTOCOL=TCP)(HOST=nerv01)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=nerv02)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=OLTP))
)

Failover pela aplicao:


SQL> DBMS_DG.INITIATE_FS_FAILOVER

109
Lab 18.1: Fast-Start Failover
Confira se os bancos da mquina nerv01 e nerv02 esto com FLASHBACK ativado.

Na mquina nerv01, configure o Fast-Start Failover.


DGMGRL> EDIT CONFIGURATION SET PROPERTY FastStartFailoverLagLimit=600;
DGMGRL> EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold = 30;
DGMGRL> EDIT CONFIGURATION SET PROPERTY FastStartFailoverAutoReinstate = TRUE;
DGMGRL> EDIT CONFIGURATION SET PROPERTY FastStartFailoverPmyShutdown = TRUE;
DGMGRL> EDIT DATABASE TERRA01 SET PROPERTY FastStartFailoverTarget=TERRA02;
DGMGRL> ENABLE FAST_START FAILOVER;
DGMGRL> SHOW CONFIGURATION;
DGMGRL> SHOW FAST_START FAILOVER;

Copie o tnsnames.ora da mquina nerv01 para o Client na mquina nerv04.

Na mquina nerv04, conecte-se na mquina nerv02 e inicie o OBSERVER.


oracle@nerv04 ~]$ dgmgrl SYS/Nerv2014@TERRA02
DGMGRL> START OBSERVER;

110
Lab 18.2: Fast-Start Failover
Na mquina nerv01, simule uma indisponibilidade no planejada.
SQL> SHUTDOWN ABORT;

Inicie novamente a instncia da mquina nerv01.

Execute o SWITCHOVER de volta para a mquina nerv01.

Verifique a View V$FS_FAILOVER_STATS.

111
Lab 18.3: Fast-Start Failover
Na mquina nerv01, verifique as condies de Fast-Start Failover:
DGMGRL> SHOW FAST_START FAILOVER;

Habilite mais uma condio.


DGMGRL> ENABLE FAST_START FAILOVER CONDITION "Stuck Archiver"

Simule a condio de falha de gravao de ARCHIVEs.


SQL> ALTER SYSTEM SET log_archive_dest_1='LOCATION=/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=TERRA01';
SQL> ALTER SYSTEM SWITCH LOGFILE;

Aps o FAILOVER, inicie novamente a instncia da mquina nerv01.


SQL> STARTUP NOMOUNT;
SQL> ALTER SYSTEM SET log_archive_dest_1='LOCATION=/home/oracle/archives/
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=TERRA01';

Execute o REINSTATE atravs do Data Guard Broker.

Execute o SWITCHOVER de volta para a mquina nerv01.

Desabilite o Fast-Start Failover.

Pare o OBSERVER.

112
Data Guard Backup & Recovery

113
Lab 19.1: RMAN CATALOG
Na mquina nerv01, conecte-se ao CATALOG centralizado.
rman CATALOG=USER_CATALOGO/USER_CATALOGO@CATALOGO TARGET /
RMAN> REGISTER DATABASE;
RMAN> LIST DB_UNIQUE_NAME OF DATABASE;

Na mquina nerv02, conecte-se ao CATALOG centralizado.


rman CATALOG=USER_CATALOGO/USER_CATALOGO@CATALOGO TARGET /
RMAN> LIST DB_UNIQUE_NAME OF DATABASE;

Na mquina nerv03, conecte-se ao CATALOG centralizado.


rman CATALOG=USER_CATALOGO/USER_CATALOGO@CATALOGO TARGET /
RMAN> LIST DB_UNIQUE_NAME OF DATABASE;

Na mquina nerv01, conecte-se ao CATALOG centralizado.


rman CATALOG=USER_CATALOGO/USER_CATALOGO@CATALOGO TARGET /
RMAN> LIST DB_UNIQUE_NAME OF DATABASE;
RMAN> LIST ARCHIVELOG ALL FOR DB_UNIQUE_NAME TERRA02;
RMAN> REPORT SCHEMA FOR DB_UNIQUE_NAME TERRA02;
RMAN> SHOW ALL FOR DB_UNIQUE_NAME TERRA02;

114
Lab 19.2: ARCHIVEs
Na mquina nerv01, conecte-se ao CATALOG centralizado.
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 2 TIMES TO DEVICE
TYPE DISK;

RMAN> LIST ARCHIVELOG ALL;


RMAN> BACKUP ARCHIVELOG ALL DELETE ALL INPUT;
RMAN> LIST ARCHIVELOG ALL;
RMAN> BACKUP ARCHIVELOG ALL DELETE ALL INPUT;
Os ARCHIVEs foram apagados?

115
Lab 19.3: Auto Block Repair
Na mquina nerv02, habilite o ACTIVE DATA GUARD.
Na mquina nerv01, crie uma nova TABLESPACE.
Na mquina nerv01, crie uma tabela, com dados, na nova TABLESPACE.
SQL> CONN SCOTT/TIGER
SQL> CREATE TABLE TESTE TABLESPACE TESTE AS SELECT * FROM ALL_OBJECTS;

Na mquina nerv01, faa um backup completo do banco de dados.


RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;

Na mquina nerv01, verifique qual o HEADER BLOCK dos dados desta Tabela.
SQL> SELECT HEADER_BLOCK FROM DBA_SEGMENTS WHERE OWNER = 'SCOTT' AND
SEGMENT_NAME = 'TESTE';

Na mquina nerv01, corrompa um bloco de dados do DATAFILE.


$ dd of=/u01/app/oracle/oradata/NERV01/teste01.dbf bs=8192 conv=notrunc seek=131 <<EOF
> Vamos corromper este datafile
> EOF

Na mquina nerv01, execute uma validao da TABLESPACE.


RMAN> VALIDATE TABLESPACE TESTE CHECK LOGICAL;

Na mquina nerv01, leia os dados da tabela de teste, e observe o ALERT LOG.


SQL> CONN SCOTT/TIGER;
SQL> INSERT INTO TESTE SELECT * FROM TESTE;

116
Tuning

117
Tuning
Physical Standby
RECOVERY_PARALLELISM
ApplyParallel (Data Guard Broker)

Logical Standby
SQL> EXECUTE DBMS_LOGSTDBY.APPLY_SET('MAX_SERVERS', 26);
SQL> EXECUTE DBMS_LOGSTDBY.APPLY_SET('PREPARE_SERVERS', 3);
SQL> EXECUTE DBMS_LOGSTDBY.APPLY_SET('MAX_SGA', 1024);

118
Troubleshooting

119
Troubleshooting
Alert Log
Parmetros
SQL*Net

120
Views
V$DATABASE
V$DATABASE_INCARNATION
V$DATAFILE
V$LOG
V$LOGFILE
V$LOG_HISTORY

V$ARCHIVE_DEST
V$ARCHIVE_DEST_STATUS
V$ARCHIVE_GAP
V$ARCHIVED_LOG

V$DATAGUARD_CONFIG
V$DATAGUARD_STATS
V$DATAGUARD_STATUS
V$FS_FAILOVER_STATS
V$MANAGED_STANDBY
V$REDO_DEST_RESP_HISTOGRAM
V$STANDBY_EVENT_HISTOGRAM
V$STANDBY_LOG

121
LOG_ARCHIVE_TRACE
0 Disables archived redo log tracing (default)
1 Tracks archiving of log files
2 Tracks archive status by archive log file destination
4 Tracks archive operational phase
8 Tracks archive log destination activity
16 Tracks detailed archive log destination activity
32 Tracks archive log destination parameter modifications
64 Tracks ARCn process state activity
128 Tracks FAL server process activity
256 Tracks RFS Logical Client
512 Tracks LGWR redo shipping network activity
1024 Tracks RFS physical client
2048 Tracks RFS/ARCn ping heartbeat
4096 Tracks real-time apply activity
8192 Tracks Redo Apply activity
16384 Tracks archive I/O buffers
32768 Tracks LogMiner dictionary archiving

122
Recuperao de GAP
Backup Incremental
Standby: SELECT CURRENT_SCN FROM V$DATABASE;
Produo: STANDBY CONTROLFILE
Produo: BACKUP INCREMENTAL FROM SCN 123456789 DATABASE;
Standby: RECOVER DATABASE;

Recover From Service


Standby: RECOVER DATABASE FROM SERVICE PRD;
Standby: RESTORE STANDBY CONTROLFILE FROM SERVICE PRD;

123
Melhores Prticas

124
Melhores Prticas

Alta Disponibilidade no Total Disponibilidade.

Alta Disponibilidade no nem ao menos Mxima Disponibilidade.

A Mxima Disponibilidade s pode ser alcanada com um conjunto de tecnologias.

Compartilhe sobre as solues e protees da Alta Disponibilidade com o cliente.

Oracle Data Guard mais disponvel do que Standby Manual.

Oracle Data Guard no protege apenas contra desastres regionais.

Cada tipo de Data Guard te protege contra certos tipos de falhas.

O Oracle Data Guard uma ferramenta de escalabilidade horizontal.

O Active Data Guard tambm uma ferramenta de disponibilidade.

Teste (e pratique) o Switchover / Switchback com frequncia.

Monitore a replicao.

Utilize FLASHBACK.

O Snapshot Standby torna seu ambiente mais estvel.

Utilize o Data Guard Broker: switchover mais rpido maior disponibilidade.

Utilize o Data Guard Broker: ele "grtis", voc j pagou por ele.

O Oracle Data Guard caro: utilize o mximo de recursos dele.

125

Anda mungkin juga menyukai