Comando no SQL*Plus:
SQL> SELECT STATUS FROM V$INSTANCE;
Comando no RMAN:
RMAN> REPORT SCHEMA;
2
Todas as senhas (root, oracle, SYS, SYSTEM) são Nerv2018.
rlwrap
# wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum -y install epel-release-latest-7.noarch.rpm
# yum -y install rlwrap
3
glogin.sql
$ cat $ORACLE_HOME/sqlplus/admin/glogin.sql
…
SET PAGESIZE 1000
SET LINESIZE 220
SET TIMING ON
SET TIME ON
SET SQLPROMPT '&_user@&_connect_identifier> '
DEFINE _EDITOR=vi
…
1
----------
1
Elapsed: 00:00:00.00
09:09:00 SYS@ORCL>
4
Alta Disponibilidade
Características da Alta Disponibilidade
• Confiança
• Recuperabilidade
• Detecção de erros em tempo hábil
• Continuidade operacional
6
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
7
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
8
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
9
Documentação
High Availability Overview
http://docs.oracle.com/database/122/HAOVW/toc.htm
Oracle Sharding
http://docs.oracle.com/en/database/oracle/oracle-database/18/shard/index.html
10
Oracle Data Guard: Evolução
11
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
✔ Backup and Restore of Standby Control File
12
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
✔ 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
13
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
14
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
✔ SPA Support for Active Data Guard Environment
15
New Features Data Guard 12.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 16
New Features Data Guard 12.2
✔
Distributed Operations on CLOB, BLOB and XMLType
✔
OCI Support for Distributed LOBs
✔
Minimizing Impact on Primary Database When Using Multiple SYNC Standby Databases
✔
Oracle Data Guard Database Compare
✔
Subset Standby
✔
Oracle Data Guard Broker Support for Multiple Automatic Failover Targets
✔
Oracle Data Guard Broker Support for Multiple Observers
✔
Simplifying Observer Management for Multiple Fast-Start Failover Configurations
✔
Oracle Data Guard Broker Support for Transport Destinations of Different Endianess Than the Primary
✔
Oracle Data Guard Broker Support for Oracle Data Guard Multiple Instance Apply
✔
Oracle Data Guard Broker Support for Enhanced Alternate Destination
✔
Fast-Start Failover in Maximum Protection Mode
✔
Block Comparison Tool Support in Oracle Data Guard Broker DGMGRL Interface
✔
Oracle Data Guard Broker Support for Executing DGMGRL Command Scripts
✔
Broker ConfigurationWideServiceName Configuration Property
✔
Enhancing Support for Alternate Destinations
✔
Automatically Synchronize Password Files in Oracle Data Guard Configurations
✔
Preserving Application Connections to An Active Data Guard Standby During Role Changes
✔
In-Memory in Oracle Active Data Guard (ADG) environments.
✔
Oracle Active Data Guard is integrated with Oracle Sharding.
✔
FARSYNC option on the RMAN DUPLICATE.
✔
Diagnostic Pack in Oracle Active Data Guard.
✔
Rolling upgrades are supported on multitenant container databases (CDBs).
✔
Password file changes done on the primary database are now automatically propagated to standby databases.
✔
Keep any sessions connected to the standby during the switchover/failover.
✔
Encrypt and decrypt both new and existing tablespaces, and existing databases.
17
New Features Data Guard 18c
✔
Oracle Data Guard Multi-Instance Redo Apply Supports Use of Block Change Tracking Files
✔
Automatic Correction of Non-logged Blocks at a Data Guard Standby Database
✔
Copying a PDB in an Oracle Data Guard Environment
✔
Refreshable PDB Switchover
✔
The database buffer cache state is now maintained on an Oracle Active Data Guard standby during a role
change.
✔
Global temporary tables can now be dynamically created on an Oracle Active Data Guard standby
database.
✔
A new initialization parameter, ADG_ACCOUNT_INFO_TRACKING, extends control of user account security
against login attacks across a production database and all Oracle Active Data Guard standby databases.
✔
A new view V$DATAGUARD_PROCESS (which replaces V$MANAGED_STANDBY) provides information that
can be queried to verify that redo is being transmitted from the primary database and applied to the
standby database.
✔
Metadata for private temporary tables (also known as local temporary tables) can be stored in memory.
✔
Database nologging has been extended with two new modes: Standby Nologging for Load Performance
and Standby Nologging for Data Availability.
✔
A standby database can now be refreshed over the network using one RMAN command, RECOVER
STANDBY DATABASE.
✔
Enhancements have been made to Data Guard broker support for upgrades performed using the
DBMS_ROLLING PL/SQL package.
✔
Block Change Tracking is now supported with multi-instance redo apply.
18
New Features Data Guard 18c
✔
VALIDATE DATABASE SPFILE performs a comparison of server parameter file (SPFILE) entries between the
primary database and a specified standby database.
✔
VALIDATE NETWORK CONFIGURATION performs network connectivity checks between members of a
broker configuration.
✔
VALIDATE STATIC CONNECT IDENTIFIER validates the static connect identifier of a database.
✔
SET ECHO controls whether or not to echo commands that are issued either at the command-line prompt
or from a DGMGRL script.
✔
SHOW ALL (DGMGRL CLI properties) shows the values of DGMGRL CLI properties.
✔
The AlternateLocation configurable property is renamed to StandbyAlternateLocation and has new valid
values.
✔
The StandbyArchiveLocation configurable property has new valid values.
✔
The new OnlineArchiveLocation configurable property specifies the online redo log archive location for
primary, logical, and snapshot standby databases.
✔
The new OnlineAlternateLocation configurable property specifies an alternate online redo log archive
location for primary, logical, and snapshot standby databases when the location specified by the
OnlineArchiveLocation configurable property fails.
✔
The V$DATAGUARD_PROCESS view, introduced in Oracle Database 12c Release 2 (12.2.0.1), now shows
broker processes.
19
Oracle Data Guard - Conceitos
20
Terminologia
Configurações
Primary database
Physical standby database
Logical standby database
Snapshot Standby Database
Serviços
Redo Transport Services
Apply Services
Role Transitions
Role Transitions
Switchover
Switchback
Failover
Reinstate
Convert
Interfaces
Enterprise Manager / Grid Control / Cloud Control
DGMGRL
SQL*Plus
Initialization Parameters
Tecnologias Complementares
Oracle RAC
Flashback Database 21
RMAN
Oracle Global Data Services (GDS)
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.
22
Physical x Logical
23
Por que Data Guard Physical Standby?
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.
24
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)
OBSOLETE
●
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
25
LOG_ARCHIVE_DEST_n
• DB_UNIQUE_NAME
• LOCATION = path_name OU SERVICE=service_name
• TEMPLATE = template
• GROUP = group
• VALID_FOR = (redo_log_type,database_role)
• PRIORITY = priority
• MANDATORY
• ALTERNATE = destination
• SYNC | ASYNC
• AFFIRM | NOAFFIRM
• DELAY = minutes
• MAX_CONNECTIONS = count
• NET_TIMEOUT = seconds
• MAX_FAILURE = count
• REOPEN = seconds
• COMPRESSION = {ENABLE|DISABLE|ZLIB|LZO}
• ENCRYPTION = ENABLED|DISABLED
• NOREGISTER
26
Checklist para Physical Standby
●
Modo ARCHIVELOG.
●
FORCE LOGGING.
●
Resolução de nomes bilateral.
●
Resolução de SQL*Net bilateral.
●
Autenticação via PASSWORD FILE.
●
Criação, cópia e Restore de STANDBY CONTROLFILE (ou ACTIVE DUPLICATION).
●
Backup e Restore (ou ACTIVE DUPLICATION).
●
No Physical Standby, MOUNT em modo STANDBY DATABASE.
●
Adequação de parâmetros no PRIMARY.
●
Adequação de parâmetros no STANDBY.
●
Criação de STANDBY REDO LOGs.
●
No Physical Standby, execução de RECOVER MANAGED STANDBY.
27
Lab 1.1: Data Guard Physical Standby
Na máquina nerv01, crie um banco de dados com o nome “TERR”, com um PDB com o nome TERRP.
28
Lab 1.2: Data Guard Physical Standby
Copie o SPFILE da máquina nerv01 para a máquina nerv02, em $ORACLE_HOME/dbs.
$ scp $ORACLE_HOME/dbs/spfileTERR.ora nerv02:$ORACLE_HOME/dbs/
Na máquina nerv01, crie uma entrada no tnsnames.ora para as instâncias das máquinas nerv01 e nerv02.
TERR=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=nerv01)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=TERR)(SERVER=DEDICATED)))
TERR02=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=nerv02)
(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=TERR02)(SERVER=DEDICATED)))
Na máquina nerv02, crie uma entrada no tnsnames.ora para as instâncias das máquinas nerv01 e nerv02.
TERR=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=nerv01)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=TERR)(SERVER=DEDICATED)))
TERR02=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=nerv02)
(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=TERR02)(SERVER=DEDICATED)))
LISTENER_TERR=(ADDRESS=(PROTOCOL=TCP)(HOST=nerv02.localdomain)(PORT = 1521))
Teste a resolução de nomes (ping) e o Oracle Net (tnsping) entre as duas máquinas.
Por que não funciona?
29
Lab 1.3: Data Guard Physical Standby
Nas máquinas nerv01 e nerv02, crie um diretório para armazenar ARCHIVED REDO LOGs.
30
Lab 1.4: Data Guard Physical Standby
Na máquina nerv01, conecte-se com RMAN nas duas instâncias e execute a duplicação.
$ rlwrap rman TARGET SYS/Nerv2018 AUXILIARY=SYS/Nerv2018@TERR02
RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE DORECOVER
NOFILENAMECHECK;
Por que não funciona?
31
Lab 1.5: Data Guard Physical Standby
Na máquina nerv01, gere alguns ARCHIVED REDO LOGs, e acompanhe o Alert Log.
SQL> ALTER SYSTEM SWITCH LOGFILE;
32
Modos de Proteção
33
Modos de Proteção
34
Lab 2.1: Modos de Proteção
Nas máquinas nerv01 e nerv02, acompanhe o Alert Log durante este Lab.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Na máquina nerv01, gere alguns ARCHIVED REDO LOGs, e acompanhe os Alert Logs.
35
Lab 2.2: Modos de Proteção
Na máquina nerv01, verifique qual o PROTECTION MODE atual.
SQL> SELECT PROTECTION_MODE FROM V$DATABASE;
$ wget http://www.dominicgiles.com/swingbench/swingbench261090.zip
$ unzip -q swingbench261090.zip
$ cd /home/oracle/swingbench/bin
$ ./oewizard
36
Lab 2.3: Modos de Proteção
37
Lab 2.4: Modos de Proteção
38
Lab 2.5: Modos de Proteção
39
Lab 2.6: Modos de Proteção
40
Lab 2.7: Modos de Proteção
41
Lab 2.8: Modos de Proteção
42
Lab 2.9: Modos de Proteção
43
Lab 2.10: Modos de Proteção
44
Lab 2.11: Modos de Proteção
45
Lab 2.12: Modos de Proteção
46
Lab 2.13: Modos de Proteção
Na máquina nerv01, execute o teste de carga.
$ cd /home/oracle/swingbench/bin
$ ./charbench -uc 10 -cs //localhost/TERRP -rt 00:05 -c ../configs/SOE_Server_Side_V2.xml
-r /home/oracle/MaximumPerformance.xml
$ grep Statements /home/oracle/MaximumPerformance.xml
47
Lab 2.14: Modos de Proteção
Na máquina nerv01, altere o PROTECTION MODE.
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=
'SERVICE=TERR02 SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=TERR02';
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;
48
Lab 2.15: Modos de Proteção
Na máquina nerv01, altere o PROTECTION MODE.
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION;
49
Lab 2.16: Modos de Proteção
Na máquina nerv02, execute SHUTDOWN IMMEDIATE.
Por que não funciona?
Na máquina nerv01, gere alguns ARCHIVED REDO LOGs, e acompanhe os Alert Logs.
50
Lab 3.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=TERR02;
51
Lab 3.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.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Na máquina nerv02, gere alguns ARCHIVED REDO LOGs e acompanhe o Alert Log.
52
Lab 3.3: 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> STARTUP NOMOUNT;
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
Na máquina nerv01, gere alguns ARCHIVED REDO LOGs e acompanhe o Alert Log.
53
Lab 3.4: Switchback
Na máquina nerv01, execute o SWITCHOVER com a sintaxe 12c.
SQL> ALTER DATABASE SWITCHOVER TO TERR02 VERIFY;
SQL> ALTER DATABASE SWITCHOVER TO TERR02;
SQL> STARTUP NOMOUNT;
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Na máquina nerv02, gere alguns ARCHIVED REDO LOGs e acompanhe o Alert Log.
Na máquina nerv01, gere alguns ARCHIVED REDO LOGs e acompanhe o Alert Log.
54
Lab 3.5: Failover
Na máquina nerv01, habilite o FLASHBACK (necessário para o REINSTATE).
SQL> ALTER DATABASE FLASHBACK ON;
55
Lab 3.6: Failover
Na máquina nerv02, verifique a possibilidade de FAILOVER.
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
56
Lab 3.7: Reinstate
Na máquina nerv01, inicie a instância em MOUNT.
SQL> STARTUP MOUNT;
OU
Na máquina nerv02, gere alguns ARCHIVED REDO LOGs e acompanhe o Alert Log.
57
Logical Standby
58
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.
59
Tipos de dados não suportados (18c)
• 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
60
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
61
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
62
Lab 4.1: Logical Standby
Na máquina nerv03, crie um Listener, e inicie-o.
Na máquina nerv01, crie uma entrada no tnsnames.ora (TERR03) para a instância da máquina nerv03.
Na máquina nerv02, crie uma entrada no tnsnames.ora (TERR03) para a instância da máquina nerv03.
Na máquina nerv03, crie uma entrada no tnsnames.ora para a instância da máquina nerv01.
Na máquina nerv03, crie uma entrada no tnsnames.ora para a instância da máquina nerv02.
Na máquina nerv03, crie uma entrada no tnsnames.ora para a instância da máquina nerv03.
Teste a resolução de nomes (ping) e o Oracle Net (tnsping) entre as três máquinas.
63
Lab 4.2: Logical Standby
Na máquina nerv03, crie dois diretórios para armazenar ARCHIVED REDO LOGs.
64
Lab 4.3: Logical Standby
Na máquina nerv03, habilite o RECOVER
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP NOMOUNT;
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 209715200;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 209715200;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 209715200;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 209715200;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Na máquina nerv01, gere alguns ARCHIVED REDO LOGs, e verifique se a nerv03 está sincronizada.
65
Lab 4.4: Logical Standby
Após a máquina nerv03 estar sincronizada, cancele o RECOVER.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
66
Lab 4.5: Logical Standby
Na máquina nerv01, crie uma tabela de teste.
$ rlwrap sqlplus / AS SYSDBA
SQL> CREATE TABLE T AS SELECT * FROM ALL_OBJECTS;
SQL> SELECT COUNT(*) FROM T;
68
Lab 5.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;
69
Lab 5.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;
70
Por que?
Vantagem
✔ 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.
71
Lab 6.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;
SQL> SELECT OPEN_MODE FROM V$DATABASE;
Na máquina nerv01, gere vários ARCHIVEs, e veja se são aplicados na máquina nerv02.
73
Lab 7.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.
Por que não funciona?
Na máquina nerv01, faça uma alteração na tabela de testes e veja se é propagada para a máquina nerv03.
74
Far Sync
75
Far Sync
76
Lab 8.1: Far Sync
Na máquina nerv04, crie um Listener, e inicie-o.
Na máquina nerv01, crie uma entrada no tnsnames.ora (TERR04) para a instância da máquina nerv04.
Na máquina nerv02, crie uma entrada no tnsnames.ora (TERR04) para a instância da máquina nerv04.
Na máquina nerv03, crie uma entrada no tnsnames.ora (TERR04) para a instância da máquina nerv04.
Na máquina nerv04, crie uma entrada no tnsnames.ora para a instância da máquina nerv01.
Na máquina nerv04, crie uma entrada no tnsnames.ora para a instância da máquina nerv02.
Na máquina nerv04, crie uma entrada no tnsnames.ora para a instância da máquina nerv03.
Na máquina nerv04, crie uma entrada no tnsnames.ora para a instância da máquina nerv04.
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=TERR04 ASYNC NOAFFIRM
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=TERR04';
Por que não funciona?
78
Lab 8.3: Far Sync
Na máquina nerv04, habilite a replicação para a máquina nerv02.
$ export ORACLE_SID=TERR
$ rlwrap sqlplus / AS SYSDBA
SQL> STARTUP NOMOUNT;
SQL> ALTER SYSTEM SET SERVICE_NAMES=TERR04 SCOPE=SPFILE;
SQL> ALTER SYSTEM SET DB_UNIQUE_NAME=TERR04 SCOPE=SPFILE;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(TERR,TERR02,TERR03,TERR04)';
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/u01/archives/
VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=TERR04';
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=TERR02 ASYNC
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=TERR02';
SQL> ALTER SYSTEM SET FAL_SERVER=TERR;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 209715200;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 209715200;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 209715200;
SQL> ALTER DATABASE ADD STANDBY LOGFILE SIZE 209715200;
Na máquina nerv01, gere alguns ARCHIVED REDO LOGs, e acompanhe os Alert Logs.
Por que não funciona?
79
Data Guard Broker
80
Data Guard Broker
81
Componentes Data Guard Broker
82
Bystander Standby Databases
83
Lab 9.1: Data Guard Broker
Habilite o FLASHBACK DATABASE nos bancos de dados das máquinas nerv01, nerv02, nerv03 e nerv04.
SQL> SELECT FLASHBACK_ON FROM V$DATABASE;
SQL> ALTER DATABASE FLASHBACK ON;
Adicione uma entrada estática para o Data Guard Broker no listener.ora de cada máquina, incluindo todas
as instâncias que rodam nela, e reinicie o Listener.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = TERR_DGMGRL)
(ORACLE_HOME = /u01/app/oracle/product/18.3.0.0/db_1)
(SID_NAME = TERR)
)
(SID_DESC =
(GLOBAL_DBNAME = URAN03_DGMGRL)
(ORACLE_HOME = /u01/app/oracle/product/18.3.0.0/db_1)
(SID_NAME = URAN)
)
)
$ lsnrctl reload
$ lsnrctl status
84
Lab 9.2: Data Guard Broker
Na máquina nerv01, habilite o Data Guard Broker.
$ rlwrap dgmgrl SYS/Nerv2018@TERR
DGMGRL> CREATE CONFIGURATION 'DRSolution' AS PRIMARY DATABASE IS TERR CONNECT
IDENTIFIER IS TERR;
Por que não funciona?
85
Lab 9.3: Data Guard Broker
Na máquina nerv01, verifique detalhes de um banco de dados.
DGMGRL> SHOW DATABASE TERR;
DGMGRL> SHOW DATABASE VERBOSE TERR;
DGMGRL> SHOW DATABASE TERR InconsistentProperties;
DGMGRL> EDIT DATABASE TERR SET PROPERTY 'ArchiveLagTarget'=1200;
DGMGRL> SHOW DATABASE TERR 'ArchiveLagTarget';
O que apareceu no Alert Log?
86
Lab 9.4: Data Guard Broker
Na máquina nerv01, simule uma manutenção do ambiente.
DGMGRL> EDIT DATABASE TERR03 SET STATE='APPLY-OFF';
DGMGRL> EDIT DATABASE TERR02 SET STATE='APPLY-OFF';
DGMGRL> EDIT DATABASE TERR SET STATE=TRANSPORT-OFF;
Por que não funciona?
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXPERFORMANCE;
DGMGRL> EDIT DATABASE TERR SET STATE=TRANSPORT-OFF;
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;
87
Lab 9.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 TERR02;
Na máquina nerv01, se não tiver nenhum erro, execute Switchover para a máquina nerv01.
DGMGRL> SHOW CONFIGURATION;
DGMGRL> SWITCHOVER TO TERR;
Na máquina nerv01, se não tiver nenhum erro, execute Switchover para a máquina nerv03.
DGMGRL> SHOW CONFIGURATION;
DGMGRL> SWITCHOVER TO TERR03;
O que aconteceu?
Para corrigir, remova e adicione o Physical Standby da máquina nerv02, e a reabilite no Broker.
DGMGRL> REMOVE DATABASE TERR02;
DGMGRL> ADD DATABASE TERR02 AS CONNECT IDENTIFIER IS TERR02;
DGMGRL> ENABLE DATABASE TERR02;
88
Lab 9.6: Data Guard Broker
A partir da máquina nerv01, converta o banco de dados da máquina nerv02 para SNAPSHOT STANDBY.
$ rlwrap dgmgrl SYS/Nerv2018@TERR02
DGMGRL> CONVERT DATABASE TERR02 TO SNAPSHOT STANDBY;
Na máquina nerv01, se não tiver nenhum erro, execute Switchover para a máquina nerv02.
DGMGRL> SWITCHOVER TO TERR02;
Por que não funciona?
89
Lab 9.7: Data Guard Broker
Na máquina nerv01, simule uma indisponibilidade não planejada.
SQL> SHUTDOWN ABORT;
90
Lab 10.1: Fast-Start Failover
Na máquina nerv01, crie uma entrada no /etc/hosts para a máquina nerv05.
Na máquina nerv02, crie uma entrada no /etc/hosts para a máquina nerv05.
Na máquina nerv03, crie uma entrada no /etc/hosts para a máquina nerv05.
Na máquina nerv04, crie uma entrada no /etc/hosts para a máquina nerv05.
Na máquina nerv05, crie uma entrada no tnsnames.ora para a instância da máquina nerv01.
Na máquina nerv05, crie uma entrada no tnsnames.ora para a instância da máquina nerv02.
Na máquina nerv05, crie uma entrada no tnsnames.ora para a instância da máquina nerv03.
Na máquina nerv05, crie uma entrada no tnsnames.ora para a instância da máquina nerv04.
91
Lab 10.2: Fast-Start Failover
Confira se os bancos da máquina nerv01, nerv02 e nerv03 estão com FLASHBACK ativado.
92
Lab 10.3: Fast-Start Failover
Na máquina nerv01, simule uma indisponibilidade não planejada.
$ ps aux | grep pmon
$ kill -9 27186
93
Lab 10.4: Fast-Start Failover
Na máquina nerv01, verifique as condições de Fast-Start Failover e habilite mais uma condição.
DGMGRL> SHOW FAST_START FAILOVER;
DGMGRL> ENABLE FAST_START FAILOVER CONDITION 00001
DGMGRL> SHOW FAST_START FAILOVER;
94
Lab 11.1: RMAN CATALOG
Nas máquinas nerv01, nerv02 e nerv03, crie uma entrada TNS para o Service CATALOGO, IP 192.168.15.2,
porta 1539.
96
Lab 11.3: Auto Block Repair
Na máquina nerv02, habilite o ACTIVE DATA GUARD.
Na máquina nerv01, crie uma nova TABLESPACE, e uma tabela com dados na nova TABLESPACE.
$ rlwrap sqlplus SYSTEM/Nerv2018@TERRP
SQL> CREATE TABLESPACE TESTE DATAFILE '/u01/TESTE.dbf' SIZE 100M;
SQL> CREATE TABLE TESTE TABLESPACE TESTE AS SELECT * FROM ALL_OBJECTS;
Na máquina nerv01, verifique qual o HEADER BLOCK dos dados desta Tabela.
SQL> SELECT HEADER_BLOCK FROM DBA_SEGMENTS WHERE OWNER = 'SYSTEM' AND SEGMENT_NAME
= 'TESTE';
Physical Standby
●
RECOVERY_PARALLELISM
●
ApplyParallel (Data Guard Broker)
Logical Standby
●
SQL> EXECUTE DBMS_LOGSTDBY.APPLY_SET('MAX_SERVERS', 20);
●
SQL> EXECUTE DBMS_LOGSTDBY.APPLY_SET('PREPARE_SERVERS', 10);
●
SQL> EXECUTE DBMS_LOGSTDBY.APPLY_SET('MAX_SGA', 1024);
98
Troubleshooting
• Alert Log
• Parâmetros
• SQL*Net
99
Checklist para Physical Standby
●
Modo ARCHIVELOG.
●
FORCE LOGGING.
●
Resolução de nomes bilateral.
●
Resolução de SQL*Net bilateral.
●
Autenticação via PASSWORD FILE.
●
Criação, cópia e Restore de STANDBY CONTROLFILE (ou ACTIVE DUPLICATION).
●
Backup e Restore (ou ACTIVE DUPLICATION).
●
No Physical Standby, MOUNT em modo STANDBY DATABASE.
●
Adequação de parâmetros no PRIMARY.
●
Adequação de parâmetros no STANDBY.
●
Criação de STANDBY REDO LOGs.
●
No Physical Standby, execução de RECOVER MANAGED STANDBY.
100
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
101
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
102
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;
103
Lab 12.1: VALIDATE
Na máquina nerv01, execute o VALIDATE.
$ rlwrap dgmgrl SYS/Nerv2018@TERR
DGMGRL> VALIDATE DATABASE VERBOSE TERR;
DGMGRL> VALIDATE DATABASE VERBOSE TERR02;
DGMGRL> VALIDATE DATABASE VERBOSE TERR03;
104
Lab 12.2: Recuperação de GAP
Na máquina nerv02, desligue a instância TERR.
$ rlwrap sqlplus / AS SYSDBA
SQL> SHUTDOWN ABORT;
SQL> CREATE PLUGGABLE DATABASE TERRP_ESSA_TBVAI ADMIN USER RICARDO IDENTIFIED BY Nerv2018
STANDBYS=('TERR02') FILE_NAME_CONVERT=('/u01/app/oracle/oradata/TERR/pdbseed/','/u01/app/
oracle/oradata/TERR/TERRP_ESSA_TBVAI/');
SQL> ALTER PLUGGABLE DATABASE TERRP_ESSA_TBVAI OPEN READ WRITE;
SQL> ALTER PLUGGABLE DATABASE TERRP_ESSA_TBVAI SAVE STATE;
SQL> CREATE PLUGGABLE DATABASE TERRP_ESSA_NAOVAI ADMIN USER RICARDO IDENTIFIED BY Nerv2018
STANDBYS=NONE FILE_NAME_CONVERT=('/u01/app/oracle/oradata/TERR/pdbseed/','/u01/app/oracle/
oradata/TERR/TERRP_ESSA_NAOVAI/');
SQL> ALTER PLUGGABLE DATABASE TERRP_ESSA_NAOVAI OPEN READ WRITE;
SQL> ALTER PLUGGABLE DATABASE TERRP_ESSA_NAOVAI SAVE STATE;
106
Lights out administration
107
Lights out administration
●
Produção:
srvctl add service -d TERR -s OLTP -l PRIMARY -w 1 -z 10
srvctl add service -d TERR -s OLAP -l PHYSICAL_STANDBY -w 1 -z 10
●
Standby:
srvctl add service -d TERR02 -s OLTP -l PRIMARY -w 1 -z 10
srvctl add service -d TERR02 -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
108
GDS – Global Data Services
109
Lab 13.1: Global Data Services
Na máquina nerv01, crie uma entrada no /etc/hosts para as máquinas nerv06 e nerv07.
Na máquina nerv02, crie uma entrada no /etc/hosts para as máquinas nerv06 e nerv07.
Na máquina nerv03, crie uma entrada no /etc/hosts para as máquinas nerv06 e nerv07.
Na máquina nerv04, crie uma entrada no /etc/hosts para as máquinas nerv06 e nerv07.
Na máquina nerv05, crie uma entrada no /etc/hosts para as máquinas nerv06 e nerv07.
Nas máquinas nerv06 e nerv07, crie uma entrada no /etc/hosts para a máquina nerv01.
Nas máquinas nerv06 e nerv07, crie uma entrada no /etc/hosts para a máquina nerv02.
Nas máquinas nerv06 e nerv07, crie uma entrada no /etc/hosts para a máquina nerv03.
Nas máquinas nerv06 e nerv07, crie uma entrada no /etc/hosts para a máquina nerv04.
Nas máquinas nerv06 e nerv07, crie uma entrada no /etc/hosts para a máquina nerv05.
Nas máquinas nerv06, crie uma entrada no tnsnames.ora para a instância da máquina nerv01.
Nas máquinas nerv06, crie uma entrada no tnsnames.ora para a instância da máquina nerv02.
Nas máquinas nerv06, crie uma entrada no tnsnames.ora para a instância da máquina nerv03.
Nas máquinas nerv06, crie uma entrada no tnsnames.ora para a instância da máquina nerv04.
110
Lab 13.2: Global Data Services
Na máquina nerv06, crie um PDB no banco ORCL.
$ export ORACLE_SID=ORCL
$ rlwrap sqlplus / as sysdba
SQL> CREATE PLUGGABLE DATABASE GDS ADMIN USER RICARDO IDENTIFIED BY Nerv2018
FILE_NAME_CONVERT=('/u01/app/oracle/oradata/18c/ORCL/pdbseed/','/u01/app/oracle/
oradata/18c/ORCL/GDS/');
111
Lab 13.3: Global Data Services
112
Lab 13.4: Global Data Services
113
Lab 13.5: Global Data Services
# /u01/app/oracle/product/18.3.0.0/gsm/root.sh
Performing root user operation.
Enter the full pathname of the local bin directory: [/usr/local/bin]: <ENTER>
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.
115
Lab 13.7: Global Data Services
Na máquina nerv06, crie uma entrada TNS apra o PDB GDS.
GDS=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=nerv06)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=GDS)(SERVER=DEDICATED)))
116
Lab 13.8: Global Data Services
Na máquina nerv06, configure o GDS.
$ export ORACLE_HOME=/u01/app/oracle/product/18.3.0.0/gsm
$ export TNS_ADMIN=$ORACLE_HOME/network/admin
$ export PATH=$ORACLE_HOME/bin:$PATH
$ cp /u01/app/oracle/product/18.3.0.0/db_1/network/admin/tnsnames.ora
/u01/app/oracle/product/18.3.0.0/gsm/network/admin/
$ rlwrap gdsctl
GDSCTL> CONNECT GSM_ADMIN/Nerv2018@GDS
GDSCTL> create catalog -database GDS -user gsm_admin/Nerv2018;
Na máquina nerv07, crie uma entrada TNS para os serviços criados, e teste a conexão.
SOE_RW =
(DESCRIPTION_LIST=
(DESCRIPTION =
(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=nerv08)(PORT=1522)))
(CONNECT_DATA=(SERVICE_NAME = soe_rw.soe.oradbcloud)))
)
118
Sharding
119
Sharding
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 Logical Standby é um Active Data Guard “grátis”.
●
O Oracle Data Guard é caro: utilize o máximo de recursos dele.
121
Perguntas?
Fórum: http://nervinformatica.com.br/forum/
Copie para a máquina nerv02 os BACKUPPIECEs criados pelo backup executado na máquina nerv01, para
qualquer diretório.
123
Lab Extra 1.2: Standby Manual
Na máquina nerv02, inicie a instância em NOMOUNT.
RMAN> STARTUP NOMOUNT;
124
Lab Extra 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.
125
Lab Extra 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.
126
Lab Extra 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.
TERR=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=nerv01)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=TERR)(SERVER=DEDICATED)))
TERR02=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=nerv02)
(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=TERR02)(SERVER=DEDICATED)))
Teste a resolução de nomes (ping) e o Oracle Net (tnsping) entre as duas máquinas.
Por que não funciona?
127
Lab Extra 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.
128
Lab Extra 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.
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=TERR02 SCOPE=SPFILE;
129
Lab Extra 2.4: Cold Filesystem Backup
Na máquina nerv02, passe a instância ao estágio MOUNT.
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
130
Lab Extra 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.
131
Lab Extra 3.2: User Managed Backup
Na máquina nerv02, inicie a instância, deixando-a em estado NOMOUNT;
132
Lab Extra 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.
Copie para a máquina nerv02 os BACKUPPIECEs criados pelo backup executado na máquina nerv01, para
qualquer diretório.
133
Lab Extra 4.2: RMAN Hot Backup
Na máquina nerv02, inicie a instância em NOMOUNT.
RMAN> STARTUP NOMOUNT;
134
Lab Extra 5.1: RMAN Duplication
Na máquina nerv02, passe a instância ao estágio SHUTDOWN.
Copie para a máquina nerv02 os BACKUPPIECEs criados pelo backup executado na máquina nerv01, para
os mesmos diretórios.
$ rsync -azv /u01/app/oracle/fast_recovery_area/TERR/
nerv04:/u01/app/oracle/fast_recovery_area/TERR/
Na máquina nerv01, conecte-se com RMAN das duas instâncias e execute a duplicação.
$ rman TARGET / AUXILIARY=SYS/Nerv2018@TERR02
RMAN> DUPLICATE TARGET DATABASE FOR STANDBY DORECOVER NOFILENAMECHECK;
135
Lab Extra 5.2: RMAN Duplication
Na máquina nerv02, altere os seguintes parâmetros.
SQL> ALTER SYSTEM SET DB_UNIQUE_NAME=TERR02 SCOPE=SPFILE;
136
Lab Extra 6.1: Low Downtime Upgrade
Altere as variáveis de ambiente para o 11gR2.
Crie um Standby Físico do banco ORCL da máquina nerv01 para a máquina nerv02.
137
Lab Extra 6.2: Low Downtime Upgrade
Ative o FLASHBACK nos dois bancos de dados.
138
Lab Extra 6.3: Low Downtime Upgrade
Na máquina nerv02, pare o LISTENER.
139
Lab Extra 6.4: Low 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/18.3.0.0/db_1/rdbms/admin/utlu121s.sql
SQL> @/u01/app/oracle/product/18.3.0.0/db_1/rdbms/admin/utlrp.sql
SQL> @/u01/app/oracle/product/18.3.0.0/db_1/rdbms/admin/utluiobj.sql
140
Lab Extra 6.5: Low Downtime Upgrade
Na máquina nerv01, pare o LISTENER.
141
Fim