Foto de Roberto Sobrinho
Roberto Sobrinho

09/01/2026

Snapshot Standby com Data Guard Broker no Oracle 19c

Quando usar snapshot standby no Oracle Data Guard

Em ambientes com Oracle Data Guard, há situações em que se torna necessário executar alterações estruturais, aplicar patches, validar funcionalidades ou simular cargas sem afetar a integridade do banco primário. Nestes casos, o uso do snapshot standby permite converter o standby temporariamente para modo leitura e escrita, viabilizando testes completos em um ambiente isolado.

Essa funcionalidade só é possível porque, durante a conversão para snapshot standby, o Data Guard Broker cria automaticamente um Guaranteed Restore Point no banco standby. A partir daí, o Flashback Database garante a reversão exata ao estado anterior. Após os testes, o banco é revertido para Physical Standby, descartando todas as mudanças feitas durante o snapshot e retomando a sincronização com o primário.

Operacionalmente, é obrigatório que o Flashback esteja habilitado e que a Fast Recovery Area (FRA) tenha espaço suficiente.

.


Ambiente Oracle 19c com Data Guard

FunçãoDatacenterHostIPInstânciaUnique Name
PrimárioBRsrvora4192.168.56.11AUTOBRAUTO_U_BR
StandbyUSsrvora3192.168.56.10AUTOUSAUTO_U_US

.


Passo a passo para usar snapshot standby com segurança


1. Preparação inicial

Antes de executar qualquer comando:

  • Abrir o alert.log do primário e do standby com tail -f
  • Abrir também o drc.log (log do Data Guard Broker) nos dois lados: tail -f
  • Usar dois terminais por banco: um para comandos, outro só para logs
  • Não continuar se o broker não estiver funcional (Configuration Status = SUCCESS)

.


TREINAMENTO

🟢 Data Guard 🟢

30/01 e 31/01

Inscreva-se

.


2. Verificar o status do Data Guard Broker

2.1 Status geral

DGMGRL> SHOW CONFIGURATION;

Esperado: Configuration Status: SUCCESS

DGMGRL> SHOW CONFIGURATION;

Configuration - DG_AUTO

  Protection Mode: MaxPerformance
  Members:
  AUTO_U_BR - Primary database
    AUTO_U_US - Physical standby database

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 8 seconds ago)

DGMGRL>
ShellSession

2.2 Detalhes completos

DGMGRL> SHOW CONFIGURATION VERBOSE;
DGMGRL> SHOW CONFIGURATION VERBOSE;

Configuration - DG_AUTO

  Protection Mode: MaxPerformance
  Members:
  AUTO_U_BR - Primary database
    AUTO_U_US - Physical standby database

  Properties:
    FastStartFailoverThreshold      = '30'
    OperationTimeout                = '30'
    TraceLevel                      = 'USER'
    FastStartFailoverLagLimit       = '30'
    CommunicationTimeout            = '180'
    ObserverReconnect               = '0'
    FastStartFailoverAutoReinstate  = 'TRUE'
    FastStartFailoverPmyShutdown    = 'TRUE'
    BystandersFollowRoleChange      = 'ALL'
    ObserverOverride                = 'FALSE'
    ExternalDestination1            = ''
    ExternalDestination2            = ''
    PrimaryLostWriteAction          = 'CONTINUE'
    ConfigurationWideServiceName    = 'AUTO_CFG'

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS

DGMGRL>
ShellSession

2.3 Consultar Lag

DGMGRL> SHOW CONFIGURATION LAG;

Esperado: Apply Lag e Transport Lag = 0 seconds ou próximo disso

PULO DO GATO: gap ou apply parado? parar aqui.

DGMGRL> SHOW CONFIGURATION LAG;

Configuration - DG_AUTO

  Protection Mode: MaxPerformance
  Members:
  AUTO_U_BR - Primary database
    AUTO_U_US - Physical standby database
                Transport Lag:      0 seconds (computed 1 second ago)
                Apply Lag:          0 seconds (computed 1 second ago)

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 38 seconds ago)

DGMGRL>
ShellSession

2.4 Validar standby antes da conversão

DGMGRL> VALIDATE DATABASE 'AUTO_U_US';

Esperado: Confirmar que o broker está pronto para switchover/failover e verificar o status do Flashback = Yes – ⚠️ Se o flashback estiver Off, não continuar.

DGMGRL> VALIDATE DATABASE 'AUTO_U_US';

  Database Role:     Physical standby database
  Primary Database:  AUTO_U_BR

  Ready for Switchover:  Yes
  Ready for Failover:    Yes (Primary Running)

  Managed by Clusterware:
    AUTO_U_BR:  YES
    AUTO_U_US:  YES

  Standby Apply-Related Information:
    Apply State:      Running
    Apply Lag:        Unknown

    Apply Delay:      0 minutes

DGMGRL>
ShellSession

.


3. Verificar FRA no standby

Mesmo com flashback ativo, o restore point só funciona se a FRA tiver espaço suficiente.

3.1 Parâmetros da FRA

SQL> SHOW PARAMETER db_recovery_file_dest;
SQL> SHOW PARAMETER db_recovery_file_dest_size;

Esses parâmetros mostram o caminho e o tamanho total disponível da FRA.

srvora3:AUTOUS\sys = MOUNTED> SHOW PARAMETER db_recovery_file_dest;

NAME                                 | TYPE                         | VALUE
------------------------------------ | ---------------------------- | --------------------
db_recovery_file_dest                | string                       | +FRA
db_recovery_file_dest_size           | big integer                  | 100G

srvora3:AUTOUS\sys = MOUNTED>
SQL

3.2 Uso atual da FRA

SQL> SELECT file_type, percent_space_used, percent_space_reclaimable, 
       FROM v$flash_recovery_area_usage;

Esse comando mostra o que está consumindo espaço na FRA (archive logs, backups, restore points, etc).

srvora3:AUTOUS\sys = MOUNTED> 

SELECT file_type, percent_space_used, percent_space_reclaimable, number_of_files
  2   FROM v$flash_recovery_area_usage;

FILE_TYPE               | PERCENT_SPACE_USED | PERCENT_SPACE_RECLAIMABLE | NUMBER_OF_FILES
----------------------- | ------------------ | ------------------------- | ---------
CONTROL FILE            |                  0 |                         0 |               0
REDO LOG                |               1.37 |                         0 |               7
ARCHIVED LOG            |                .02 |                       .01 |              13
BACKUP PIECE            |                  0 |                         0 |               0
IMAGE COPY              |                  0 |                         0 |               0
FLASHBACK LOG           |                .39 |                        .2 |               2
FOREIGN ARCHIVED LOG    |                  0 |                         0 |               0
AUXILIARY DATAFILE COPY |                  0 |                         0 |               0

8 rows selected.

srvora3:AUTOUS\sys = MOUNTED>
SQL

.


4. Converter para snapshot standby via broker

DGMGRL> CONVERT DATABASE 'AUTO_U_US' TO SNAPSHOT STANDBY;

O broker:

  • Cria restore point automático
  • Abre o banco em modo READ WRITE

Não interromper o processo.

DGMGRL> CONVERT DATABASE 'AUTO_U_US' TO SNAPSHOT STANDBY;
Converting database "AUTO_U_US" to a Snapshot Standby database, please wait...
Database "AUTO_U_US" converted successfully
DGMGRL>
ShellSession

.


TREINAMENTO

🟢 Data Guard 🟢

30/01 e 31/01

Inscreva-se

.


5. Validar conversão e estado do banco

5.1 Verificações no broker

DGMGRL> SHOW CONFIGURATION;
DGMGRL> SHOW DATABASE VERBOSE 'AUTO_U_US';
DGMGRL> SHOW CONFIGURATION LAG;

O que esperar:

  • Database Role = SNAPSHOT STANDBY
  • OpenMode = READ-WRITE
  • Apply Lag começará a crescer (é normal — o banco está aberto e não aplica redo durante o snapshot)
  • Transport Lag deve continuar zerado ou próximo disso (o transporte continua funcionando)

Pulo do gato: nesse ponto, o apply está parado de propósito. O lag aumenta, mas isso é esperado e aceitável durante os testes.

DGMGRL>  SHOW CONFIGURATION;

Configuration - DG_AUTO

  Protection Mode: MaxPerformance
  Members:
  AUTO_U_BR - Primary database
    AUTO_U_US - Snapshot standby database

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 60 seconds ago)

DGMGRL> SHOW DATABASE 'AUTO_U_US';

Database - AUTO_U_US

  Role:               SNAPSHOT STANDBY
  Transport Lag:      0 seconds (computed 0 seconds ago)
  Apply Lag:          22 minutes 41 seconds (computed 0 seconds ago)
  Instance(s):
    AUTOUS

Database Status:
SUCCESS

DGMGRL>  SHOW CONFIGURATION LAG;

Configuration - DG_AUTO

  Protection Mode: MaxPerformance
  Members:
  AUTO_U_BR - Primary database
    AUTO_U_US - Snapshot standby database
                Transport Lag:      0 seconds (computed 1 second ago)
                Apply Lag:          22 minutes 47 seconds (computed 1 second ago)

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 12 seconds ago)

DGMGRL>
ShellSession

5.2 Verificar open_mode e role no banco

SQL> SELECT name, open_mode, database_role FROM v$database;

Esperado: SNAPSHOT STANDBY, READ WRITE

srvora3:AUTOUS\sys = OPEN> SELECT name, open_mode, database_role FROM v$database;

NAME       | OPEN_MODE            | DATABASE_ROLE
---------- | -------------------- | ----------------
AUTO       | READ WRITE           | SNAPSHOT STANDBY

1 row selected.

srvora3:AUTOUS\sys = OPEN>
SQL

5.3 Verificar restore point criado

SQL> SELECT
       name AS name_restore_point,
       scn,
       ROUND(storage_size / (1024*1024), 2) AS storage_mb,
       guarantee_flashback_database AS guar
     FROM v$restore_point;

Esperado: guarantee_flashback_database = YES

srvora3:AUTOUS\sys = OPEN>  SELECT name AS name_restore_point,
                               scn,
                               ROUND(storage_size / (1024*1024), 2) AS storage_mb,
                               guarantee_flashback_database AS guar
                            FROM v$restore_point;

NAME_RESTORE_POINT                              |     SCN | STORAGE_MB | GUA
----------------------------------------------- | ------- | ---------- | ---
SNAPSHOT_STANDBY_REQUIRED_01/08/2026 17:20:50   | 3459307 |        200 | YES

1 row selected.

srvora3:AUTOUS\sys = OPEN>
SQL

.


6. Executar testes no snapshot standby

Neste momento, o banco de dados standby está em modo READ WRITE, permitindo a execução de testes completos, como:

  • Alterações estruturais (DDL)
  • Execução de cargas de aplicação
  • Testes de performance e tuning
  • Aplicação de patches ou validações em ambiente isolado

Todas as transações realizadas aqui não impactam o banco primário. O ambiente pode ser explorado livremente, como se fosse um ambiente de homologação com dados reais.

.


7. Reverter snapshot para physical standby

Encerrados os testes, o próximo passo é reverter o banco para o modo Physical Standby. Isso é feito pelo próprio Data Guard Broker, que executa um flashback até o restore point criado automaticamente.

⚠️ Atenção: ao reverter para Physical Standby, todas as alterações feitas serão descartadas. Nenhuma transação é preservada após o flashback.

DGMGRL> CONVERT DATABASE 'AUTO_U_US' TO PHYSICAL STANDBY;

Durante o processo, o broker:

  • Executa o flashback até o SCN original
  • Descarta todas as alterações feitas durante o snapshot
  • Monta o banco em MOUNTED, pronto para reaplicar os logs recebidos

⚠️ Não interromper o processo. Ele pode levar alguns minutos

DGMGRL> show configuration

Configuration - DG_AUTO

  Protection Mode: MaxPerformance
  Members:
  AUTO_U_BR - Primary database
    AUTO_U_US - Snapshot standby database

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 5 seconds ago)

DGMGRL> CONVERT DATABASE 'AUTO_U_US' TO PHYSICAL STANDBY;
Converting database "AUTO_U_US" to a Physical Standby database, please wait...
Operation requires a connection to database "AUTO_U_BR"
Connecting ...
Connected to "AUTO_U_BR"
Connected as SYSDBA.
Oracle Clusterware is restarting database "AUTO_U_US" ...
Connected to an idle instance.
Connected to an idle instance.
Connected to an idle instance.
Connected to an idle instance.
Connected to "AUTO_U_US"
Connected to "AUTO_U_US"
Continuing to convert database "AUTO_U_US" ...
Database "AUTO_U_US" converted successfully
DGMGRL>
DGMGRL>  show configuration

Configuration - DG_AUTO

  Protection Mode: MaxPerformance
  Members:
  AUTO_U_BR - Primary database
    AUTO_U_US - Physical standby database

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 58 seconds ago)
ShellSession

.


8. Validar o retorno para physical standby

DGMGRL> SHOW CONFIGURATION;
DGMGRL> SHOW CONFIGURATION LAG;
DGMGRL> SHOW DATABASE 'AUTO_U_US';

O que esperar:

  • Database Role = PHYSICAL STANDBY
  • OpenMode = MOUNTED
  • Apply Lag pode aparecer alto logo após a reversão e isso é esperado, pois o MRP ainda está aplicando os logs acumulados durante o snapshot. Esse lag deve começar a cair rapidamente, conforme os logs forem sendo aplicados no standby.
  • Transport Lag deve estar baixo ou zerado, indicando que o primário continua enviando os redo normalmente.
DGMGRL> SHOW CONFIGURATION;

Configuration - DG_AUTO

  Protection Mode: MaxPerformance
  Members:
  AUTO_U_BR - Primary database
    AUTO_U_US - Physical standby database

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 14 seconds ago)

DGMGRL>  SHOW CONFIGURATION LAG;

Configuration - DG_AUTO

  Protection Mode: MaxPerformance
  Members:
  AUTO_U_BR - Primary database
    AUTO_U_US - Physical standby database
                Transport Lag:      0 seconds (computed 0 seconds ago)
                Apply Lag:          0 seconds (computed 0 seconds ago)

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 19 seconds ago)

DGMGRL>  SHOW DATABASE 'AUTO_U_US';

Database - AUTO_U_US

  Role:               PHYSICAL STANDBY
  Intended State:     APPLY-ON
  Transport Lag:      0 seconds (computed 1 second ago)
  Apply Lag:          0 seconds (computed 1 second ago)
  Average Apply Rate: 24.00 KByte/s
  Real Time Query:    OFF
  Instance(s):
    AUTOUS

Database Status:
SUCCESS
ShellSession

.


O Snapshot Standby permite executar testes e mudanças no standby sem afetar o ambiente principal. Com o Data Guard Broker, o processo de conversão e reversão se torna simples e controlado.

Seguindo as validações de flashback, FRA e lag, o recurso pode ser usado com segurança em rotinas de manutenção, validação e troubleshooting.

.


Referências oficiais da Oracle

.


#20260109 #DBASobrinho #GuinaNãoTinhaDó #BóBó #CaceteDeAgulha #OracleACE #PowerLab #ChaoLava #2026 #FelizNatal


TREINAMENTO

🟢 Data Guard 🟢

30/01 e 31/01

Inscreva-se

Compartilhe

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print