Implementar a Replicação do DBFS (Oracle Database File System)

Esta implementação consiste em copiar o conteúdo da camada intermediária para uma pasta DBFS e confiar no Oracle Data Guard para replicá-lo para o site secundário. O conteúdo da camada intermediária não reside diretamente no DBFS, porque isso tornaria a camada intermediária dependente da infraestrutura do DBFS (banco de dados, bibliotecas FUSE, pontos de montagem etc.). A montagem do DBFS é apenas uma pasta intermediária para armazenar uma cópia do conteúdo.

Qualquer replicação para stand-by implica duas etapas neste modelo: da pasta de origem do principal para a montagem DBFS intermediária e, em seguida, no site secundário, da montagem DBFS para a pasta de destino do stand-by. As cópias intermediárias são feitas usando rsync. Como essa é uma cópia local e de baixa latência do rsync, alguns dos problemas que surgem em uma operação de cópia remota do rsync são evitados com esse modelo.

Observação:

Esse método não é suportado com o Oracle Autonomous Database, que não permite conexões do DBFS.


replica-mid-tier-dbfs-oracle.zip

As vantagens de implementar a réplica de camada intermediária com o DBFS são:

  • Esse método aproveita a robustez da réplica do Oracle Data Guard.
  • O armazenamento real de camada intermediária pode permanecer montado nos nós secundários. Não há etapas adicionais para anexar ou montar o armazenamento no secundário em cada operação de switchover ou failover.

Estas são as considerações para implementar a réplica de camada intermediária com o DBFS:

  • Este método requer um Oracle Database com o Oracle Data Guard.
  • Os hosts de camada intermediária precisam do cliente Oracle Database para montar o DBFS.
  • O uso do DBFS para replicação tem implicações das perspectivas de configuração, armazenamento de banco de dados e ciclo de vida. Requer uma instalação do cliente Oracle Database nos hosts de camada intermediária, certa manutenção do banco de dados (para limpar, compactar e reduzir o armazenamento de tabelas) e uma boa compreensão de como os pontos de montagem DBFS se comportam.
  • Os diretórios DBFS só podem ser montados se o banco de dados estiver aberto. Quando o Oracle Data Guard não é um Active Data Guard, o banco de dados stand-by está no estado de montagem. Portanto, para acessar a montagem do DBFS no site secundário, você deve converter o banco de dados em um stand-by snapshot. Quando o Active Data Guard é usado, o sistema de arquivos pode ser montado para leituras e não há necessidade de fazer a transição para um snapshot.
  • Não é recomendável usar o DBFS como uma solução de uso geral para replicar todos os artefatos (especialmente arquivos de runtime) para o stand-by. O uso do DBFS para replicar os binários é um exagero. No entanto, essa abordagem é adequada para replicar alguns artefatos, como a configuração, quando outros métodos, como replicação de armazenamento ou rsync, não atendem às necessidades do sistema.
  • É responsabilidade do usuário criar os scripts personalizados para cada ambiente e executá-los periodicamente.
  • É responsabilidade do usuário implementar uma maneira de reverter a direção da réplica.

Configurar Replicação para Sistema de Arquivos de Banco de Dados

Essa implementação usa a tecnologia rsync e segue o modelo peer-to-peer. Neste modelo, a cópia é feita diretamente entre os hosts pares de camada intermediária. Cada nó tem conectividade SSH com seu par e usa comandos rsync no SSH para replicar os artefatos principais do arquivo de camada intermediária.

É necessário implementar a réplica de camada intermediária com o DBFS:

  • Uma instalação do cliente Oracle Database nos hosts de camada intermediária que executam a cópia, tanto no principal quanto no secundário.
  • Um sistema de arquivos DBFS criado no banco de dados.
  • Uma montagem do DBFS nos hosts de camada intermediária que executam as cópias, tanto no principal quanto no secundário. Isso monta o sistema de arquivos DBFS do banco de dados. Esse sistema de arquivos pode ser montado em mais de um host, pois o DBFS é um sistema de arquivos compartilhável.
  • Scripts que copiam os artefatos de arquivo de camada intermediária para a montagem DBFS no site principal.
  • Scripts que copiam os artefatos de arquivo de camada intermediária da montagem DBFS para as pastas no site secundário. Dependendo da implementação, esse método pode exigir conectividade SQL*net entre os hosts de camada intermediária e o banco de dados remoto para operações de banco de dados, como conversões de atribuição.
  • Uma forma de gerenciar as informações específicas do site, excluindo essas informações da cópia ou atualizando-as com as informações apropriadas após a réplica.
  • Programe esses scripts para serem executados continuamente.
  • Um mecanismo para alterar a direção da réplica após um switchover ou failover.
Exemplo 1: Usar DBFS para replicar o domínio do Oracle WebLogic

Observação:

O exemplo a seguir se aplica aos sistemas Oracle WebLogic. Você pode usá-lo como referência para copiar outras pastas do sistema de camada intermediária por meio do DBFS, mas esse exemplo específico usa um script que replica a pasta de domínio do Administrador WebLogic para a secundária por meio do DBFS.

Este exemplo mostra como replicar a pasta de domínio do host de Administração WebLogic por meio do DBFS. O conteúdo localizado fora da pasta de domínio, bem como o conteúdo em outros hosts, não é incluído neste exemplo. A pasta de domínio não reside diretamente no DBFS; a montagem do DBFS é apenas uma pasta intermediária para armazenar uma cópia da pasta de domínio.

Este exemplo fornece um script para executar essas ações, que devem ser executadas periodicamente nos sites principal e stand-by. Esse script copia a pasta de domínio Administração WebLogic, ignorando alguns itens como arquivos tmp, .lck, .state e o arquivo tnsnames.ora. O procedimento consiste no seguinte:

  • Quando o script é executado no host de Administração WebLogic do site principal, o script copia a pasta de domínio WebLogic para a pasta DBFS.
  • Os arquivos copiados no DBFS, à medida que são armazenados no banco de dados, são transferidos automaticamente para o banco de dados stand-by por meio do Oracle Data Guard.
  • Quando o script é executado no host de administração WebLogic do site secundário:
    • O script converte o banco de dados stand-by em um stand-by snapshot.
    • Em seguida, ele monta o sistema de arquivos DBFS no banco de dados stand-by.
    • A pasta de domínio replicada agora está disponível nesta pasta DBFS. O script o copia da montagem do DBFS para a pasta de domínio real.
    • Por fim, o script converte o banco de dados stand-by em um stand-by físico novamente.
  • Em caso de alteração de função, o script adapta automaticamente a execução à nova função. Ele reúne a atribuição real do site verificando a atribuição do banco de dados.

Este script replica somente a pasta de domínio do host de Administração WebLogic. O conteúdo na pasta DOMAIN_HOME/config é copiado automaticamente para todos os outros nós que fazem parte do domínio WebLogic quando os servidores gerenciados são iniciados. Os arquivos fora desta pasta e os arquivos localizados em outros hosts não são replicados e precisam ser sincronizados separadamente.

Para operações de implantação do aplicativo, use a opção de implantação Fazer Upload de seus arquivos na Console de Administração WebLogic. Dessa forma, os arquivos implantados são colocados no diretório de upload do Servidor de Administração ($DOMAIN_HOME/servers/admin_server_name/upload) e o script de réplica de configuração os sincronizará com o site stand-by.

Este exemplo fornece outro script para instalar o Cliente de BD e configurar uma montagem DBFS nos hosts de camada intermediária. A imagem é um exemplo de um sistema Oracle WebLogic Server para OCI com replicação DBFS.



wls-dbfs-replication-oracle.zip

Execute o seguinte para usar o método DBFS para replicar o domínio WebLogic:

  1. Permitir conectividade SQL*net entre os hosts de administração e os bancos de dados remotos.
    A Oracle recomenda o uso de pareamento remoto com o Dynamic Routing Gateway. O script requer essa conectividade para executar operações de banco de dados, como conversões de função. Quando o script é executado no site com a atribuição stand-by, ele converte o banco de dados stand-by em um stand-by snapshot para montar a montagem do DBFS.
  2. Faça download dos scripts.
    Este documento fornece scripts para configurar a montagem do DBFS e automatizar a replicação.
    1. Vá para o repositório do Oracle MAA em GitHub. Consulte a seção Explore Mais neste playbook.
    2. Faça download de todos os scripts no diretório app_dr_common.
    3. Faça download de todos os scripts no diretório wls_mp_dr.
    4. Copie-os para os hosts de Administração primários e secundários, para um local que não seja replicado.
    5. Os scripts fazem chamadas uns aos outros. Copie os scripts dos dois diretórios e coloque-os na mesma pasta. Certifique-se de que o usuário oracle tenha permissão de execução.
  3. Configure a montagem do DBFS nos hosts de administração primários e secundários.

    Observação:

    Se você já tiver uma montagem do DBFS, poderá ignorar esta etapa. Por exemplo, algumas pilhas do SOA Marketplace vêm com uma montagem DBFS pronta para uso.
    Configure a montagem do DBFS nos hosts de Administração WebLogic principais e secundários. Requer o cliente de Banco de Dados e alguns pacotes de sistema operacional no host de Administração WebLogic. Siga estas etapas para cada anfitrião da administração:
    1. Faça download do cliente de banco de dados do e-delivery e faça upload dele para o host de camada intermediária (NÃO o instale ainda). Procure o Oracle Database Client e selecione somente o cliente de banco de dados. Clique em Continuar e selecione a versão do instalador (não a gold image).

      Observação:

      Certifique-se de fazer download da versão do instalador, não da instalação baseada em imagem. É recomendável usar a versão mais recente.
      Por exemplo, faça download do arquivo 982064-01.zip para o Oracle Database Client 19.3.0.0.0 para Linux x86-64, 1.1 GB e faça upload dele para /u01/install/V982064-01.zip em todos os hosts de camada intermediária.

      Não o instale ainda.

    2. Localize o script dbfs_dr_setup_root.sh na pasta app_dr_common.
      Este script executa as tarefas para preparar a montagem do DBFS no host. Ele instala o cliente de Banco de Dados e os pacotes de sistema operacional necessários, configura o usuário e o esquema DBFS no banco de dados, monta o sistema de arquivos DBFS e cria um cron, de modo que o sistema de arquivos DBFS é montado na inicialização do host.
    3. Execute o script como o usuário root.
      A sintaxe será a seguinte:
      ./dbfs_dr_setup_root.sh  local_db_scan_name db_port  local_PDB_service pdb_sys_password path_to_dbclient_installer
      Como parâmetros de entrada, forneça os dados de conexão usados para estabelecer conexão com o banco de dados local usado pelo WLS: forneça dados de conexão do PDB principal quando você executá-los no host de administração do site principal e forneça os dados de conexão do PDB secundário quando você executá-los no host de administração secundário.

      Observação:

      O banco de dados stand-by deve estar no modo stand-by snapshot para executar esse script no host de administração secundário.
      O exemplo a seguir o executa no host de administração de camada intermediária principal. Deve ser uma única linha e você deve fornecer valores do PDB principal e sua senha:
      ./dbfs_dr_setup_root.sh  drdba-scan.wlsdrvcnlon1ad2.wlsdrvcnlon1.oraclevcn.com 1521 mypdbservice.example.com  mypassword   /u01/install/V982064-01.zip
      O exemplo a seguir executa o host de administração secundário de camada intermediária. Deve ser uma única linha e você deve fornecer valores do PDB principal e sua senha:
      ./dbfs_dr_setup_root.sh  drdbb-scan.wlsdrvcnfra1ad2.wlsdrvcnfra1.oraclevcn.com 1521 mypdbservice.example.com  mypassword   /u01/install/V982064-01.zip
      Como resultado da execução desse script, você obtém o seguinte:
      Artefato Valor Descrição
      Home do Cliente de Banco de Dados /u01/app/oracle/client O script instala o software cliente do banco de dados no host. Ele também usa o yum para instalar os pacotes necessários.
      Usuário do banco de dados

      Nome: dbfsuser

      Senha: igual a sys

      Um usuário no banco de dados PDB para DBFS.
      Tablespace DBFS tbsdbfs Um tablespace no PDB para a montagem do DBFS.
      Pasta DBFS dbfsdir A pasta DBFS no tablespace.
      Uma pasta no host de camada intermediária DOMAIN_HOME/dbfs Ela contém a wallet que armazena o usuário, a senha e outros artefatos (tnsnames.ora, sqlnet.ora) necessários ao cliente do banco de dados para montar o DBFS no host.
      Script no host de camada intermediária DOMAIN_HOME/dbfs/dbfsMount.sh Script para montar o sistema de arquivos DBFS no host. Este script é adicionado ao cron na reinicialização, assim ele é executado quando a máquina é reinicializada.
      Ponto de montagem no host de camada intermediária /u02/data/dbfs_root O sistema de arquivos DBFS é montado no ponto de montagem /u02/data/dbfs_root como a pasta dbfsdir.

      Você pode executar o script novamente, mas receberá avisos porque algumas coisas já foram criadas (usuário do banco de dados, tablespace etc.). Você pode ignorar essas mensagens.

    4. Verifique se a montagem do DBFS está presente no host de administração de camada intermediária.
      [root@ prefix-wls-1]# df -h | grep dbfs
      dbfs-@PDB1:/     32G  248K   32G   1% /u02/data/dbfs_root
      [root@ prefix-wls-1]# ls /u02/data/dbfs_root
      dbfsdir
      Esse sistema de arquivos DBFS é usado como um sistema de arquivos de assistência para armazenar uma cópia da configuração de domínio do site principal.
  4. Prepare o script de réplica.
    Este documento fornece um script de referência para esta implementação, o script config_replica.sh.
    1. No principal host de Administração do Oracle WebLogic, abra o script config_replica.sh. Edite as seções de parâmetros personalizáveis.
      Certifique-se de fornecer as variáveis apropriadas para o principal. Na propriedade DR_METHOD, use DBFS.
    2. Faça o mesmo no host secundário de Administração do Oracle WebLogic. Certifique-se de fornecer as variáveis apropriadas para o secundário.
  5. Execute o script de replicação.
    1. Como usuário oracle, execute o script config_replica.sh no principal host de Administração do Oracle WebLogic.
      O script verificará a atribuição do site atual e copiará a configuração do domínio do domínio principal do Oracle WebLogic Server para a montagem do DBFS.
    2. Monitore a execução e verifique se há erros.
    3. Após a conclusão, execute o script config_replica.sh no host do Oracle WebLogic Administration Server do site secundário.
      Certifique-se de usar os valores apropriados nos parâmetros personalizados. O script verificará a atribuição do banco de dados. Como é o stand-by, ele copiará a configuração do domínio do sistema de arquivos de teste secundário para o domínio secundário do Oracle WebLogic Server.

    Observação:

    Esse script sempre deve ser executado no principal e no stand-by para executar uma replicação completa: primeiro no principal para copiar o domínio para a pasta DBFS e, em seguida, no stand-by para copiar o domínio do DBFS para a pasta de domínio. A frequência depende da frequência com que as alterações de configuração são executadas no domínio do Oracle WebLogic Server.

Validar Replicação para Sistema de Arquivos de Banco de Dados

Em uma operação de switchover ou failover, as informações replicadas devem estar disponíveis e utilizáveis no site stand-by antes do início dos processos. Isso também é necessário quando você valida o sistema secundário (abrindo o banco de dados stand-by no modo snapshot).

Nesta implementação, o armazenamento está sempre disponível no stand-by; você não precisa anexar nem montar nenhum volume. A única ação que você precisa é garantir que ele contenha a versão mais recente do conteúdo.

Execute o seguinte para usar o conteúdo replicado no stand-by:

  1. Execute uma replicação.
    Execute os scripts de réplica para disponibilizar o conteúdo mais recente no sistema secundário.
  2. Desative as replicações programadas.
    Quando a última réplica terminar, desative qualquer script de réplica. Caso contrário, pode interferir com o switchover, failover ou procedimento de validação. Você o ativará novamente após a operação, na direção apropriada.

Executar Replicação Contínua para o Sistema de Arquivos do Banco de Dados

Execute o script de replicação periodicamente para manter o domínio secundário em sincronia com o principal.

Siga estas recomendações ao usar o rsync nos hosts de camada intermediária:
  • Use o crontab do SO ou outra ferramenta de programação para programar replicação. Deve permitir que os scripts concluam a replicação. Caso contrário, os cargos subsequentes poderão se sobrepor.
  • Mantenha os processos de camada intermediária interrompidos no site stand-by. Se os servidores estiverem ativos no site stand-by enquanto as alterações forem replicadas, as alterações entrarão em vigor na próxima vez que forem iniciadas. Inicie-os apenas ao validar o site stand-by ou durante o procedimento de switchover ou failover.
  • Manter as informações específicas de cada site e mantê-las atualizadas. Por exemplo, ignore o tnsnames.ora da cópia, para que cada sistema tenha seus detalhes de conectividade. Se você executar uma alteração no tnsnames.ora em principal (por exemplo, adicionar um novo alias), atualize manualmente o tnsnames.ora em secundário adequadamente.
  • Após um switchover ou failover, reverta a direção da réplica. Isso depende da implementação específica. Os scripts podem usar uma verificação dinâmica para identificar quem é o site ativo ou você pode executar uma alteração manual após um switchover ou failover (por exemplo, desabilitar e habilitar os scripts apropriados). No exemplo fornecido, o script config_replica.sh adapta automaticamente a execução à atribuição real do site, verificando a atribuição do banco de dados local.