• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Treinamento Oracle Data Guard - Nerv Informática Ltda
 

Treinamento Oracle Data Guard - Nerv Informática Ltda

on

  • 848 views

Não é um Treinamento com Data Guard simulado com VMware, e sim com dois servidores, como um ambiente real de Produção. ...

Não é um Treinamento com Data Guard simulado com VMware, e sim com dois servidores, como um ambiente real de Produção.

Data Guard é um recurso de banco de dados Oracle, cujo objetivo é garantir alta disponibilidade, proteção e recuperação de dados corporativos.
O Data Guard é composto de um pacote de serviços de criação, manutenção, gerenciamento e monitoração de um ou mais bancos de dados em modo de espera (Standby), o que garante que bancos de dados de produção sobrevivam a desastres e corrupção de dados.
O Data Guard mantém esses standby databases como cópias do banco de produção. Então, se um serviço de banco de dados de produção torna-se indisponível devido a uma interrupção, planejada ou não, o Data Guard pode redirecionar o serviço para o Standby database, minimizando o downtime e os transtornos causados pela indisponibilidade do serviço.
Os Bancos Standby também podem ser utilizados como servidores de relatórios, aumentando a disponilidade dos serviços da Produção.
Neste Treinamento os alunos irão montar um servidor Dataguard no Oracle 11gR2, e simular as situações de falha possíveis no ambiente, executando as operações de Switchover e Failover.
Iremos passar pelos vários modelos de sincronismo do Data Guard: Maximum Protection, Maximum Availability, e Maximum Performance.
Iremos também utilizar um Data Guard como um servidor de relatórios, e conhecer as novas funcionalidades do Active Data Guard, do Oracle 11gR2.

Statistics

Views

Total Views
848
Views on SlideShare
559
Embed Views
289

Actions

Likes
0
Downloads
39
Comments
0

3 Embeds 289

http://www.nervinformatica.com.br 213
http://nervinformatica.com.br 72
http://www.linkedin.com 4

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Treinamento Oracle Data Guard - Nerv Informática Ltda Treinamento Oracle Data Guard - Nerv Informática Ltda Presentation Transcript

    • Oracle Data Guard Ricardo Portilho Proni ricardo@nervinformatica.com.br 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/.
    • 2 Alta Disponibilidade
    • 3 • Confiança • Recuperabilidade • Detecção de erros em tempo hábil • Continuidade operacional Características da Alta Disponibilidade
    • 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
    • 5 • Camada 1 (Faturamento, Vendas) • Camada 2 (Compras, Estoque) • Camada 3 (BI, Desenvimento) Sistemas e Alta Disponibilidade
    • 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
    • 7 Implantação de Alta Disponibilidade
    • 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
    • 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
    • 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
    • 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
    • 12 Oracle Data Guard: Evolução
    • 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
    • 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
    • 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
    • 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
    • 17 Oracle Data Guard - Conceitos
    • 18  Primary database  Physical standby database  Logical standby database  Snapshot Standby Database Configurações
    • 19  Redo Transport Services  Apply Services  Role Transitions Serviços
    • 20  Switchover  Switchback  Failover  Reinstate  Convert Role Transitions
    • 21  Enterprise Manager / Grid Control / Cloud Control  DGMGRL  SQL*Plus  Initialization Parameters Interfaces
    • 22  Maximum Performance  Maximum Availability  Maximum Protection Modos de Proteção
    • 23  Oracle RAC  Flashback Database  RMAN Tecnologias Complementares
    • 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?
    • 25 Lab 1: Standby Manual
    • 26 Na máquina nerv01, crie um banco de dados com o nome “SeuNome01”. $ dbca -silent -createDatabase -templateName New_Database.dbt -gdbName PORTILHO01 -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
    • 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
    • 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
    • 29 Na máquina nerv01, gere mais ARCHIVED REDO LOGs RMAN> 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
    • 30 Physical Standby
    • 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?
    • 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
    • 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
    • 34 Lab 2: Physical Standby
    • 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. PORTILHO01=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=nerv01) (PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=PORTILHO01)(SERVER=DEDICATED))) PORTILHO02=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=nerv02) (PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=PORTILHO02)(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)
    • 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=(PORTILHO01,PORTILHO02)'; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1= 'LOCATION=/home/oracle/archives/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PORTILHO01'; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2= 'SERVICE=PORTILHO02 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PORTILHO02'; 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)
    • 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=PORTILHO02 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=PORTILHO02'; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2= '’; SQL> ALTER SYSTEM SET FAL_SERVER=PORTILHO01; 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)
    • 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)
    • 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
    • 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)
    • 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)
    • 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)
    • 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)
    • 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/flash_recovery_area/* nerv02:/u01/app/oracle/flash_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@PORTILHO02 RMAN> DUPLICATE TARGET DATABASE FOR STANDBY DORECOVER NOFILENAMECHECK; Lab 5.1 (RMAN Duplication)
    • 45 Na máquina nerv02, altere os seguintes parâmetros. SQL> ALTER SYSTEM SET DB_UNIQUE_NAME=PORTILHO02 SCOPE=SPFILE; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1= 'LOCATION=/home/oracle/archives/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PORTILHO02' SCOPE=SPFILE; SQL> ALTER SYSTEM SET FAL_SERVER=PORTILHO01 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)
    • 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@PORTILHO02 RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE DORECOVER NOFILENAMECHECK; Lab 6.1 (RMAN Active Duplication)
    • 47 Na máquina nerv02, altere os seguintes parâmetros. SQL> ALTER SYSTEM SET DB_UNIQUE_NAME=PORTILHO02 SCOPE=SPFILE; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1= 'LOCATION=/home/oracle/archives/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PORTILHO02' SCOPE=SPFILE; SQL> ALTER SYSTEM SET FAL_SERVER=PORTILHO01 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 6.2 (RMAN Active Duplication)
    • 48 Modos de Proteção
    • 49  Maximum Performance (NOAFFIRM, ASYNC)  Maximum Availability (AFFIRM, SYNC)  Maximum Protection (AFFIRM, SYNC) Modos de Proteção
    • 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/PORTILHO01/redoSTB01.log') SIZE 52428800; SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/PORTILHO01/redoSTB02.log') SIZE 52428800; SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/PORTILHO01/redoSTB03.log') SIZE 52428800; SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/PORTILHO01/redoSTB04.log') SIZE 52428800; SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; Lab 7.1: Modos de Proteção
    • 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 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; Lab 7.2: Modos de Proteção
    • 52 Na máquina nerv01, altere o PROTECTION MODE. SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2= 'SERVICE=PORTILHO02 SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PORTILHO02'; 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 ON SQL> DROP TABLE T; SQL> CREATE TABLE T AS SELECT * FROM ALL_OBJECTS; SQL> INSERT INTO T SELECT * FROM T; SQL> INSERT INTO T SELECT * FROM T; SQL> INSERT INTO T SELECT * FROM T; SQL> INSERT INTO T SELECT * FROM T; SQL> INSERT INTO T SELECT * FROM T; SQL> INSERT INTO T SELECT * FROM T; SQL> INSERT INTO T SELECT * FROM T; SQL> INSERT INTO T SELECT * FROM T; SQL> COMMIT; Lab 7.3: Modos de Proteção
    • 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 ON SQL> DROP TABLE T; SQL> CREATE TABLE T AS SELECT * FROM ALL_OBJECTS; SQL> INSERT INTO T SELECT * FROM T; SQL> INSERT INTO T SELECT * FROM T; SQL> INSERT INTO T SELECT * FROM T; SQL> INSERT INTO T SELECT * FROM T; SQL> INSERT INTO T SELECT * FROM T; SQL> INSERT INTO T SELECT * FROM T; SQL> INSERT INTO T SELECT * FROM T; SQL> INSERT INTO T SELECT * FROM T; SQL> COMMIT; Lab 7.4: Modos de Proteção
    • 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=PORTILHO02 ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PORTILHO02'; 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
    • 55 Switchover
    • 56 Na máquina nerv01, altere os seguintes parâmetros. SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO; SQL> ALTER SYSTEM SET FAL_SERVER=PORTILHO02; Na máquina nerv02, altere os seguintes parâmetros. SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=PORTILHO01 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PORTILHO01'; 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
    • 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/PORTILHO01/redoSTB01.log') SIZE 52428800; SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/PORTILHO01/redoSTB02.log') SIZE 52428800; SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/PORTILHO01/redoSTB03.log') SIZE 52428800; SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/PORTILHO01/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
    • 58 Switchback
    • 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
    • 60 Failover
    • 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
    • 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
    • 63 Reinstate
    • 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
    • 65 Logical Standby
    • 66 Logical Standby
    • 67 Vantagens  Proteção contra tipos de falhas adicionais.  Uso eficiente de recursos.  Distribuição de carga.  Otiizaçã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?
    • 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
    • 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
    • 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
    • 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
    • 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
    • 73 Lab 12: Logical Standby
    • 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 (PORTILHO03) 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
    • 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=PORTILHO03 SCOPE=SPFILE; SQL> ALTER SYSTEM SET DB_UNIQUE_NAME=PORTILHO03 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=PORTILHO03'; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=PORTILHO01 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PORTILHO01'; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_3='LOCATION=/home/oracle/archives_stb/ VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=PORTILHO03'; SQL> ALTER SYSTEM SET FAL_SERVER=PORTILHO01; Lab 12.2: Logical Standby
    • 76 Na máquina nerv01, conecte-se com RMAN das duas instâncias e execute a duplicação. $ rman TARGET / AUXILIARY=SYS/Nerv2014@PORTILHO03 RMAN> 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=PORTILHO03 ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PORTILHO03'; 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/PORTILHO01/redoSTB01.log') SIZE 52428800; SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/PORTILHO01/redoSTB02.log') SIZE 52428800; SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/PORTILHO01/redoSTB03.log') SIZE 52428800; SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/PORTILHO01/redoSTB04.log') SIZE 52428800; SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; Lab 12.3: Logical Standby
    • 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 PORTILHO; SQL> SHUTDOWN; 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
    • 78 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; Na máquina nerv03, confira a tabela criada. SQL> SELECT COUNT(*) FROM T; Por que não funciona? Lab 12.5: Logical Standby
    • 79 Active Data Guard
    • 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/TIGER SQL> SELECT COUNT(*) FROM T; Na máquina nerv01, faça uma alteração na tabela de testes. SQL> CONN SCOTT/TIGER SQL> 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/TIGER SQL> SELECT COUNT(*) FROM T; 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; Lab 13.1: Active Data Guard
    • 81 Na máquina nerv02, verifique que a alteração agora foi feita. SQL> CONN SCOTT/TIGER SQL> SELECT COUNT(*) FROM T; Lab 13.2: Active Data Guard
    • 82 Snapshot Standby
    • 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?
    • 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/TIGER SQL> 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
    • 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/TIGER SQL> 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
    • 86 Cascade Standby
    • 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
    • 88 Data Guard Broker
    • 89 Data Guard Broker
    • 90 Data Guard Broker
    • 91 Componentes Data Guard Broker
    • 92 Bystander Standby Databases
    • 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. SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=PORTILHO02_DGMGRL) (ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/db_1) (SID_NAME=PORTILHO01) ) ) Lab 16.1: Data Guard Broker
    • 94 Na máquina nerv01, habilite o Data Guard Broker. [oracle@OracleDG01 ~]$ dgmgrl SYS/Nerv2014@PORTILHO01 DGMGRL> CREATE CONFIGURATION 'DRSolution' AS PRIMARY DATABASE IS PORTILHO01 CONNECT IDENTIFIER IS PORTILHO01; Por que não funciona? Na máquina nerv01, adicione as outras máquinas da configuração. DGMGRL> ADD DATABASE PORTILHO02 AS CONNECT IDENTIFIER IS PORTILHO02; DGMGRL> ADD DATABASE PORTILHO03 AS CONNECT IDENTIFIER IS PORTILHO03; 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
    • 95 Na máquina nerv01, verifique detalhes de um banco de dados. DGMGRL> SHOW DATABASE VERBOSE PORTILHO01; DGMGRL> EDIT DATABASE PORTILHO01 SET PROPERTY 'ArchiveLagTarget'=1200; DGMGRL> SHOW DATABASE PORTILHO01 'ArchiveLagTarget'; Na máquina nerv01, altere o Protection Mode. DGMGRL> EDIT DATABASE PORTILHO02 SET PROPERTY 'LogXptMode'='SYNC'; DGMGRL> EDIT DATABASE PORTILHO03 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
    • 96 Na máquina nerv01, simule uma manutenção do ambiente. DGMGRL> EDIT DATABASE PORTILHO03 SET STATE='APPLY-OFF'; DGMGRL> EDIT DATABASE PORTILHO02 SET STATE='APPLY-OFF'; DGMGRL> EDIT DATABASE PORTILHO01 SET STATE=TRANSPORT-OFF; Por que não funciona? Na máquina nerv01, simule o fim da manutenção do ambiente. DGMGRL> EDIT DATABASE PORTILHO01 SET STATE=TRANSPORT-ON; DGMGRL> EDIT DATABASE PORTILHO03 SET STATE='APPLY-ON'; DGMGRL> EDIT DATABASE PORTILHO02 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
    • 97 Na máquina nerv01, se não tiver nenhum erro, execute Switchover para a máquina nerv02. DGMGRL> SHOW CONFIGURATION; DGMGRL> SWITCHOVER TO PORTILHO02; Na máquina nerv01, se não tiver nenhum erro, execute Switchover para a máquina nerv01. DGMGRL> SHOW CONFIGURATION; DGMGRL> SWITCHOVER TO PORTILHO01; Na máquina nerv01, se não tiver nenhum erro, execute Switchover para a máquina nerv03. DGMGRL> SHOW CONFIGURATION; DGMGRL> SWITCHOVER TO PORTILHO03; 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 PORTILHO01; O que aconteceu? Para corrigir, recrie o Physical Standby na máquina, nerv02, e a reabilite no Broker. DGMGRL> REMOVE DATABASE PORTILHO02; DGMGRL> ADD DATABASE PORTILHO02 AS CONNECT IDENTIFIER IS PORTILHO02; DGMGRL> ENABLE DATABASE PORTILHO02; Lab 16.5: Data Guard Broker
    • 98 A partir da máquina nerv01, converta o banco de dados da máquina nerv02 para SNAPSHOT STANDBY. [oracle@nerv01 ~]$ dgmgrl SYS/Nerv2014@PORTILHO02 DGMGRL> CONVERT DATABASE PORTILHO02 TO SNAPSHOT STANDBY; Converta o banco de dados da máquina nerv02 de volta para PHYSICAL STANDBY. DGMGRL> CONVERT DATABASE PORTILHO02 TO PHYSICAL STANDBY; Lab 16.6: Data Guard Broker
    • 99 Na máquina nerv02, execute FAILOVER para a máquina nerv02. [oracle@OracleDG02 ~]$ dgmgrl SYS/Nerv2014@PORTILHO02 DGMGRL> SHOW CONFIGURATION; DGMGRL> FAILOVER TO PORTILHO02; DGMGRL> SHOW CONFIGURATION; Na máquina nerv02, EXECUTE o REISNTATE do banco da máquina nerv01. DGMGRL> REINSTATE DATABASE PORTILHO01; Faça o SWITCHOVER de volta para a máquina nerv01. Lab 16.7: Data Guard Broker
    • 100 Fast-Start Failover
    • 101 Lights out administration
    • 102 Lights out administration ● Produção: srvctl add service -d PORTILHO01 -s OLTP -l PRIMARY -w 1 -z 10 srvctl add service -d PORTILHO01 -s OLAP -l PHYSICAL_STANDBY -w 1 -z 10 ● Standby: srvctl add service -d PORTILHO02 -s OLTP -l PRIMARY -w 1 -z 10 srvctl add service -d PORTILHO02 -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
    • 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 PORTILHO01 SET PROPERTY FastStartFailoverTarget=PORTILHO02; 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 nerv01 e inicie o OBSERVER. oracle@nerv04 ~]$ dgmgrl SYS/Nerv2014@PORTILHO01 DGMGRL> START OBSERVER; Lab 17.1: Fast-Start Failover
    • 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
    • 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=PORTILHO01'; 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=PORTILHO01'; 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
    • 106 Data Guard Backup & Recovery
    • 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 PORTILHO02; RMAN> REPORT SCHEMA FOR DB_UNIQUE_NAME PORTILHO02; RMAN> SHOW ALL FOR DB_UNIQUE_NAME PORTILHO02; Lab 18.1: RMAN CATALOG
    • 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
    • 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/TIGER SQL> 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
    • 110 Data Guard & RAC
    • 111 Data Guard e RAC DGMGRL> EDIT DATABASE PORTILHO SET STATE='APPLY-ON' WITH APPLY INSTANCE=STB1;
    • 112 Data Guard Broker e RAC
    • 113 Tuning
    • 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
    • 115 Troubleshooting
    • 116  Alert Log  Parâmetros  SQL*Net Troubleshooting
    • 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
    • 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
    • 119 Melhores Práticas
    • 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.
    • 121 Zero Downtime Upgrade
    • 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 nerv02. Desligue o Standby na máquina nerv02. Na máquina nerv01, desabilite o envio de ARCHIVEs para a máquina nerv03. Desligue o Standby na máquina nerv03. Na máquina nerv04, crie um novo PHYSICAL STANDBY. Na máquina nerv04, tranforme o PHYSICAL STANDBY em LOGICAL STANDBY. SQL> ALTER DATABASE RECOVER TO LOGICAL STANDBY KEEP IDENTITY; Na máquina nerv04, cancele o SQL APPLY. SQL> ALTER DATABASE STOP LOGICAL STANDBY APPLY; Na máquina nerv04, pare o LISTENER. $ lsnrctl stop Na máquina nerv01, coloque o envio de ARCHIVEs para a máquina nerv04 em DEFER. SQL> ALTER SYSTEM SET log_archive_dest_state_4=DEFER; Lab Extra.1: Zero Downtime Upgrade
    • 123 Lab Extra.2: Zero Downtime Upgrade Na máquina nerv04, execute a validação pré-upgrade e corrija o que for necessário. SQL> @/u01/app/oracle/product/11.2.0.3/db_1/rdbms/admin/utlu112i.sql Na máquina nerv04, copie os arquivos necessários do ORACLE_HOME antigo para o novo. $ cp $ORACLE_HOME/dbs/spfilePORTILHO01.ora /u01/app/oracle/product/11.2.0.3/db_1/dbs/spfilePORTILHO01.ora $ cp $ORACLE_HOME/dbs/orapwPORTILHO01 /u01/app/oracle/product/11.2.0.3/db_1/dbs/orapwPORTILHO01 $ cp $ORACLE_HOME/network/admin/listener.ora /u01/app/oracle/product/11.2.0.3/db_1/network/admin/listener.ora $ cp $ORACLE_HOME/network/admin/tnsnames.ora /u01/app/oracle/product/11.2.0.3/db_1/network/admin/tnsnames.ora $ export ORACLE_HOME=/u01/app/oracle/product/11.2.0.3/db_1/ $ export PATH=$ORACLE_HOME/bin:$PATH $ export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib $ export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib Na máquina nerv04, execute o UPGRADE. SQL> STARTUP UPGRADE SQL> @?/rdbms/admin/catupgrd.sql SQL> STARTUP SQL> @?/rdbms/admin/utlu112s.sql SQL> @?/rdbms/admin/catuppst.sql SQL> @?/rdbms/admin/utlrp.sql
    • 124 Lab Extra.3: Zero Downtime Upgrade Na máquina nerv04, inicie o LISTENER. Na máquina nerv01, reabilite o envio de ARCHIVEs para a máquina nerv04. SQL> ALTER SYSTEM SET log_archive_dest_state_4=ENABLE; Na máquina nerv04, reinicie a aplicação de ARCHIVEs, e aguarde ela estar sincronizada. SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE; Na máquina nerv01, converta-a para um LOGICAL STANDBY. SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO LOGICAL STANDBY; Na máquina nerv04, converta-a para PRIMARY. SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
    • 125 Lab Extra.4: Zero Downtime Upgrade Na máquina nerv04, coloque o envio de ARCHIVEs para a máquina nerv01 em DEFER. SQL> ALTER SYSTEM SET log_archive_dest_state_2=DEFER; Na máquina nerv01, pare o LISTENER. Na máquina nerv01, execute a validação pré-upgrade e corrija o que for necessário. Na máquina nerv01, copie os arquivos necessários do ORACLE_HOME antigo para o novo. Na máquina nerv04, execute o UPGRADE. Na máquina nerv01, inicie o LISTENER. Na máquina nerv04, reabilite o envio de ARCHIVEs para a máquina nerv01. SQL> ALTER SYSTEM SET log_archive_dest_state_2=ENABLE; Na máquina nerv01, sincronize-a como um LOGICAL STANDBY. SQL> CREATE PUBLIC DATABASE LINK UPGRADE_DBLINK CONNECT TO SYSTEM IDENTIFIED BY Nerv2014 USING 'PORTILHO04'; SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE NEW PRIMARY UPGRADE_DBLINK; Na máquina nerv01, converta o banco de dados para PRIMARY. SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
    • 126 Lab Extra.5: Zero Downtime Upgrade Na máquina nerv01, desabilite o envio de ARCHIVEs para a máquina nerv04. SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_4=’’; Na máquina nerv01, desabilite o envio de ARCHIVEs para a máquina nerv04. Desligue o Standby na máquina nerv04. Recrie o PHYSICAL STANDBY da máquina nerv02. Recrie o LOGICAL STANDBY da máquina nerv03. Reabilite o Data Guard Broker. Reinicie o OBSERVER na máquina nerv04.