Enabling Active Data Guard Option (using Data Broker)

Neste artigo, vamos explorar como habilitar o Active Data Guard usando o utilitário DGMGRL (Data Broker). Lembrando que utilizar este recurso exige uma licença específica que deve ser considerada antes.

Checando os bancos de dados envolvidos:

[oracle@fornix1 ~]$ dgmgrl sys/oracle@CORTEX
DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Jun 2 06:26:32 2021
Version 19.3.0.0.0
 
Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
 
Welcome to DGMGRL, type "help" for information.
Connected to "cortex"
Connected as SYSDBA.
DGMGRL> SHOW CONFIGURATION;
 
Configuration - cortex
 
  Protection Mode: MaxPerformance
  Members:
  cortex   - Primary database
    cortexdr - Physical standby database
 
Fast-Start Failover:  Disabled
 
Configuration Status:
SUCCESS   (status updated 10 seconds ago)
 
DGMGRL> SHOW DATABASE CORTEX;
 
Database - cortex
 
  Role:               PRIMARY
  Intended State:     TRANSPORT-ON
  Instance(s):
    cortex
 
Database Status:
SUCCESS
 
DGMGRL> SHOW DATABASE CORTEXDR;
 
Database - cortexdr
 
  Role:               PHYSICAL STANDBY
  Intended State:     APPLY-OFF
  Transport Lag:      0 seconds (computed 0 seconds ago)
  Apply Lag:          (unknown)
  Average Apply Rate: (unknown)
  Real Time Query:    OFF
  Instance(s):
    CORTEXDR
 
Database Status:
SUCCESS

Considerando que o banco Standby está em MOUNT, e que o processo de Redo Apply está parado, podemos abrir o banco de dados standby:

[oracle@fornix2 ~]$ sqlplus / as sysdba
 
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jun 2 06:28:13 2021
Version 19.3.0.0.0
 
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
 
 
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
 
SQL> SELECT NAME,OPEN_MODE,DATABASE_ROLE FROM V$DATABASE;
 
NAME      OPEN_MODE            DATABASE_ROLE
--------- -------------------- ----------------
CORTEX    MOUNTED              PHYSICAL STANDBY
 
SQL> ALTER DATABASE OPEN;
 
Database altered.

Iniciando processo de Redo Apply:

[oracle@fornix2 ~]$ dgmgrl sys/oracle@CORTEXDR
DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Jun 2 06:30:10 2021
Version 19.3.0.0.0
 
Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
 
Welcome to DGMGRL, type "help" for information.
Connected to "cortexDR"
Connected as SYSDBA.
DGMGRL> EDIT DATABASE CORTEXDR SET STATE=APPLY-ON;

Para realizar um teste, vamos criar uma tabela com 1 registro no Primary:

[oracle@fornix1 ~]$ sqlplus / as sysdba
 
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jun 2 06:33:29 2021
Version 19.3.0.0.0
 
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
 
 
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
 
SQL> CREATE TABLE SOE.TESTE1 (DESCRICAO VARCHAR2(20));
 
Table created.
 
SQL> INSERT INTO SOE.TESTE1 (DESCRICAO) VALUES ('ACTIVE DATA GUARD');
 
1 row created.
 
SQL> COMMIT;
 
Commit complete.

No standby, podemos validar que não há Apply Lag, o que nos permite já consultar a tabela nova:

SQL> SELECT value "Lag", datum_time "Received Time", Time_Computed "Time Computed " FROM V$DATAGUARD_STATS WHERE name like 'apply lag';
 
Lag
----------------------------------------------------------------
Received Time                  Time Computed
------------------------------ ------------------------------
+00 00:00:00
06/02/2021 06:36:26            06/02/2021 06:36:26
 
 
SQL> SELECT * FROM SOE.TESTE1;
 
DESCRICAO
--------------------
ACTIVE DATA GUARD

Obs: Este procedimento foi criado pelo senhor Ahmed Baraka (www.ahmedbaraka.com) e foi apenas reproduzido por mim em um laboratório pessoal para fins de aprendizado.

Leave a Comment

Your email address will not be published.