Valide a implementação do Data Guard

Depois de configurar o agente do Data Guard, tem de verificar se a repetição foi copiada da base de dados principal e aplicada na base de dados em espera. O procedimento seguinte pode ser usado para verificar o estado do DataGuard nas bases de dados principal e de espera.

Os exemplos seguintes são usados ao longo deste guia:

Nome exclusivo da base de dados Nomes de anfitrião do servidor Nomes das instâncias do RAC Função
DBDG_SITE1 site1db1, site1db2 DBDG_SITE11, DBDG_SITE12 Primary
DBDG_SITE2 site2db1, site2db2 DBDG_SITE21, DBDG_SITE22 Modo de espera

Valide a implementação do Data Guard

  1. Inicie sessão no primeiro servidor da Bare Metal Solution que aloja a base de dados principal e, em seguida, defina a variável de ambiente ORACLE_SID para poder estabelecer ligação à base de dados principal:

    source oraenv <<< "DBDG_SITE11"
    
  2. Inicie o SQL*Plus e, em seguida, determine o número de sequência mais recente para os registos de refazer arquivados:

    sqlplus / as sysdba
    
    SELECT THREAD#, max(SEQUENCE#) "Last Primary Seq Archived"
    FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# =
    VDB.RESETLOGS_CHANGE# GROUP BY THREAD# ORDER BY 1;
    

    O resultado seguinte tem um número de sequência máximo de 40 para a discussão 1 e um número de sequência máximo de 33 para a discussão 2:

       THREAD# Last Primary Seq Archived
    ---------- -------------------------
             1                        40
             2                        33
    

    Registe os resultados para comparar com a base de dados em espera. Os números de sequência na base de dados de espera devem corresponder à base de dados principal.

  3. Inicie sessão no primeiro servidor da Bare Metal Solution que aloja a base de dados em espera e, em seguida, defina a variável de ambiente ORACLE_SID para poder estabelecer ligação à base de dados em espera:

    source oraenv <<< "DBDG_SITE21"
    
  4. Inicie o SQL*Plus e, em seguida, valide se o número de sequência mais recente recebido e aplicado para os registos de refazer arquivados corresponde ao número de sequência mais recente na base de dados principal:

    sqlplus / as sysdba
    
    SELECT THREAD#, max(SEQUENCE#) "Last Standby Seq Received"
    FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# =
    VDB.RESETLOGS_CHANGE# GROUP BY THREAD# ORDER BY 1;
    
    SELECT THREAD#, max(SEQUENCE#) "Last Standby Seq Applied"
    FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# =
    VDB.RESETLOGS_CHANGE# AND VAL.APPLIED IN ('YES','IN-MEMORY') GROUP BY
    THREAD# ORDER BY 1;
    

    O resultado seguinte tem números de sequência que correspondem à execução da consulta anterior na base de dados em espera:

       THREAD# Last Standby Seq Received
    ---------- -------------------------
             1                        40
             2                        33
    
       THREAD# Last Standby Seq Applied
    ---------- ------------------------
             1                       40
             2                       33
    
  5. Verifique se o estado do processo de recuperação gerido é APPLYING_LOG:

    SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE '%MRP%';
    

    O exemplo seguinte mostra um único processo de recuperação gerido denominado MRP0 com o estado APPLYING_LOG:

    PROCESS   STATUS
    --------- ------------
    MRP0      APPLYING_LOG
    
  6. Verifique se existe algum atraso de transporte ou aplicação na base de dados em modo de espera:

    COLUMN NAME FORMAT a20
    COLUMN VALUE FORMAT a30
    SELECT NAME, VALUE FROM V$DATAGUARD_STATS WHERE NAME LIKE '%lag%';
    

    A saída seguinte não mostra atrasos na base de dados em espera:

    NAME                 VALUE
    -------------------- ------------------------------
    transport lag        +00 00:00:00
    apply lag            +00 00:00:00
    

    Se houver um atraso, consulte a documentação de resolução de problemas do Data Guard da Oracle.

Comutação da base de dados através do agente do Data Guard

Uma comutação é uma inversão de funções em que a base de dados principal se torna uma base de dados de reserva e vice-versa. Durante o processo de comutação, os clientes da base de dados são desligados da base de dados principal. Consoante a forma como a sua aplicação se liga à base de dados, uma comutação pode interromper o tráfego da aplicação. A Oracle oferece opções para manter a continuidade das aplicações durante as transições de funções. Pode testar a sua capacidade de recuperação de desastres executando uma comutação de base de dados com as seguintes instruções:

  1. Inicie sessão no servidor da Solução Bare Metal que aloja a base de dados principal.

  2. Inicie a interface de linhas de comando do Data Guard e estabeleça ligação à base de dados em espera:

    dgmgrl
    
    CONNECT SYS@DBDG_SITE2
    
  3. Quando lhe for pedida uma palavra-passe, introduza a palavra-passe de início de sessão remoto do SYS para a base de dados.

  4. Valide se a base de dados está pronta para uma comutação.

    VALIDATE DATABASE DBDG_SITE2;
    

    Um resultado bem-sucedido indica que a base de dados está pronta para a comutação.

  5. Se for bem-sucedido, execute o comando de comutação:

    SWITCHOVER TO DBDG_SITE2;
    

    Se o comando for bem-sucedido, recebe uma mensagem a indicar que DBDG_SITE2 é a nova base de dados principal na configuração.

  6. Execute o seguinte comando para confirmar que as funções da base de dados foram trocadas:

    SHOW CONFIGURATION;
    
  7. Execute o seguinte comando para voltar à configuração original:

    SWITCHOVER TO DBDG_SITE1;
    

Failover da base de dados com o agente do Data Guard

Uma comutação por falha é uma transição de função em que uma das bases de dados em espera passa para a função principal devido a uma indisponibilidade total do site. O refazer não é enviado para a base de dados de espera até que esta seja reposta.

Efetue a comutação por falha

  1. Inicie sessão no primeiro servidor da solução Bare Metal que aloja a base de dados em espera.

  2. Ligue-se à interface de linhas de comando do Data Guard e, em seguida, faça a comutação por falha da base de dados principal para a base de dados em espera:

    dgmgrl
    
    CONNECT SYS@DBDG_SITE2
    
  3. Quando lhe for pedida uma palavra-passe, introduza a palavra-passe de início de sessão remoto do SYS para a base de dados.

  4. Inicie a comutação por falha:

    FAILOVER TO DBDG_SITE2
    

    Execute show configuration; para verificar se DBDG_SITE2 é agora a base de dados principal e se DBDG_SITE1 tem de ser reposta.

Reponha a base de dados principal

Só pode repor a base de dados principal após uma comutação por falha se a opção flashback database estiver ativada. Para repor a base de dados principal com falhas:

  1. Inicie sessão no primeiro servidor da Bare Metal Solution que aloja a base de dados principal.

  2. Ligue-se à interface de linha de comandos do Data Guard, inicie sessão nas bases de dados primárias e, em seguida, restaure a base de dados com falhas:

    dgmgrl
    
    CONNECT SYS@DBDG_SITE2
    

    Quando lhe for pedida uma palavra-passe, introduza a palavra-passe de início de sessão remoto do SYS para a base de dados.

  3. Reponha a base de dados:

    REINSTATE DATABASE DBDG_SITE1;
    EXIT;
    

Passos seguintes

Em seguida, configure um observador do Data Guard no Compute Engine.