Top Banner
Oracle Data Guard Ricardo Portilho Proni [email protected] Esta obra está licenciada sob a licença Creative Commons Atribuição-SemDerivados 3.0 Brasil. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nd/3.0/br/.
126

Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

May 24, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

Oracle Data Guard

Ricardo Portilho [email protected]

Esta obra está licenciada sob a licençaCreative Commons Atribuição-SemDerivados 3.0 Brasil.

Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nd/3.0/br/.

Page 2: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

2

Alta Disponibilidade

Page 3: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

3

• Confiança• Recuperabilidade• Detecção de erros em tempo hábil• Continuidade operacional

Características da Alta Disponibilidade

Page 4: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

4

• Análise de impacto no negócio• Custo de tempo fora de operação• Objetivo de tempo de recuperação (RTO)• Objetivo de ponto de recuperação (RPO)• Meta de gerenciamento• Custo total de propriedade (TCO)• Retorno sobre o investimento (ROI)

Análise de Alta Disponibilidade

Page 5: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

5

• Camada 1 (Faturamento, Vendas)• Camada 2 (Compras, Estoque)• Camada 3 (BI, Desenvimento)

Sistemas e Alta Disponibilidade

Page 6: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

6

• Tempo máximo de parada tolerado.• Frequência máxima de paradas tolerada.• Custos facilmente mensuráveis (vendas, funcionários ociosos, multas contratuais)• Custos dificilmente mensuráveis (processos judiciais)• Custos não mensusáveis (publicidade negativa, clientes irritados)

Custos e Alta Disponibilidade

Page 7: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

7

Implantação de Alta Disponibilidade

Page 8: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

8

• 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

Soluções Oracle para Alta Disponibilidade

Page 9: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

9

• 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

Indisponibilidades Planejadas

Page 10: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

10

• 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

Indisponibilidades não Planejadas

Page 11: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

11

High Availability Overview:http://www.oracle.com/pls/db112/to_toc?pathname=server.112/e17157/toc.htm

High Availability Best Practices:http://www.oracle.com/pls/db112/to_toc?pathname=server.112/e10803/toc.htm

Maiores informações

Page 12: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

12

Oracle Data Guard: Evolução

Page 13: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

13

• 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

New Features Data Guard 10.1

Page 14: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

14

• 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

New Features Data Guard 10.2

Page 15: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

15

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

New Features Data Guard 11.1

Page 16: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

16

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

New Features Data Guard 11.2

Page 17: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

17

Oracle Data Guard - Conceitos

Page 18: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

18

Primary database Physical standby database Logical standby database Snapshot Standby Database

Configurações

Page 19: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

19

Redo Transport Services Apply Services Role Transitions

Serviços

Page 20: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

20

Switchover Switchback Failover Reinstate Convert

Role Transitions

Page 21: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

21

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

Interfaces

Page 22: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

22

Maximum Performance Maximum Availability Maximum Protection

Modos de Proteção

Page 23: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

23

Oracle RAC Flashback Database RMAN

Tecnologias Complementares

Page 24: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

24

Vantagens Proteção contra desastres. Completa proteção de dados. Uso eficiente de recursos. Flexibilidade entre disponibilidade e desempenho. Flexibilidade entre configurações. Detecção e resolução automática de erros. Gerenciamento simples e centralizado. Integração completa com Oracle Database. Automatic role transitions.

Desvantagens Maior complexidade do ambiente. Maior custo de licenças. Maior custo de equipamentos. Maior custo de conhecimento.

Por que Data Guard?

Page 25: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

25

Lab 1: Standby Manual

Page 26: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

26

Na máquina nerv01, crie um banco de dados com o nome “SeuNome01”.$ dbca -silent -createDatabase -templateName New_Database.dbt -gdbName TERRA01 -sysPassword Nerv2014 -systemPassword Nerv2014 -characterset WE8ISO8859P1 -nationalCharacterSet AL16UTF16 -emConfiguration NONE -databaseType OLTP

Na máquina nerv01, coloque o banco de dados em modo ARCHIVELOG.

Na máquina nerv01, Habilite o FORCE LOGGING.SQL> ALTER DATABASE FORCE LOGGING;

Na máquina nerv01, habilite o backup automático de CONTROLFILE.RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

Na máquina nerv01, execute um backup:RMAN> BACKUP DATABASE;

Copie para a máquina nerv02 os BACKUPPIECEs criados pelo backup executado na máquina nerv01, para qualquer diretório. Copie o SPFILE da máquina nerv01 para a máquina nerv02, em $ORACLE_HOME/dbs.

Na máquina nerv02, crie todos os diretórios utilizados por parâmetros no SPFILE.

Lab 1.1: Standby Manual

Page 27: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

27

Na máquina nerv02, inicie a instância em NOMOUNT.RMAN> STARTUP NOMOUNT;

Na máquina nerv02, restaure o CONTROLFILE.RMAN> RESTORE CONTROLFILE FROM ‘/home/oracle/o1_mf_s_775375054_7msfqgo1_.bkp’;

Na máquina nerv02, altere a instância para o estágio MOUNT.RMAN> ALTER DATABASE MOUNT;

Na máquina nerv02, catalogue o BACKUPPIECE do BACKUP DATABASE.RMAN> CATALOG BACKUPPIECE '/home/oracle/TAG20120216T055648.bkp';

Na máquina nerv02, restaure o banco de dados.RMAN> RESTORE DATABASE;

Na máquina nerv02, abra a instância em READ ONLY.RMAN> SQL ‘ALTER DATABASE OPEN READ ONLY’;Por que não funciona?

Na máquina nerv02, execute RECOVER no banco de dados.RMAN> RECOVER DATABASE;Por que não funciona?

Lab 1.2: Standby Manual

Page 28: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

28

Na máquina nerv01, verifique os ARCHIVED REDO LOGs gerados antes e depois do BACKUP DATABASE.RMAN> LIST ARCHIVELOG ALL;

Na máquina nerv01, copie os ARCHIVED REDO LOGs para a máquina nerv02, para qualquer diretório.E se não houver ARCHIVED REDO LOGs?

Na máquina nerv02, catalogue os ARCHIVED REDO LOGs copiados.RMAN> CATALOG ARCHIVELOG '/home/oracle/o1_mf_1_70_7mshox4j_.arc';

Na máquina nerv02, execute RECOVER no banco de dados.RMAN> RECOVER DATABASE;Por que continua com erro?

Na máquina nerv02, abra a instância em READ ONLY.RMAN> SQL 'ALTER DATABASE OPEN READ ONLY';

Lab 1.3: Standby Manual

Page 29: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

29

Na máquina nerv01, gere mais ARCHIVED REDO LOGsRMAN> SQL 'ALTER SYSTEM SWITCH LOGFILE';RMAN> SQL 'ALTER SYSTEM SWITCH LOGFILE';RMAN> SQL 'ALTER SYSTEM SWITCH LOGFILE';RMAN> SQL 'ALTER SYSTEM SWITCH LOGFILE';RMAN> SQL 'ALTER SYSTEM SWITCH LOGFILE';

Na máquina nerv01, copie os ARCHIVED REDO LOGs para a máquina nerv02, para o mesmo diretório que está na máquina nerv01.RMAN> LIST ARCHIVELOG ALL;

Na máquina nerv02, execute RECOVER no banco de dados.RMAN> SHUTDOWN IMMEDIATE;RMAN> STARTUP MOUNT;RMAN> RECOVER DATABASE;Por que continua com erro?

Na máquina nerv02, abra a instância em READ ONLY.RMAN> SQL 'ALTER DATABASE OPEN READ ONLY';

Lab 1.4: Standby Manual

Page 30: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

30

Physical Standby

Page 31: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

31

Vantagens Proteção contra desastres. Proteção de dados. Redução da carga na produção (RMAN, Read only SQL). Baixo impacto na Produção.

Desvantagens Banco de dados disponível apenas para leitura. O Standby deve ser uma cópia exata da Produção.

Por que?

Page 32: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

32

COMPATIBLE (Todos) CONTROL_FILE_RECORD_KEEP_TIME (Todos) CONTROL_FILES (Todos) DB_FILE_NAME_CONVERT (Physical Standby, Snapshot Standby) DB_UNIQUE_NAME (Todos) FAL_CLIENT (Physical Standby, Snapshot Standby) Obsolete 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_LOCAL_FIRST (Primary, Snapshot Standby) Obsolete 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_ARCHIVE_DEST (Physical Standby, Logical Standby, Snapshot Standby) Obsolete STANDBY_FILE_MANAGEMENT (Primary, Physical Standby, Snapshot Standby)

Parâmetros

Page 33: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

33

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

LOG_ARCHIVE_DEST_n

Page 34: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

34

Lab 2: Physical Standby

Page 35: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

35

Na máquina nerv01, crie uma entrada no /etc/hosts para a máquina nerv02.Na máquina nerv02, crie uma entrada no /etc/hosts para a máquina nerv01.

Na máquina nerv01, crie um arquivo listener.ora e inicie-o.

Na máquina nerv01, crie uma entrada no tnsnames.ora para as instâncias das máquinas 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 máquina nerv01, copie o tnsnames.ora para a máquina nerv02.Na máquina nerv01, copie o listener.ora para a máquina nerv02.Na máquina nerv02, corrija o listener.ora, e inicie o LISTENER.Na máquina nerv02, veja qual o SERVICE que o LISTENER provê.

Na máquina nerv01, copie o PASSWORD FILE para a máquina nerv02.

Teste a resolução de nomes (ping) e o Oracle Net (tnsping) entre as duas máquinas.Por que não funciona?

Na máquina nerv02, passe a instância ao estado SHUTDOWN.

Lab 2.1 (Cold Filesystem Backup)

Page 36: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

36

Nas máquinas nerv01 e nerv02, crie um diretório para armazenar ARCHIVED REDO LOGs.

Na máquina nerv01, altere os parâmetros 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 máquina nerv01, copie o SPFILE para a máquina nerv02.

Na máquina nerv01, crie um STANDBY CONTROLFILE.SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/stbCF.ctl';

Na máquina nerv01, copie o STANDBY CONTROLFILE para a máquina nerv02, para os locais indicados no SPFILE.

Lab 2.2 (Cold Filesystem Backup)

Page 37: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

37

Na máquina nerv01, passe a instância ao estado SHUTDOWN, e copie todos os DATAFILEs para a máquina nerv02, para o mesmo diretório da máquina nerv01.

Na máquina nerv02, inicie a instância, deixando-a no estado NOMOUNT, e altere o seguinte parâmetro.SQL> ALTER SYSTEM SET DB_UNIQUE_NAME=TERRA02 SCOPE=SPFILE;

Na máquina nerv02, reinicie a instância, deixando-a em estado NOMOUNT.Na máquina nerv02, veja qual o SERVICE que o LISTENER provê.

Na máquina nerv02, altere os seguintes parâmetros.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 máquina nerv01, inicie a instância, deixando-a em estado OPEN.Na máquina nerv01, gere alguns ARCHIVED REDO LOGs.

Nas máquinas nerv01 e nerv02, acompanhe o Alert Log.

Lab 2.3 (Cold Filesystem Backup)

Page 38: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

38

Na máquina nerv02, passe a instância ao estágio MOUNT.SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

Na máquina nerv02, inicie o RECOVER.SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Nas máquinas nerv01 e nerv02, acompanhe o Alert Log.

Na máquina nerv01, gere alguns ARCHIVED REDO LOGs.

Lab 2.4 (Cold Filesystem Backup)

Page 39: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

39

Modo ARCHIVELOG. FORCE LOGGING. Resolução de nomes bilateral. Resolução de SQL*Net bilateral. Autenticação via PASSWORD FILE. Adequação de parâmetros no PRIMARY. Adequação de parâmetros no STANDBY. Criação e cópia de STANDBY CONTROLFILE. Backup e Restore. No Physical Standby, MOUNT em modo STANDBY DATABASE. Criação de STANDBY REDO LOGs. No Physical Standby, execução de RECOVER MANAGED STANDBY.

Checklist para Physical Standby

Page 40: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

40

Na máquina nerv02, passe a instância ao estágio SHUTDOWN.

Na máquina nerv01, crie um STANDBY CONTROLFILE.SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/stbCF.ctl';

Na máquina nerv01, copie o STANDBY CONTROLFILE para a máquina nerv02, para os locais indicados no SPFILE.

Na máquina nerv01, passe o banco de dados ao modo BEGIN BACKUP.SQL> ALTER DATABASE BEGIN BACKUP;

Na máquina nerv01, copie por scp todos os DATAFILEs.

Na máquina nerv01, finalize o modo BEGIN BACKUP.SQL> ALTER DATABASE END BACKUP;

Lab 3.1 (User Managed Backup)

Page 41: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

41

Na máquina nerv02, inicie a instância, deixando-a em estado NOMOUNT;

Na máquina nerv02, passe a instância ao estágio MOUNT.SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

Na máquina nerv02, inicie o RECOVER.SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Nas máquinas nerv01 e nerv02, acompanhe o Alert Log.

Na máquina nerv01, gere alguns ARCHIVED REDO LOGs.

Lab 3.2 (User Managed Backup)

Page 42: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

42

Na máquina nerv02, passe a instância ao estágio SHUTDOWN.

Na máquina nerv01, crie um STANDBY CONTROLFILE.SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/stbCF.ctl';

Na máquina nerv01, copie o STANDBY CONTROLFILE para a máquina nerv02, para os locais indicados no SPFILE.

Na máquina nerv01, execute um backup do banco de dados pelo RMAN.RMAN> BACKUP DATABASE;

Copie para a máquina nerv02 os BACKUPPIECEs criados pelo backup executado na máquina nerv01, para qualquer diretório.

Lab 4.1 (RMAN Hot Backup)

Page 43: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

43

Na máquina nerv02, inicie a instância em NOMOUNT.RMAN> STARTUP NOMOUNT;

Na máquina nerv02, altere a instância para o estágio MOUNT.SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

Na máquina nerv02, catalogue o BACKUP PIECE do BACKUP DATABASE.RMAN> CATALOG BACKUPPIECE '/home/oracle/TAG20120216T055648.bkp';

Na máquina nerv02, restaure o banco de dados.RMAN> RESTORE DATABASE;

Na máquina nerv02, inicie o RECOVER.SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Nas máquinas nerv01 e nerv02, acompanhe o Alert Log.

Na máquina nerv01, gere alguns ARCHIVED REDO LOGs.

Lab 4.2 (RMAN Hot Backup)

Page 44: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

44

Na máquina nerv02, passe a instância ao estágio SHUTDOWN.

Na máquina nerv01, execute um backup do banco de dados pelo RMAN.RMAN> BACKUP DATABASE;

Copie para a máquina nerv02 os BACKUPPIECEs criados pelo backup executado na máquina nerv01, para os mesmos diretórios.$ scp -Cr /u01/app/oracle/fast_recovery_area/* nerv02:/u01/app/oracle/fast_recovery_area/

Na máquina nerv02, reinicie a instância, deixando-a em estado NOMOUNT.SQL> STARTUP NOMOUNT;

Na máquina nerv01, conecte-se com RMAN das duas instâncias e execute a duplicação.$ rman TARGET / AUXILIARY=SYS/Nerv2014@TERRA02RMAN> DUPLICATE TARGET DATABASE FOR STANDBY DORECOVER NOFILENAMECHECK;

Lab 5.1 (RMAN Duplication)

Page 45: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

45

Na máquina nerv02, altere os seguintes parâmetros.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 máquina nerv02, reinicie a instância, deixando-a em estado NOMOUNT;

Na máquina nerv02, passe a instância ao estágio MOUNT.SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

Na máquina nerv02, inicie o RECOVER.SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Nas máquinas nerv01 e nerv02, acompanhe o Alert Log.

Na máquina nerv01, gere alguns ARCHIVED REDO LOGs.

Lab 5.2 (RMAN Duplication)

Page 46: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

46

Na máquina nerv02, passe a instância ao estágio SHUTDOWN.

Na máquina nerv02, reinicie a instância, deixando-a em estado NOMOUNT.SQL> STARTUP NOMOUNT;

Na máquina nerv01, conecte-se com RMAN das duas instâncias e execute a duplicação.$ rman TARGET / AUXILIARY=SYS/Nerv2014@TERRA02RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE DORECOVER NOFILENAMECHECK;

Lab 6.1 (RMAN Active Duplication)

Page 47: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

47

Na máquina nerv02, altere os seguintes parâmetros.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 máquina nerv02, reinicie a instância, deixando-a em estado NOMOUNT;

Na máquina nerv02, inicie o RECOVER.SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Nas máquinas nerv01 e nerv02, acompanhe o Alert Log.

Na máquina nerv01, gere alguns ARCHIVED REDO LOGs.

Lab 6.2 (RMAN Active Duplication)

Page 48: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

48

Modos de Proteção

Page 49: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

49

Maximum Performance (NOAFFIRM, ASYNC) Maximum Availability (AFFIRM, SYNC) Maximum Protection (AFFIRM, SYNC)

Modos de Proteção

Page 50: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

50

Nas máquinas nerv01 e nerv02, acompanhe o Alert Log durante este Lab.

Na máquina nerv02, adicione STANDBY REDO LOGs.SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/TERRA01/redoSTB01.log') SIZE 52428800;SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/TERRA01/redoSTB02.log') SIZE 52428800;SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/TERRA01/redoSTB03.log') SIZE 52428800;SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/TERRA01/redoSTB04.log') SIZE 52428800;

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

Lab 7.1: Modos de Proteção

Page 51: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

51

Na máquina nerv01, verifique qual o PROTECTION MODE atual.SQL> SELECT PROTECTION_MODE FROM V$DATABASE;

Na máquina nerv01, crie uma tabela de testes e duplique-a 8 vezes, contando o tempo.SQL> SET TIMING ONSQL> 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;

Lab 7.2: Modos de Proteção

Page 52: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

52

Na máquina 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 máquina nerv01, verifique qual o PROTECTION MODE atual.SQL> SELECT PROTECTION_MODE FROM V$DATABASE;

Na máquina nerv01, remova a tabela teste e refaça o teste, comparando o tempo.SQL> SET TIMING ONSQL> 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;

Lab 7.3: Modos de Proteção

Page 53: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

53

Na máquina nerv01, altere o PROTECTION MODE.SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION;

Na máquina nerv01, verifique qual o PROTECTION MODE atual.SQL> SELECT PROTECTION_MODE FROM V$DATABASE;

Na máquina nerv01, remova a tabela teste e refaça o teste, comparando o tempo.SQL> SET TIMING ONSQL> 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;

Lab 7.4: Modos de Proteção

Page 54: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

54

Na máquina nerv02, execute SHUTDOWN IMMEDIATE.Por que não funciona?

Na máquina nerv02, execute SHUTDOWN ABORT.

Na máquina nerv01, execute uma operação de teste.SQL> DROP TABLE T;Por que não funciona?

Na máquina nerv01, abra outra sessão 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 não funciona?

Altere o modo de proteção para MAXIMIZE PERFORMANCE.Depois, reinicie a máquina nerv02 e o RECOVER.

Lab 7.5: Modos de Proteção

Page 55: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

55

Switchover

Page 56: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

56

Na máquina nerv01, altere os seguintes parâmetros.SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;SQL> ALTER SYSTEM SET FAL_SERVER=TERRA02;

Na máquina nerv02, altere os seguintes parâmetros.SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=TERRA01 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=TERRA01';

Na máquina 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 máquina nerv01, verifique a possibilidade de SWITCHOVER.SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

Na máquina 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;

Lab 8.1: Switchover

Page 57: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

57

Na máquina nerv01, inicie o RECOVER como um STANDBY.SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Na máquina nerv01, adicione STANDBY REDO LOGs.SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/TERRA01/redoSTB01.log') SIZE 52428800;SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/TERRA01/redoSTB02.log') SIZE 52428800;SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/TERRA01/redoSTB03.log') SIZE 52428800;SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/TERRA01/redoSTB04.log') SIZE 52428800;

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

Na máquina nerv02, gere alguns ARCHIVED REDO LOGs e acompanhe o Alert Log.

Lab 8.2: Switchover

Page 58: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

58

Switchback

Page 59: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

59

Na máquina 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 máquina nerv02, verifique a possibilidade de SWITCHOVER.SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

Na máquina 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 máquina nerv02, inicie o RECOVER como um STANDBY.SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Na máquina nerv01, gere alguns ARCHIVED REDO LOGs e acompanhe o Alert Log.

Lab 9.1: Switchback

Page 60: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

60

Failover

Page 61: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

61

Na máquina nerv01, habilite o FLASHBACK (necessário para o REINSTATE).SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP MOUNT;SQL> ALTER DATABASE FLASHBACK ON;SQL> ALTER DATABASE OPEN;

Na máquina nerv01, desligue a instância e o LISTENER.SQL> SHUTDOWN ABORT;

Na máquina nerv02, cancele o RECOVER.SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;

Lab 10.1: Failover

Page 62: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

62

Na máquina nerv02, verifique a possibilidade de FAILOVER.SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

Na máquina nerv02, se o FAILOVER for possível, execute:SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;SQL> ALTER DATABASE OPEN;

Na máquina nerv02, se o FAILOVER não for possível, execute:SQL> ALTER DATABASE ACTIVATE PHYSICAL STANDBY DATABASE;SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;SQL> ALTER DATABASE OPEN;

Lab 10.2: Failover

Page 63: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

63

Reinstate

Page 64: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

64

Na máquina nerv01, volte a um SCN mais antigo que o FAILOVER.SQL> STARTUP;SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP MOUNT;SQL> FLASHBACK DATABASE TO SCN 912044;

Na máquina 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;Por que não funciona?

Depois de concluir o Reinstate, execute o Switchback.

Lab 11.1: Reinstate

Page 65: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

65

Logical Standby

Page 66: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

66

Logical Standby

Page 67: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

67

Vantagens Proteção contra tipos de falhas adicionais. Uso eficiente de recursos. Distribuição de carga. Otimização para relatórios e requerimentos de suporte a decisões. Minimizar tempo de parada durante upgrades.

Desvantagens Diversas limitações de tipos de dados. Diversas limitações de comandos SQL. Aplicação do comando SQL, e não do REDO LOG.

Por que?

Page 68: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

68

BFILE Collections (VARRAYS, Nested Tables) Multimedia data types (Spatial, Image, Oracle Text) ROWID, UROWID User-defined types XMLType (Object Relational) Binary XML

Tipos de dados não suportados

Page 69: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

69

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

Comandos SQL ignorados

Page 70: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

70

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');

Controle

Page 71: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

71

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;

Adaptações

Page 72: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

72

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

Views

Page 73: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

73

Lab 12: Logical Standby

Page 74: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

74

Na máquina nerv01, crie uma entrada no /etc/hosts para a máquina nerv03.Na máquina nerv02, crie uma entrada no /etc/hosts para a máquina nerv03.Na máquina nerv03, crie uma entrada no /etc/hosts para a máquina nerv01.Na máquina nerv03, crie uma entrada no /etc/hosts para a máquina nerv02.

Na máquina nerv01, crie uma entrada no tnsnames.ora (TERRA03) para a instância da máquina nerv03.Na máquina nerv01, copie o tnsnames.ora para a máquina nerv03.Na máquina nerv01, copie o tnsnames.ora para a máquina nerv02.

Na máquina nerv01, copie o listener.ora para a máquina nerv03.

Na máquina nerv03, corrija o listener.ora, e inicie o LISTENER.

Na máquina nerv01, copie o PASSWORD FILE para a máquina nerv03.

Na máquina nerv03, crie um diretório para armazenar ARCHIVED REDO LOGs.

Teste a resolução de nomes (ping) e o Oracle Net (tnsping) entre as três máquinas.Por que não funciona?

Lab 12.1: Logical Standby

Page 75: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

75

Na máquina nerv01, copie o SPFILE para a máquina nerv03.

Na máquina nerv03, crie todos os diretórios mencinados em parâmetros do SPFILE.

Na máquina nerv03, reinicie a instância, 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;

Lab 12.2: Logical Standby

Page 76: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

76

Na máquina nerv01, conecte-se com RMAN das duas instâncias e execute a duplicação.$ rman TARGET / AUXILIARY=SYS/Nerv2014@TERRA03RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE DORECOVER NOFILENAMECHECK;

Na máquina 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 não funciona?

Na máquina nerv03, habilite o RECOVER e espere a instância estar sincronizada.SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP NOMOUNT;SQL> ALTER DATABASE MOUNT STANDBY DATABASE;SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/TERRA01/redoSTB01.log') SIZE 52428800;SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/TERRA01/redoSTB02.log') SIZE 52428800;SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/TERRA01/redoSTB03.log') SIZE 52428800;SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/TERRA01/redoSTB04.log') SIZE 52428800;SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Lab 12.3: Logical Standby

Page 77: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

77

Após a máquina nerv03 estar sincronizada, cancele o RECOVER.SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Na máquina nerv01, crie um dicionário dos dados dos REDO LOGs.SQL> EXECUTE DBMS_LOGSTDBY.BUILD;

Na máquina nerv03, faça a conversão 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.

Lab 12.4: Logical Standby

Page 78: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

78

Na máquina nerv01, crie uma tabela de teste.$ sqlplus / AS SYSDBASQL> DROP TABLE T;SQL> CREATE TABLE T AS SELECT * FROM ALL_OBJECTS;SQL> SELECT COUNT(*) FROM T;

Na máquina nerv03, confira a tabela criada.SQL> SELECT COUNT(*) FROM T;Por que não funciona?

Lab 12.5: Logical Standby

Page 79: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

79

Active Data Guard

Page 80: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

80

Na máquina 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 máquina nerv02, verifique se o banco de dados está acessível para leitura.SQL> CONN SCOTT/TIGERSQL> SELECT COUNT(*) FROM T;

Na máquina nerv01, faça uma alteração na tabela de testes.SQL> CONN SCOTT/TIGERSQL> INSERT INTO T SELECT * FROM T;SQL> SELECT COUNT(*) FROM T;

Na máquina nerv02, verifique que a alteração ainda não foi feita.SQL> CONN SCOTT/TIGERSQL> SELECT COUNT(*) FROM T;

Na máquina nerv02, inicie o RECOVER, com o banco de dados para leitura.SQL> CONN / AS SYSDBASQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;SQL> SELECT OPEN_MODE FROM V$DATABASE;

Lab 13.1: Active Data Guard

Page 81: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

81

Na máquina nerv02, verifique que a alteração agora foi feita.SQL> CONN SCOTT/TIGERSQL> SELECT COUNT(*) FROM T;

Lab 13.2: Active Data Guard

Page 82: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

82

Snapshot Standby

Page 83: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

83

Vantagen Redução dos tempos de Refresh (Pré-produção, Homologação, Desenvolvimento). Garantia da integridade dos ambientes de homologação e testes.

Desvantagens Maior espaço em disco necessário, para Archives e Fast Recovery Area. Necessária estrutura de banco de dados igual ao da Produção Perda de alterações após conversão para Physical Standby. Maior tempo de RECOVER necessário, em caso de utilização para Disaster Recovery.

Por que?

Page 84: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

84

Na máquina 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 máquina nerv01, gere vários ARCHIVEs, e veja se são aplicados na máquina nerv02.

Na máquina nerv02, faça uma alteração na tabela de testes.SQL> CONN SCOTT/TIGERSQL> SELECT COUNT(*) FROM T;SQL> TRUNCATE TABLE T;SQL> SELECT COUNT(*) FROM T;

Na máquina 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;

Lab 14.1: Snapshot Standby

Page 85: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

85

Na máquina nerv02, verifique que a alteração agora foi feita.SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;SQL> ALTER DATABASE OPEN;SQL> CONN SCOTT/TIGERSQL> SELECT COUNT(*) FROM T;

Na máquina nerv02, retorne a aplicação de ARCHIVEs.SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP NOMOUNT;SQL> ALTER DATABASE MOUNT STANDBY DATABASE;SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Lab 14.2: Snapshot Standby

Page 86: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

86

Cascade Standby

Page 87: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

87

Na máquina nerv01, cancele o envio de REDO LOG para a máquina nerv03.

Na máquina nerv02, habilite o envio de REDO LOG para a máquina nerv03.Por que não funciona?

Na máquina nerv03, altere o FAL_SERVER para a máquina nerv02.

Na máquina nerv01, gere vários ARCHIVEs, e veja se são aplicados na máquina nerv03.

Na máquina nerv01, faça uma alteração na tabela de testes e veja se é propagada para a máquina nerv03.

Volte à configuração anterior, sem o Cascaded Standby.

Na máquina nerv01, gere vários ARCHIVEs, e veja se são aplicados na máquina nerv03.

Lab 15.1: Cascade Standby

Page 88: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

88

Data Guard Broker

Page 89: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

89

Data Guard Broker

Page 90: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

90

Data Guard Broker

Page 91: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

91

Componentes Data Guard Broker

Page 92: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

92

Bystander Standby Databases

Page 93: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

93

Habilite o FLASHBACK DATABASE em todos os bancos de dados.

Adicione uma entrada estática para o Data Guard Broker no listener.ora de cada máquina.

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/11.2.0.4/db_1) (SID_NAME = TERRA01) ) )

ADR_BASE_LISTENER = /u01/app/oracle

Lab 16.1: Data Guard Broker

Page 94: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

94

Na máquina nerv01, habilite o Data Guard Broker.[oracle@nerv01 ~]$ dgmgrl SYS/Nerv2014@TERRA01DGMGRL> CREATE CONFIGURATION 'DRSolution' AS PRIMARY DATABASE IS TERRA01 CONNECT IDENTIFIER IS TERRA01;Por que não funciona?

Na máquina nerv01, adicione as outras máquinas da configuração.DGMGRL> ADD DATABASE TERRA02 AS CONNECT IDENTIFIER IS TERRA02;DGMGRL> ADD DATABASE TERRA03 AS CONNECT IDENTIFIER IS TERRA03;

Na máquina nerv01, verifique a configuração.DGMGRL> SHOW CONFIGURATION;

Na máquina nerv01, habilite a configuração.DGMGRL> ENABLE CONFIGURATION;

Na máquina nerv01, verifique a configuração.DGMGRL> SHOW CONFIGURATION;

Lab 16.2: Data Guard Broker

Page 95: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

95

Na máquina 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 máquina 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 parâmetros com ALTER SYSTEM SET?DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;

Na máquina nerv01, verifique se o Protection Mode foi alterado.DGMGRL> SHOW CONFIGURATION;

Lab 16.3: Data Guard Broker

Page 96: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

96

Na máquina nerv01, simule uma manutenção 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 não funciona?

Na máquina nerv01, simule o fim da manutenção 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 máquina nerv03, simule uma indisponibilidade não planejada, sempre acompanhando os Alert Logs.SQL> SHUTDOWN ABORT;SQL> STARTUP;

Na máquina nerv02, simule uma indisponibilidade não planejada, sempre acompanhando os Alert Logs.SQL> SHUTDOWN ABORT;SQL> STARTUP;

Lab 16.4: Data Guard Broker

Page 97: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

97

Na máquina nerv01, se não tiver nenhum erro, execute Switchover para a máquina nerv02.DGMGRL> SHOW CONFIGURATION;DGMGRL> SWITCHOVER TO TERRA02;

Na máquina nerv01, se não tiver nenhum erro, execute Switchover para a máquina nerv01.DGMGRL> SHOW CONFIGURATION;DGMGRL> SWITCHOVER TO TERRA01;

Na máquina nerv01, se não tiver nenhum erro, execute Switchover para a máquina nerv03.DGMGRL> SHOW CONFIGURATION;DGMGRL> SWITCHOVER TO TERRA03;Por que não funciona?

Na máquina nerv01, se não tiver nenhum erro, execute Switchover para a máquina nerv01.DGMGRL> SHOW CONFIGURATION;DGMGRL> SWITCHOVER TO TERRA01;O que aconteceu?

Para corrigir, recrie o Physical Standby na máquina, nerv02, e a reabilite no Broker.DGMGRL> REMOVE DATABASE TERRA02;DGMGRL> ADD DATABASE TERRA02 AS CONNECT IDENTIFIER IS TERRA02;DGMGRL> ENABLE DATABASE TERRA02;

Lab 16.5: Data Guard Broker

Page 98: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

98

A partir da máquina nerv01, converta o banco de dados da máquina nerv02 para SNAPSHOT STANDBY.[oracle@nerv01 ~]$ dgmgrl SYS/Nerv2014@TERRA02DGMGRL> CONVERT DATABASE TERRA02 TO SNAPSHOT STANDBY;

Na máquina nerv01, se não tiver nenhum erro, execute Switchover para a máquina nerv02.DGMGRL> SWITCHOVER TO TERRA02;Por que não funciona?

Converta o banco de dados da máquina nerv02 de volta para PHYSICAL STANDBY.DGMGRL> CONVERT DATABASE TERRA02 TO PHYSICAL STANDBY;

Lab 16.6: Data Guard Broker

Page 99: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

99

Na máquina nerv01, simule uma indisponibilidade não planejada.SQL> SHUTDOWN ABORT;

Na máquina nerv02, execute FAILOVER para a máquina nerv02.[oracle@nerv02 ~]$ dgmgrl SYS/Nerv2014@TERRA02DGMGRL> FAILOVER TO TERRA02;DGMGRL> SHOW CONFIGURATION;

Reative a instância na máquina nerv01.

EXECUTE o REISNTATE do banco da máquina nerv01.DGMGRL> REINSTATE DATABASE TERRA01;

EXECUTE o REISNTATE do banco da máquina nerv03.DGMGRL> REINSTATE DATABASE TERRA03;

Faça o SWITCHOVER de volta para a máquina nerv01.

Lab 16.7: Data Guard Broker

Page 100: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

100

Fast-Start Failover

Page 101: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

101

Lights out administration

Page 102: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

102

Lights out administration

● Produção:srvctl add service -d TERRA01 -s OLTP -l PRIMARY -w 1 -z 10srvctl 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 10srvctl 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 aplicação:SQL> DBMS_DG.INITIATE_FS_FAILOVER

Page 103: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

103

Confira se os bancos da máquina nerv01 e nerv02 estão com FLASHBACK ativado.

Na máquina 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 máquina nerv01 para o Client na máquina nerv04.

Na máquina nerv04, conecte-se na máquina nerv02 e inicie o OBSERVER.oracle@nerv04 ~]$ dgmgrl SYS/Nerv2014@TERRA02DGMGRL> START OBSERVER;

Lab 17.1: Fast-Start Failover

Page 104: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

104

Na máquina nerv01, simule uma indisponibilidade não planejada.SQL> SHUTDOWN ABORT;

Inicie novamente a instância da máquina nerv01.

Execute o SWITCHOVER de volta para a máquina nerv01.

Verifique a View V$FS_FAILOVER_STATS.

Lab 17.2: Fast-Start Failover

Page 105: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

105

Na máquina nerv01, verifique as condições de Fast-Start Failover:DGMGRL> SHOW FAST_START FAILOVER;

Habilite mais uma condição.DGMGRL> ENABLE FAST_START FAILOVER CONDITION "Stuck Archiver"

Simule a condição de falha de gravação 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;

Após o FAILOVER, inicie novamente a instância da máquina 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 através do Data Guard Broker.

Execute o SWITCHOVER de volta para a máquina nerv01.

Desabilite o Fast-Start Failover.

Pare o OBSERVER.

Lab 17.3: Fast-Start Failover

Page 106: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

106

Data Guard Backup & Recovery

Page 107: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

107

Na máquina 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 máquina nerv02, conecte-se ao CATALOG centralizado.rman CATALOG=USER_CATALOGO/USER_CATALOGO@CATALOGO TARGET /RMAN> LIST DB_UNIQUE_NAME OF DATABASE;

Na máquina nerv03, conecte-se ao CATALOG centralizado.rman CATALOG=USER_CATALOGO/USER_CATALOGO@CATALOGO TARGET /RMAN> LIST DB_UNIQUE_NAME OF DATABASE;

Na máquina 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;

Lab 18.1: RMAN CATALOG

Page 108: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

108

Na máquina 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?

Lab 18.2: ARCHIVEs

Page 109: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

109

Na máquina nerv02, habilite o ACTIVE DATA GUARD.Na máquina nerv01, crie uma nova TABLESPACE.Na máquina nerv01, crie uma tabela, com dados, na nova TABLESPACE.SQL> CONN SCOTT/TIGERSQL> CREATE TABLE TESTE TABLESPACE TESTE AS SELECT * FROM ALL_OBJECTS;

Na máquina nerv01, faça um backup completo do banco de dados.RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;

Na máquina 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 máquina 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 máquina nerv01, execute uma validação da TABLESPACE.RMAN> VALIDATE TABLESPACE TESTE CHECK LOGICAL;

Na máquina nerv01, leia os dados da tabela de teste, e observe o ALERT LOG.SQL> CONN SCOTT/TIGER;SQL> INSERT INTO TESTE SELECT * FROM TESTE;

Lab 18.3: Auto Block Repair

Page 110: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

110

Data Guard & RAC

Page 111: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

111

Data Guard e RAC

DGMGRL> EDIT DATABASE TERRA SET STATE='APPLY-ON' WITH APPLY INSTANCE=STB1;

Page 112: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

112

Data Guard Broker e RAC

Page 113: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

113

Tuning

Page 114: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

114

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);

Tuning

Page 115: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

115

Troubleshooting

Page 116: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

116

Alert Log Parâmetros SQL*Net

Troubleshooting

Page 117: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

117

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

Views

Page 118: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

118

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

LOG_ARCHIVE_TRACE

Page 119: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

119

Melhores Práticas

Page 120: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

120

Melhores Práticas

● Alta Disponibilidade não é Total Disponibilidade.● Alta Disponibilidade não é nem ao menos Máxima Disponibilidade.● A Máxima Disponibilidade só pode ser alcançada com um conjunto de tecnologias.● Compartilhe sobre as soluções e proteções da Alta Disponibilidade com o cliente.● Oracle Data Guard é mais disponível do que Standby Manual.● Oracle Data Guard não 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 também é uma ferramenta de disponibilidade.● Teste (e pratique) o Switchover / Switchback com frequência.● Monitore a replicação.● Utilize FLASHBACK.● O Snapshot Standby torna seu ambiente mais estável.● Utilize o Data Guard Broker: switchover mais rápido é maior disponibilidade.● Utilize o Data Guard Broker: ele é "grátis", você já pagou por ele.● O Oracle Data Guard é caro: utilize o máximo de recursos dele.

Page 121: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

121

Zero Downtime Upgrade

Page 122: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

122

Desabilite o Data Guard Broker em todas as intâncias.SQL> ALTER SYSTEM SET DG_BROKER_START=FALSE;

Na máquina nerv01, desabilite o envio de ARCHIVEs para a máquina nerv03.

Desligue o Standby na máquina nerv03.

Adicione uma entrada estática para as instâncias nas máquinas nerv01 e nerv02.SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = TERRA01) (ORACLE_HOME = /u01/app/oracle/product/11.2.0.4/db_1) (SID_NAME = TERRA01) ) )

Lab Extra.1: Zero Downtime Upgrade

Page 123: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

123

Instale o Oracle Database 12.1.0.2 na máquina nerv01.$ unzip -q linuxamd64_12102_database_1of2.zip $ unzip -q linuxamd64_12102_database_2of2.zip $ /home/oracle/database/runInstaller -silent -responseFile /home/oracle/db_nerv01.rsp # /u01/app/oracle/product/12.1.0.2/db_1/root.sh

Instale o Oracle Database 12.1.0.2 na máquina nerv02.$ unzip -q linuxamd64_12102_database_1of2.zip $ unzip -q linuxamd64_12102_database_2of2.zip $ /home/oracle/database/runInstaller -silent -responseFile /home/oracle/db_nerv02.rsp # /u01/app/oracle/product/12.1.0.2/db_1/root.sh

Execute o script para converter o banco da máquina nerv02 em um Standby Lógico:$ ./physru.sh SYS TERRA01 TERRA01 TERRA02 TERRA02 12.1.0.2.0

Execute o script de pré-upgrade na máquina nerv02, e execute as correções recomendadas.SQL> @/u01/app/oracle/product/12.1.0.2/db_1/rdbms/admin/preupgrd.sqlSQL> ALTER SESSION DISABLE GUARD;SQL> @/u01/app/oracle/product/12.1.0.2/db_1/rdbms/admin/olspreupgrade.sql

Lab Extra.2: Zero Downtime Upgrade

Page 124: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

124

Na máquina nerv02, pare o LISTENER.

Prepare a máquina nerv02 para o UPGRADE.$ cp $ORACLE_HOME/dbs/spfileTERRA01.ora /u01/app/oracle/product/12.1.0.2/db_1/dbs/spfileTERRA01.ora$ cp $ORACLE_HOME/dbs/orapwTERRA01 /u01/app/oracle/product/12.1.0.2/db_1/dbs/orapwTERRA01$ cp $ORACLE_HOME/network/admin/listener.ora /u01/app/oracle/product/12.1.0.2/db_1/network/admin/listener.ora$ cp $ORACLE_HOME/network/admin/tnsnames.ora/u01/app/oracle/product/12.1.0.2/db_1/network/admin/tnsnames.ora$ export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/db_1/$ export PATH=$ORACLE_HOME/bin:$PATH$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib$ export CLASSPATH=$ORACLE_HOME/jdk:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

Lab Extra.3: Zero Downtime Upgrade

Page 125: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

125

Na máquina nerv02, execute o UPGRADE.SQL> STARTUP UPGRADE$ cd $ORACLE_HOME/rdbms/admin$ $ORACLE_HOME/perl/bin/perl catctl.pl -n 4 catupgrd.sqlSQL> @/u01/app/oracle/cfgtoollogs/TERRA02/preupgrade/postupgrade_fixups.sqlSQL> EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;SQL> @/u01/app/oracle/product/12.1.0.2/db_1/rdbms/admin/utlu121s.sqlSQL> @/u01/app/oracle/product/12.1.0.2/db_1/rdbms/admin/utlrp.sqlSQL> @/u01/app/oracle/product/12.1.0.2/db_1/rdbms/admin/utluiobj.sql

Na máquina nerv02, corrija o arquivo listener.ora e inicie o LISTENER.

Execute o script para executar o SWITCHOVER para a máquina nerv02.$ ./physru.sh SYS TERRA01 TERRA01 TERRA02 TERRA02 12.1.0.2.0

Lab Extra.4: Zero Downtime Upgrade

Page 126: Oracle Data Guard - Nervnervinformatica.com.br/Downloads/Materiais/ODG.pdf · 2015-06-24 · • Migrating a single-instance database to Oracle RAC -> Oracle Data Guard • Patch

126

Na máquina nerv01, pare o LISTENER.

Prepare a máquina nerv02 para o UPGRADE.$ cp $ORACLE_HOME/dbs/spfileTERRA01.ora /u01/app/oracle/product/12.1.0.2/db_1/dbs/spfileTERRA01.ora$ cp $ORACLE_HOME/dbs/orapwTERRA01 /u01/app/oracle/product/12.1.0.2/db_1/dbs/orapwTERRA01$ cp $ORACLE_HOME/network/admin/listener.ora /u01/app/oracle/product/12.1.0.2/db_1/network/admin/listener.ora$ cp $ORACLE_HOME/network/admin/tnsnames.ora/u01/app/oracle/product/12.1.0.2/db_1/network/admin/tnsnames.ora$ export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/db_1/$ export PATH=$ORACLE_HOME/bin:$PATH$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib$ export CLASSPATH=$ORACLE_HOME/jdk:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

Na máquina nerv01, corrija o arquivo listener.ora e inicie o LISTENER.

Na máquina nerv01, abra o banco de dados em MOUNT.

Execute o script para executar o SWITCHOVER para a máquina nerv02.$ ./physru.sh SYS TERRA01 TERRA01 TERRA02 TERRA02 12.1.0.2.0

Lab Extra.5: Zero Downtime Upgrade