Ir para conteúdo principal Pular para conteúdo complementar

Configurando o failover

Nota informativa
  • Os procedimentos descritos neste tópico devem ser executados pelo seu DBA do PostgreSQL.
  • Requer o Data Movement gateway 2024.11.14 ou posterior

Este tópico explica como configurar o PostgreSQL e o Data Movement gateway para oferecer suporte a um cenário de failover. O procedimento que você precisa executar depende da sua configuração específica de failover do PostgreSQL.

Se o ID do objeto de banco de dados para o banco de dados primário e secundário permanecer o mesmo após um failover (o que geralmente acontece), você só precisará atualizar o arquivo de hosts na máquina do Data Movement gateway com o endereço IP do servidor de banco de dados secundário. No entanto, se o ID do objeto de banco de dados do banco de dados secundário não for o mesmo do banco de dados primário após um failover, será necessária uma configuração adicional. Geralmente não é possível saber com antecedência se o ID do objeto será alterado, mas se você souber, execute o procedimento Configurando o failover quando o ID do objeto do banco de dados primário e secundário for diferente descrito abaixo. Se você não souber se o ID do objeto será alterado, recomendamos executar o procedimento mais simples descrito em Configurando o failover quando o ID do objeto do banco de dados primário e secundário for igual, pois o ID do objeto geralmente permanecerá o mesmo após um failover.

Se você tiver executado a configuração mais simples e o Data Movement gateway não conseguir se recuperar durante o failover, será necessário executar o procedimento Configurando o failover quando o ID do objeto do banco de dados primário e secundário for diferente.

Nota informativaEmbora o procedimento Configurando o failover quando o ID do objeto do banco de dados primário e secundário for igual seja compatível tanto com projetos de replicação quanto com tarefas de aterrisagem em projetos de pipeline de dados, o procedimento Configurando o failover quando o ID do objeto do banco de dados primário e secundário for diferente é compatível apenas com projetos de replicação.

Configurando o failover quando o ID do objeto do banco de dados primário e secundário for igual

Quando ocorrer um failover, a tarefa de dados encontrará um erro recuperável e tentará se reconectar ao endereço IP do servidor de banco de dados primário. No entanto, normalmente não terá êxito, pois o servidor de banco de dados secundário terá (quase sempre) um endereço IP diferente.

Se a troca de endereços IP não for feita por um serviço de failover de DNS, você precisará especificar o novo endereço IP no arquivo de hosts da máquina do Data Movement gateway. O caminho para o arquivo de hosts é /etc/hosts. Depois que o arquivo de hosts for atualizado, a tarefa de dados será retomada automaticamente.

Configurando o failover quando o ID do objeto do banco de dados primário e secundário for diferente

Nota informativaCompatível apenas com projetos de Replicação.

Na operação padrão, a tarefa de dados cria um slot automaticamente ao mover dados de uma fonte do PostgreSQL. Os nomes dos slots contêm o ID do objeto do banco de dados em seu nome. Em casos raros, o ID do objeto dos bancos de dados primário e secundário será diferente. Nesse caso, a tarefa de dados falhará durante um failover, pois não conseguirá encontrar o slot que criou para o banco de dados primário no banco de dados secundário. Nesse caso, ocorrerá o seguinte erro:

[SOURCE_CAPTURE ]E: Can't resume task after replication slot was dropped. [1020101] (postgres_endpoint_capture.c:445)

Se você encontrar esse erro, faça o seguinte:

  1. Na seção Propriedades internas das configurações do conector, adicione a propriedade interna slotName e defina o valor do nome do slot.

    O slotName especificado já deve existir no servidor PostgreSQL primário. Você pode criar um novo slot ou usar um slot existente.

    Para criar um novo slot e recuperar seu LSN, execute a seguinte consulta:

    SELECT lsn FROM pg_create_logical_replication_slot ('user_provided_slot_name', 'test_decoding');

    Para obter uma lista de slots disponíveis e seus LSNs, execute a seguinte consulta:

    SELECT slot_name, restart_lsn FROM pg_replication_slots WHERE slot_type = 'logical';

  2. Digite o LSN para o slotName especificado no campo Posição de alteração de origem do diálogo Opções avançadas de execução e, em seguida, prepare e inicie a tarefa de dados.

    Se ocorrer um failover, o servidor secundário assumirá o controle quase imediatamente e se tornará o servidor primário. O failover deve ser tratado pela extensão pg_failover_slots.

  3. Quando ocorrer um failover, a tarefa de dados encontrará um erro recuperável e tentará se reconectar ao endereço IP do servidor de banco de dados primário. No entanto, normalmente não será bem-sucedido, pois o servidor de banco de dados secundário terá (quase sempre) um endereço IP diferente. Se a troca de endereços IP não for feita por um serviço de failover de DNS, você precisará especificar o novo endereço IP no arquivo de hosts da máquina do Data Movement gateway. O caminho para o arquivo de hosts é /etc/hosts. Depois que o arquivo de hosts for atualizado, a tarefa de dados será retomada automaticamente.

Esta página ajudou?

Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!