Páginas

3 de mai. de 2016

Configurando o Data Broker no Data Guard


Olá pessoal,

     Dando continuidade ao artigo Implementando um Data Guard com Standby Físico, apresento neste post, como configurar o Data Broker para o Data Guard, no Oracle 11G. O Data Broker oferece alguns benefícios, tais como integração com Enterprise Manager, simplificação dos processos de Failover e Switchover, e configuração de Failover automático.     

     A configuração apresentada aqui é uma configuração padrão, utilizada em um ambiente com um BD Primário e um BD em Standby físico. Existem diferentes parâmetros de configuração, tanto do Data Guard quanto do Data Broker. Para entendê-los melhor, é necessário aprofundar-se nos estudos de Data Guard. Você pode recorrer à literatura e cursos recomendados no parágrafo anterior.

 Oracle Data Guard Broker Configuration 
Fonte: Oracle Corporation

Para configurar o Data Broker, seguiremos os passos abaixo:

1) Configurar o caminho para os arquivos de configuração do Data Broker:
     O Data Broker usa arquivos redundantes para aumentar tolerância a falhas. Esta etapa deve ser feita no BD primário e no BD Standby.

   SQL> alter system set dg_broker_config_file1 = '[caminho e arquivo 1]' scope = both;
   SQL> alter system set dg_broker_config_file2 = '[caminho e arquivo 2]' scope = both;

2) Habilitar o Data Broker:
     Deve ser feito no BD primário e no BD Standby.

   SQL> alter system set dg_broker_start = true scope = both;


3) Criar entradas necessárias no listener.ora das instâncias envolvidas:
     O Data Broker demanda entradas onde o parâmetro GLOBAL_DBNAME é o nome da instância acrescido do sufixo _DGMGRL.

     a) Na máquina PRIMARY, criar uma entrada estática do Listener conforme abaixo (adicionar à
SID_LIST já existente):

SID_LIST_LISTENER =
  (SID_LIST=
    (SID_DESC=
      (SID_NAME=[nome primary])
      (GLOBAL_DBNAME=[nome primary]_DGMGRL)
      (ORACLE_HOME=[caminho oracle home primary])
    )
    ...
  ) 

     b) Na máquina STANDBY, criar uma entrada estática no Listener conforme abaixo (adicionar à SID_LIST já existente):

SID_LIST_LISTENER =
  (SID_LIST=
    (SID_DESC=
      (SID_NAME=[nome standby])
      (GLOBAL_DBNAME=[nome standby]_DGMGRL)
      (ORACLE_HOME=[caminho oracle home standby])
    )
    ...
  ) 

4) Criar a configuração do Data Broker:
     Agora utilizaremos o utilitário DMGMRL, que deve ser chamado pela linha de comando do sistema operacional onde está a instância principal (BD Primário). Com ele concluiremos a configuração do Data Broker.

     a) Conectar ao Broker:
          $> dgmgrl sys/password

     b) Criar a configuração:
          DGMGRL> create configuration '[Nome]' as primary database is [nome primary] connect identifier is [nome primary]

     c) Adicionar Standby:
          DGMGRL> add database [nome standby] as connect identifier is [nome standby]

     d) Habilitar a configuração:
          DGMGRL> enable configuration


     e) Verificar parâmetros:                                
          DGMGRL> show database [nome primary] DGConnectIdentifier
          (deve ser nome da instância)

          DGMGRL> show database [nome primary] LogXptMode
          (deve ser ASYNC)

          DGMGRL> show database [nome primary] LogShipping
          (deve ser ON)

          DGMGRL> show configuration verbose
          (deve retornar "SUCCESS")

          DGMGRL> show database verbose [nome primary]
          (deve retonar Intended state = TRANSPOR-ON)

          DGMGRL> show database verbose [nome standby]
          (deve retornar Intended State = APPLY-ON)

     f) Verificar se existem inconsistências:                    

          DGMGRL> show database '[nome primary]' 'InconsistentProperties';
          DGMGRL> show database '[nome standby]' 'InconsistentProperties';

          Obs: você pode consultar o status do Broker na instância através da seguinte query:
               SELECT name, database_role,  dataguard_broker FROM V$DATABASE;


     Esse artigo foi escrito por Rafael Leite, DBA que trabalha comigo desde o final de 2015, e que montou recentemente um ambiente de produção com Data Guard, seguindo instruções que eu havia preparado, mas que não estavam ainda bem documentadas.


Por hoje é só! Se tiver dúvidas, é só postar um comentário que eu ou o Rafael Leite responderemos em seguida!


[]s
   

6 comentários:

  1. Bom dia Fábio,
    Recentemente montei um ambiente utilizando dois ODAs, onde um deles está configurado como DG. Porém, não disponho da option do Active Data Guard, sabe me falar se preciso dela para usar o Data Broker?

    Abraço,
    Bruno.

    ResponderExcluir
  2. Respostas
    1. Obrigado, fico contente que o artigo lhe tenha sido útil!
      []s

      Excluir
  3. Fábio, primeiramente obrigado e parabéns pelo post!

    Estou tentando implementar aqui, mas recebo a seguinte mensagem ao tentar conectar no broker:
    "-bash: dmgmrl: command not found"

    ResponderExcluir
    Respostas
    1. Encontrei o erro com base nos comandos do próprio post:
      para acessar o broker, o comando correto seria dgmgrl sys/password e não dmgmrl sys/password.

      Abraço!

      Excluir