Observação:

Automatize o Switchover e o Failover do Banco de Dados PostgreSQL com o Oracle Cloud Infrastructure Full Stack Disaster Recovery

Introdução

O Oracle Cloud Infrastructure Full Stack Disaster Recovery (OCI Full Stack DR) orquestra a transição de computação, banco de dados e aplicativos entre regiões da Oracle Cloud Infrastructure (OCI) de todo o mundo com um único clique. Os clientes podem automatizar as etapas necessárias para recuperar um ou mais sistemas de negócios sem reprojetar ou rearquitetar a infraestrutura, bancos de dados ou aplicativos existentes e sem precisar de servidores especializados de gerenciamento ou conversão.

O OCI Full Stack DR é um serviço altamente flexível. Podemos aproveitar os grupos de planos definidos pelo usuário no plano de DR (Recuperação de Desastres) para tratar as operações de DR do bucket do OCI Object Storage.

Arquitetura da Implantação

Arquitetura do Serviço Object Storage

Observação: A região principal é Frankfurt e a região de DR é Londres.

Objetivos

Pré-requisitos

Tarefa 1: Instalar e Configurar PostgreSQL

  1. Para instalar o PostgreSQL, conecte-se ao host usando seu cliente SSH favorito e execute o comando a seguir.

    sudo dnf install -y postgresql postgresql-server postgresql-contrib
    sudo /usr/bin/postgresql-setup initdb
    sudo systemctl enable postgresql
    sudo systemctl start postgresql
    
  2. Ative o firewall Linux para receber conexões.

    sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent
    sudo firewall-cmd --reload
    
  3. Edite o arquivo postgresql.conf (encontrado em xxxxx) para permitir conexão e altere os parâmetros wal da seguinte forma.

    ...
    listen_addresses = '*'
    ...
    wal_level = logical
    wal_log_hints = on
    ...
    
  4. Conecte-se ao banco de dados e crie o usuário de replicação.

    sudo su postgres
    psql
    
    CREATE ROLE replica_user WITH REPLICATION LOGIN PASSWORD 'YourUserPassword';
    
  5. Adicione esse usuário ao arquivo pg_hba.conf (localizado em xxxxx).

    host    all             all             all                    md5
    host    replication     replica_user    <IP Host 1>            md5
    host    replication     replica_user    <IP Host 2>            md5
    
  6. Reinicie o banco de dados PostgreSQL para aplicar as alterações.

    sudo systemctl restart postgresql
    
  7. Repita esse processo no segundo servidor.

Tarefa 2: Replicar o Banco de Dados PostgreSQL

Nesta tarefa, configuraremos a replicação nativa do banco de dados PostgreSQL.

  1. Conecte-se ao banco de dados principal e crie o slot de réplica.

    sudo su postgres
    psql
    
    select pg_create_physical_replication_slot('replica_0');
    
  2. Conecte-se ao banco de dados secundário e execute os comandos a seguir para criar a replicação.

    sudo systemctl stop postgresql
    sudo rm -rv /var/lib/pgsql/data/
    sudo pg_basebackup -d "host=<IP Host 1> port=5432 user=replica_user password=YourUserPassword" -w -X stream -S replica_0 -v -R -W -D /var/lib/pgsql/data/ --no-password
    sudo chown postgres -R /var/lib/pgsql/data/
    sudo systemctl start postgresql
    
  3. Verifique se a replicação está fluindo no banco de dados principal.

    select * from pg_stat_replication;
    

    Você deve ser capaz de ver uma linha com o processo de streaming.

Tarefa 3: Criar o Plano de Switchover

Tarefa 3.1: Criar e Associar Grupos de Proteção de Recuperação de Desastre (DRPG)

  1. Na região principal (Frankfurt), clique no menu Hambúrguer, navegue até Migração e Recuperação de Desastre, Recuperação de Desastre, Grupo de Proteção de Recuperação de Desastre e Criar Grupo de proteção de Recuperação de Desastre.

    Criar grupo de Proteção de Recuperação de Desastre em Ashburn

  2. Na região stand-by (Londres), clique no menu Hambúrguer, navegue até Migração e Recuperação de Desastre, Recuperação de Desastre, Grupo de Proteção de Recuperação de Desastre e Criar Grupo de proteção de Recuperação de Desastre.

    Criar grupo de Proteção de Recuperação de Desastre em Ashburn

  3. Na região principal (Frankfurt), especifique as informações a seguir e clique em Associar.

    • Função: Primary.
    • Região de pareamento: UK South (London).
    • Grupo de proteção de DR de pareamento: postgresql-lon.

    Associar principal e stand-by

Tarefa 3.2: Adicionar Membros ao DRPG Principal e Stand-by

  1. No DRPG principal (postgresql-fra), selecione Membros e adicione a VM de computação (postgresql01) como membro.

    Adicionar membros primários

    Observação: ao adicionar computação como membro, selecione Instância Não Móvel no tipo de instância de computação, pois temos configuração passiva ativa para o banco de dados PostgreSQL.

  2. No DRPG stand-by (postgresql-lon), selecione Membros e adicione a VM de computação (postgresql02) como membro.

    Adicionar membros Stand-by

    Observação: ao adicionar computação como membros, selecione Instância Não Móvel no tipo de instância de computação, pois temos configuração passiva ativa para o banco de dados PostgreSQL.

Tarefa 3.3: Criar um plano de Switchover no DRPG Stand-by (Londres)

Plano de Switchover: Um tipo de plano de DR que executa uma transição planejada de serviços do DRPG principal para o DRPG stand-by.

  1. Crie um plano de switchover no DRPG stand-by postgresql-lon.

  2. Selecione Planos e clique em Criar plano.

  3. Informe o Nome como postgresql-switchover-frankfurt-london e selecione o Tipo de plano como Switchover (planned).

  4. Clique em Criar.

Plano de Switchover

Observação: certifique-se de criar o plano de switchover a partir do DRPG stand-by (Londres).

Tarefa 3.4: Personalizar o Plano de Switchover com Vários Grupos de Planos Definidos pelo Usuário

Adicionamos Computação (instância não móvel) como membros nos dois Grupos de Proteção de DR. Precisamos personalizar o plano de switchover com grupos de planos adicionais definidos pelo usuário. Também precisamos criar os scripts bash a seguir e fazer upload deles no OCI Object Storage para que possamos chamar esses scripts durante o switchover.

Observação: é necessário fazer upload desses scripts para o bucket na região de Londres.

Grupos de planos

Um workflow típico para switchover de DR é o seguinte:

  1. Interromper Banco de Dados PostgreSQL na região de Frankfurt: O grupo de planos terá etapas para interromper o banco de dados PostgreSQL na região de Frankfurt.

  2. Promover Banco de Dados PostgreSQL na região de Londres: O grupo de planos terá etapas para promover o banco de dados PostgreSQL na região de Londres.

  3. Alterar a direção de replicação do Banco de Dados PostgreSQL: O grupo de planos terá etapas para alterar a direção de replicação do banco de dados PostgreSQL (LON-FRA).

Observação: certifique-se de que as etapas sejam executadas na mesma ordem.

Crie o grupo de planos definido pelo usuário a seguir.

  1. Crie o grupo de planos Interromper Banco de Dados PostgreSQL na região de Frankfurt.

    1. Em Grupos de Planos, clique em Adicionar grupo para criar um grupo de planos personalizado para interromper o banco de dados PostgreSQL na região de Frankfurt. Informe o Nome do grupo como Stop PostgreSQL Database at Frankfurt Region.

      Interromper o Banco de Dados PostgreSQL no FRA

    2. Clique em Adicionar Etapa e especifique as informações a seguir. Adicionaremos uma etapa no grupo de planos.

      • Certifique-se de escolher a Região como Frankfurt e a Instância de destino como postgresql01. Selecione o Script de armazenamento de objetos Run e o local do script escolhe o bucket de armazenamento de Objetos do OCI posgres-dr-lon.

      • Informe os detalhes do script stop_postgresql.sh com o local do script. O script fará shutdown do banco de dados PostgreSQL na região FRA.

      • Clique em Adicionar Etapa e verifique a etapa adicionada.

      Etapa Interromper o Banco de Dados PostgreSQL

  2. Criar o grupo de planos Promover Banco de Dados PostgreSQL na região de Londres.

    1. Em Grupos de Planos, clique em Adicionar grupo para criar um grupo de planos personalizado para promover o banco de dados PostgreSQL em Londres. Informe o Nome do grupo como Promote PostgreSQL Database at London Region.

      Promova o Banco de Dados PostgreSQL em LON

    2. Clique em Adicionar Etapa e insira os detalhes a seguir. Adicionaremos uma etapa no grupo de planos.

      • Certifique-se de escolher a Região como London, a instância de destino como postgresql02. Selecione o Script de armazenamento de objetos de execução e o local do script escolhe o bucket posgres-dr-lon do OCI Object Storage.

      • Informe os detalhes do script promote_postgresql.sh com o local do script. O script fará shutdown do banco de dados PostgreSQL na região FRA.

      • Clique em Adicionar Etapa e verifique a etapa adicionada.

      Etapa Promover Banco de Dados PostgreSQL

  3. Crie o grupo de planos Alterar direção de replicação do Banco de Dados PostgreSQL.

    1. Em Grupos de Planos, clique em Adicionar grupo para criar um grupo de planos personalizado para alterar a direção de replicação do banco de dados PostgreSQL. Informe o Nome do grupo como Promote PostgreSQL Database at London Region.

      Altere a replicação do Banco de Dados PostgreSQL directionN

    2. Clique em Adicionar Etapa e especifique as informações a seguir. Adicionaremos uma etapa no grupo de planos.

      • Certifique-se de escolher a Região como Frankfurt e a Instância de destino como postgresql01. Selecione o Script de armazenamento de objetos de execução e o local do script escolha o bucket do OCI Object Storage posgres-dr-lon.

      • Informe os detalhes do script change_replication_direction.sh com o local do script. O script fará shutdown do banco de dados PostgreSQL na região FRA.

      • Clique em Adicionar Etapa e verifique a etapa adicionada.

      Alterar a etapa de direção de replicação do Banco de Dados PostgreSQL

Grupos de Planos Londres

Tarefa 4: Executar Pré-verificações e Executar o Plano de Switchover

A opção Executar Pré-verificações executa uma validação rápida de todas as etapas em um plano de DR e dos membros associados às etapas.

  1. No plano de switchover postgresql-switchover-frankfurt-london, clique em Executar Pré-verificações para executar pré-verificações.

    Pré-verificação de switchover

    Verifique a conclusão bem-sucedida.

    Status da pré-verificação de switchover

  2. No plano de switchover postgresql-switchover-frankfurt-london, clique em Executar Plano de Recuperação de Desastre para executar o plano.

    Executar Plano de Recuperação de Desastre

  3. Verifique o status do plano e garanta que todas as etapas no plano sejam bem-sucedidas.

    Executar Status do Plano de Recuperação de Desastre

  4. O plano de alternância executa todos os grupos de planos em uma ordem específica. Após a execução bem-sucedida do plano, o banco de dados PostgreSQL será promovido a mestre na região de Londres.

  5. Automaticamente a função mudará no DRPG. Agora, Londres terá o papel principal e Frankfurt terá o papel de stand-by.

  6. Verifique o banco de dados PostgreSQL em Londres.

Tarefa 5: Criar Plano de Switchover no DRPG Stand-by (Frankfurt) para Switchback

Tarefa 5.1: Criar um Plano de Switchover no DRPG Stand-by (Londres)

  1. Crie um plano de switchover no DRPG Stand-by postgresql-fran.

  2. Selecione Planos e clique em Criar plano.

  3. Informe o Nome como postgresql-switchover-london-frankfurt e selecione o Tipo de plano como Switchover (planned).

  4. Clique em Criar.

Grupos de planos

Observação: certifique-se de criar o plano de switchover a partir do DRPG stand-by (Frankfurt).

Tarefa 5.2: Personalizar o Plano de Switchover com Vários Grupos de Planos Definidos pelo Usuário

Precisamos personalizar o plano de switchover com grupos de planos adicionais definidos pelo usuário. Também precisamos criar os scripts bash a seguir e fazer upload para o OCI Object Storage, para que possamos chamar esses scripts durante o switchover.

Observação: é necessário fazer upload desses scripts para o bucket na região de Frankfurt.

Um workflow típico para switchover de DR é o seguinte:

  1. Rewind PostgreSQL Databases: Grupo de planos para rebobinar o banco de dados. Frankfurt sincronizará o conteúdo do banco de dados de Londres.

  2. Reestabelecer a replicação do Banco de Dados PostgreSQL para Londres: O grupo de planos terá uma etapa para começar a replicar o banco de dados PostgreSQL de Frankfurt para a região de Londres.

Observação: certifique-se de que as etapas sejam executadas na mesma ordem.

Crie os dois grupos de planos definidos pelo usuário a seguir

  1. Crie o grupo de planos Rewind PostgreSQL Databases.

    1. Em Grupos de Planos, clique em Adicionar grupo para criar um grupo de planos personalizado para rebobinar o banco de dados PostgreSQL na região de Frankfurt. Informe o Nome do grupo como Rewind PostgreSQL Databases at Frankfurt Region.

      Rebobinar Banco de Dados PostgreSQL no FRA

    2. Clique em Adicionar Etapa e especifique as informações a seguir. Adicionaremos uma etapa ao grupo de planos.

      • Certifique-se de escolher a Região como Frankfurt e a Instância de destino como postgresql01. Selecione o Script de armazenamento de objetos de execução e o local do script escolhe o bucket posgres-dr-lon do OCI Object Storage.

      • Informe os detalhes do script rewind_postgresql.sh com o local do script. O script fará shutdown do banco de dados PostgreSQL na região FRA.

      • Clique em Adicionar Etapa e verifique a etapa adicionada.

      Etapa Rebobinar Banco de Dados PostgreSQL

  2. Crie o grupo de planos Reestabelecer replicação do Banco de Dados PostgreSQL para Londres.

    1. Em Grupos de Planos, clique em Adicionar grupo para criar um grupo de planos personalizado para restabelecer a replicação do banco de dados PostgreSQL para Londres. Informe o Nome do grupo como Promote PostgreSQL Database at London Region.

      Restabelecer a replicação do Banco de Dados PostgreSQL no LON

    2. Clique em Adicionar Etapa e especifique as informações a seguir. Adicionaremos uma etapa no grupo de planos.

      • Certifique-se de escolher a Região como London e a Instância de destino como postgresql02. Selecione o Executar script de armazenamento de objetos e o local do script escolhe o bucket do OCI Object Storage posgres-dr-lon.

      • Informe os detalhes do script replicate_postgresql.sh com o local do script. O script fará shutdown do banco de dados PostgreSQL na região FRA.

      • Clique em Adicionar Etapa e verifique a etapa adicionada.

      Restabelecer a etapa de replicação do Banco de Dados PostgreSQL

Tarefa 6: Executar Pré-verificações e Executar o Plano de Switchover

A opção Executar Pré-verificações executa uma validação rápida de todas as etapas em um plano de DR e dos membros associados às etapas.

  1. No plano de switchover postgresql-switchover-london-frankfurt, clique em Executar Pré-verificações para executar pré-verificações.

    Pré-verificação de switchover

    Verifique a conclusão bem-sucedida.

    Status da pré-verificação de switchover

  2. No plano de switchover postgresql-switchover-london-frankfurt, clique em Executar Plano de Recuperação de Desastre para executar o plano.

    Executar Plano de Recuperação de Desastre

  3. Verifique o status do plano e garanta que todas as etapas no plano sejam bem-sucedidas.

    Executar Status do Plano de Recuperação de Desastre

  4. O plano de alternância executa todos os grupos de planos em uma ordem específica. Após a execução bem-sucedida do plano, o banco de dados PostgreSQL será promovido a mestre na região de Frankfurt.

  5. Automaticamente a função mudará no DRPG. Agora, Frankfurt terá o papel principal e Londres terá o papel de stand-by.

  6. Verifique o banco de dados PostgreSQL em Frankfurt.

Próximas Etapas

Você viu como executar automaticamente o switchover do banco de dados PostgreSQL e fazer switchback das operações de Recuperação de Desastre usando o OCI Full Stack DR. Para obter mais informações, consulte a documentação do OCI Full Stack DR na seção Links Relacionados.

Confirmação

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.