Académique Documents
Professionnel Documents
Culture Documents
2
Características da Alta Disponibilidade
• Confiança
• Recuperabilidade
• Detecção de erros em tempo hábil
• Continuidade operacional
3
Análise de Alta Disponibilidade
• 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)
4
Sistemas e Alta Disponibilidade
• Camada 1 (Faturamento, Vendas)
• Camada 2 (Compras, Estoque)
• Camada 3 (BI, Desenvimento)
5
Custos e Alta Disponibilidade
• 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)
6
Implantação de Alta Disponibilidade
7
Soluções 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 não 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 informações
High Availability Overview:
http://docs.oracle.com/database/121/HAOVW/toc.htm
11
Oracle Data Guard: Evolução
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
Configurações
Primary database
Physical standby database
Logical standby database
Snapshot Standby Database
19
Serviços
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 Proteção
Maximum Performance
Maximum Availability
Maximum Protection
23
Tecnologias Complementares
Oracle RAC
Flashback Database
RMAN
24
Por que Data Guard?
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.
25
Lab 1: Standby Manual
26
Lab 1.1: Standby Manual
Na máquina nerv01, crie um banco de dados com o nome “SeuNome01”.
$ dbca -silent -createDatabase -templateName New_Database.dbt -gdbName TERRA01
-sysPassword Nerv2015 -systemPassword Nerv2015 -characterset WE8ISO8859P1
-nationalCharacterSet AL16UTF16 -emConfiguration NONE -databaseType OLTP
27
Lab 1.2: Standby Manual
Na máquina nerv02, inicie a instância em NOMOUNT.
RMAN> STARTUP NOMOUNT;
28
Lab 1.3: Standby Manual
Na máquina 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 máquina nerv01, copie os ARCHIVED REDO LOGs para a máquina nerv02, para qualquer
diretório.
29
Lab 1.4: Standby Manual
Na máquina nerv01, gere mais ARCHIVED REDO LOGs
RMAN> ALTER SYSTEM SWITCH LOGFILE;
RMAN> ALTER SYSTEM SWITCH LOGFILE;
RMAN> 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.
30
Physical Standby
31
Por que?
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.
32
Parâmetros
●
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 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 (se não tiver um) 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)))
Teste a resolução de nomes (ping) e o Oracle Net (tnsping) entre as duas máquinas.
Por que não funciona?
36
Lab 2.2 (Cold Filesystem Backup)
Nas máquinas nerv01 e nerv02, crie um diretório para armazenar ARCHIVED REDO LOGs.
Na máquina nerv01, copie o STANDBY CONTROLFILE para a máquina nerv02, para os locais
indicados no SPFILE.
37
Lab 2.3 (Cold Filesystem Backup)
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.
38
Lab 2.4 (Cold Filesystem Backup)
Na máquina nerv02, passe a instância ao estágio MOUNT.
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
39
Checklist para Physical Standby
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.
40
Lab 3.1 (User Managed Backup)
Na máquina nerv02, passe a instância ao estágio SHUTDOWN.
Na máquina nerv01, copie o STANDBY CONTROLFILE para a máquina nerv02, para os locais
indicados no SPFILE.
41
Lab 3.2 (User Managed Backup)
Na máquina nerv02, inicie a instância, deixando-a em estado NOMOUNT;
42
Lab 4.1 (RMAN Hot Backup)
Na máquina nerv02, passe a instância ao estágio SHUTDOWN.
Na máquina nerv01, copie o STANDBY CONTROLFILE para a máquina nerv02, para os locais
indicados no SPFILE.
43
Lab 4.2 (RMAN Hot Backup)
Na máquina nerv02, inicie a instância em NOMOUNT.
RMAN> STARTUP NOMOUNT;
44
Lab 5.1 (RMAN Duplication)
Na máquina nerv02, passe a instância ao estágio SHUTDOWN.
Na máquina nerv01, conecte-se com RMAN das duas instâncias e execute a duplicação.
$ rman TARGET / AUXILIARY=SYS/Nerv2015@TERRA02
RMAN> DUPLICATE TARGET DATABASE FOR STANDBY DORECOVER NOFILENAMECHECK;
45
Lab 5.2 (RMAN Duplication)
Na máquina nerv02, altere os seguintes parâmetros.
SQL> ALTER SYSTEM SET DB_UNIQUE_NAME=TERRA02 SCOPE=SPFILE;
46
Lab 6.1 (RMAN Active Duplication)
Na máquina nerv02, passe a instância ao estágio SHUTDOWN.
Na máquina nerv01, conecte-se com RMAN das duas instâncias e execute a duplicação.
$ 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 máquina nerv02, altere os seguintes parâmetros.
SQL> ALTER SYSTEM SET DB_UNIQUE_NAME=TERRA02 SCOPE=SPFILE;
48
Modos de Proteção
49
Modos de Proteção
- Maximum Performance (NOAFFIRM, ASYNC)
- Maximum Availability (AFFIRM, SYNC)
- Maximum Protection (AFFIRM, SYNC)
50
Lab 7.1: Modos de Proteção
Nas máquinas nerv01 e nerv02, acompanhe o Alert Log durante este Lab.
51
Lab 7.2: Modos de Proteção
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 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 Proteção
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;
53
Lab 7.4: Modos de Proteção
Na máquina nerv01, altere o PROTECTION MODE.
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION;
54
Lab 7.5: Modos de Proteção
Na máquina nerv02, execute SHUTDOWN IMMEDIATE.
Por que não funciona?
55
Switchover
56
Lab 8.1: Switchover
Na máquina nerv01, altere os seguintes parâmetros.
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
SQL> ALTER SYSTEM SET FAL_SERVER=TERRA02;
57
Lab 8.2: Switchover
Na máquina nerv01, inicie o RECOVER como um STANDBY.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM
SESSION;
Na máquina nerv02, gere alguns ARCHIVED REDO LOGs e acompanhe o Alert Log.
58
Switchback
59
Lab 9.1: Switchback
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 nerv01, gere alguns ARCHIVED REDO LOGs e acompanhe o Alert Log.
60
Lab 9.2: Switchback
Na máquina 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;
61
Failover
62
Lab 10.1: Failover
Na máquina nerv01, habilite o FLASHBACK (necessário para o REINSTATE).
SQL> ALTER DATABASE FLASHBACK ON;
63
Lab 10.2: Failover
Na máquina nerv02, verifique a possibilidade de FAILOVER.
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
64
Reinstate
65
Lab 11.1: Reinstate
Na máquina nerv01, inicie a instância em MOUNT.
SQL> STARTUP MOUNT;
OU
66
Logical Standby
67
Logical Standby
68
Por que?
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.
69
Tipos de dados não 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');
72
Adaptações
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 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.
Teste a resolução de nomes (ping) e o Oracle Net (tnsping) entre as três máquinas.
Por que não funciona?
76
Lab 12.2: Logical Standby
Na máquina nerv01, copie o SPFILE para a máquina nerv03.
77
Lab 12.3: Logical Standby
Na máquina nerv01, conecte-se com RMAN das duas instâncias e execute a duplicação.
$ rman TARGET SYS/Nerv2015 AUXILIARY=SYS/Nerv2015@TERRA03
RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE
DORECOVER NOFILENAMECHECK;
78
Lab 12.4: Logical Standby
Após a máquina nerv03 estar sincronizada, cancele o RECOVER.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
79
Lab 12.5: Logical Standby
Na máquina 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;
80
Active Data Guard
81
Lab 13.1: Active Data Guard
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;
82
Lab 13.2: Active Data Guard
Na máquina 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;
83
Snapshot Standby
84
Por que?
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.
85
Lab 14.1: Snapshot Standby
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.
86
Lab 14.2: Snapshot Standby
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/TIGER
SQL> SELECT COUNT(*) FROM T;
87
Cascade Standby
88
Lab 15.1: Cascade Standby
Na máquina nerv01, cancele o envio de REDO LOG para a máquina nerv03.
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.
89
Far Sync
90
Far Sync
91
Lab 16.1: Far Sync
Na máquina nerv01, crie uma entrada no /etc/hosts para a máquina nerv04.
Na máquina nerv02, crie uma entrada no /etc/hosts para a máquina nerv04.
Na máquina nerv03, crie uma entrada no /etc/hosts para a máquina nerv04.
Na máquina nerv04, crie uma entrada no /etc/hosts para a máquina nerv01.
Na máquina nerv04, crie uma entrada no /etc/hosts para a máquina nerv02.
Na máquina nerv04, crie uma entrada no /etc/hosts para a máquina nerv01.
Na máquina nerv01, crie uma entrada no tnsnames.ora para a instância da máquina nerv04.
Na máquina nerv01, copie o tnsnames.ora para a máquina nerv02.
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 nerv04.
Teste a resolução de nomes (ping) e o Oracle Net (tnsping) entre as três máquinas.
Por que não funciona?
92
Lab 16.2: Far Sync
Na máquina nerv01, crie um FAR SYNC STANDBY CONTROLFILE, e copie para a máquina
nerv04, para a localização dos CONTROLFILEs.
SQL> ALTER DATABASE CREATE FAR SYNC INSTANCE CONTROLFILE AS '/tmp/STBFS.ctl';
Na máquina nerv01, cancele a replicação para a máquina nerv02, e habilite o envio para a
máquina 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 não funciona?
93
Lab 16.3: Far Sync
Na máquina nerv01, copie o SPFILE para a máquina nerv04.
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 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 = MARC01_DGMGRL)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0.2/db_1)
(SID_NAME = MARC01)
)
(SID_DESC =
(GLOBAL_DBNAME = EDGAR03_DGMGRL)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0.2/db_1)
(SID_NAME = EDGAR01)
)
)
100
Lab 17.2: Data Guard Broker
Na máquina 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 não funciona?
101
Lab 17.3: Data Guard Broker
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';
102
Lab 17.4: Data Guard Broker
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?
103
Lab 17.5: Data Guard Broker
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?
104
Lab 17.6: Data Guard Broker
A partir da máquina nerv01, converta o banco de dados da máquina nerv02 para SNAPSHOT
STANDBY.
[oracle@nerv01 ~]$ dgmgrl SYS/Nerv2014@TERRA02
DGMGRL> 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?
105
Lab 17.7: Data Guard Broker
Na máquina nerv01, simule uma indisponibilidade não planejada.
SQL> SHUTDOWN ABORT;
106
Fast-Start Failover
107
Lights out administration
108
Lights out administration
●
Produção:
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 aplicação:
SQL> DBMS_DG.INITIATE_FS_FAILOVER
109
Lab 18.1: Fast-Start Failover
Confira se os bancos da máquina nerv01 e nerv02 estão com FLASHBACK ativado.
110
Lab 18.2: Fast-Start Failover
Na máquina nerv01, simule uma indisponibilidade não planejada.
SQL> SHUTDOWN ABORT;
111
Lab 18.3: Fast-Start Failover
Na máquina nerv01, verifique as condições de Fast-Start Failover:
DGMGRL> SHOW FAST_START FAILOVER;
Pare o OBSERVER.
112
Data Guard Backup & Recovery
113
Lab 19.1: RMAN CATALOG
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;
114
Lab 19.2: ARCHIVEs
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;
115
Lab 19.3: Auto Block Repair
Na máquina nerv02, habilite o ACTIVE DATA GUARD.
Na máquina nerv01, crie uma nova TABLESPACE.
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';
116
Tuning
117
Tuning
Todos
●
COMPRESSION=ENABLE
●
LOG_ARCHIVE_MAX_PROCESSES
●
MAX_CONNECTIONS
●
MAX_FAILURE
●
NET_TIMEOUT
●
REOPEN
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
Parâmetros
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
Recuperação de GAP
Backup Incremental
Standby: SELECT CURRENT_SCN FROM V$DATABASE;
Produção: STANDBY CONTROLFILE
Produção: BACKUP INCREMENTAL FROM SCN 123456789 DATABASE;
Standby: RECOVER DATABASE;
123
Melhores Práticas
124
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.
125
Zero Downtime Upgrade
126
Lab Extra.1: Zero Downtime Upgrade
Altere as variáveis de ambiente para o 11gR2.
Crie um Standby Físico do banco PROD da máquina nerv01 para a máquina nerv02.
127
Lab Extra.2: Zero Downtime Upgrade
Ative o FLASHBACK nos dois bancos de dados.
128
Lab Extra.3: Zero Downtime Upgrade
Na máquina nerv02, pare o LISTENER.
129
Lab Extra.4: Zero Downtime Upgrade
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.sql
SQL> @/u01/app/oracle/cfgtoollogs/PROD/preupgrade/postupgrade_fixups.sql
SQL> EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
SQL> @/u01/app/oracle/product/12.1.0.2/db_1/rdbms/admin/utlu121s.sql
SQL> @/u01/app/oracle/product/12.1.0.2/db_1/rdbms/admin/utlrp.sql
SQL> @/u01/app/oracle/product/12.1.0.2/db_1/rdbms/admin/utluiobj.sql
130
Lab Extra.5: Zero Downtime Upgrade
Na máquina nerv01, pare o LISTENER.
131
E agora?
132 132
Fórum
133
Alunos
134
Blog
135
YouTube
136
Facebook / Twitter
137
Obrigado!
138 138