Ga naar hoofdinhoud Ga naar aanvullende inhoud

Failover instellen

Informatie
  • De procedures die in dit onderwerp worden beschreven, moeten door uw PostgreSQL DBA worden uitgevoerd.
  • Vereist Data Movement gateway 2024.11.14 of hoger

In dit onderwerp wordt uitgelegd hoe u PostgreSQL en Data Movement gateway instelt om een failover-scenario te ondersteunen. De procedure die u moet uitvoeren hangt af van uw specifieke PostgreSQL-failoversetup.

Als de databaseobject-id voor de primaire en secundaire database hetzelfde blijft na een failover (wat meestal het geval is), hoeft u alleen het hosts-bestand op de Data Movement gateway-machine bij te werken met het IP-adres van de secundaire databaseserver. Als de databaseobject-id van de secundaire database echter niet dezelfde is als die van de primaire database na een failover, is aanvullende configuratie vereist. Het is meestal niet mogelijk om van tevoren te weten of de object-id zal veranderen, maar als u dat wel weet, voer dan de hieronder beschreven procedure Failover instellen wanneer de object-id voor de primaire en secundaire database verschillend is uit. Als u niet weet of de object-id zal veranderen, raden wij u aan de eenvoudigere procedure uit te voeren die wordt beschreven in failover instellen als de object-id voor de primaire en secundaire database hetzelfde is, omdat de object-id na een failover meestal hetzelfde zal blijven.

Als u de eenvoudigere instelling hebt uitgevoerd en Data Movement gateway er niet in slaagt om tijdens de failover te herstellen, dan moet u de procedure Failover instellen wanneer de object-id voor de primaire en secundaire database verschillend is, uitvoeren.

InformatieTerwijl de procedure Failover instellen wanneer de object-id voor de primaire en secundaire database hetzelfde is, wordt ondersteund met zowel replicatieprojecten als tussenopslagtaken in gegevensprojecten, wordt de procedure Failover instellen wanneer de object-id voor de primaire en secundaire database verschillend is, alleen ondersteund met replicatieprojecten.

Failover instellen als de object-id van de primaire en secundaire database hetzelfde is

Wanneer een failover optreedt, zal de gegevenstaak een herstelbare fout tegenkomen en opnieuw verbinding proberen te maken met het IP-adres van de primaire databaseserver. Meestal zal dit echter niet lukken omdat de secundaire databaseserver (bijna altijd) een ander IP-adres heeft.

Als het wisselen van IP-adressen niet wordt afgehandeld door een DNS-failoverservice, moet u het nieuwe IP-adres opgeven in het hosts-bestand op de Data Movement gateway-machine. Het pad naar het hosts-bestand is /etc/hosts. Nadat het hosts-bestand is bijgewerkt, wordt de gegevenstaak automatisch hervat.

Failover instellen als de object-id van de primaire en secundaire database verschillend is

InformatieAlleen ondersteund met replicatieprojecten.

In de standaardprocedure maakt de gegevenstaak automatisch een slot aan wanneer gegevens van een PostgreSQL-bron worden verplaatst. De namen van de slots bevatten de object-id van de database in de naam. In zeldzame gevallen zal de object-id van de primaire en secundaire databases verschillend zijn. In zo'n geval zal de gegevenstaak mislukken tijdens een failover, omdat hij het slot die hij voor de primaire database had gemaakt, niet kan vinden in de secundaire database. In dit geval treedt de volgende fout op:

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

Als u een dergelijke foutmelding krijgt, doe dan het volgende:

  1. Voeg in de sectie Interne eigenschappen van de connector-instellingen de interne eigenschap slotName toe en stel de slotnaamwaarde in.

    De opgegeven slotName moet al bestaan in de primaire PostgreSQL-server. U kunt een nieuw slot maken of een bestaand slot gebruiken.

    Voer de volgende query uit om een nieuw slot aan te maken en zijn LSN op te vragen:

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

    Voer de volgende query uit voor een lijst met beschikbare slots en hun LSN's:

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

  2. Voer het LSN voor de opgegeven slotName in het veld Positie bronwijziging in het dialoogvenster Geavanceerde uitvoeropties in en bereid vervolgens de gegevenstaak voor en start deze.

    Als er een failover optreedt, zal de secundaire server het vrijwel onmiddellijk overnemen en de primaire server worden. De failover moet worden afgehandeld door de uitbreiding pg_failover_slots.

  3. Wanneer een failover optreedt, zal de gegevenstaak een herstelbare fout tegenkomen en opnieuw verbinding proberen te maken met het IP-adres van de primaire databaseserver. Meestal zal dit echter niet lukken, omdat de secundaire databaseserver (bijna altijd) een ander IP-adres heeft. Als het wisselen van IP-adressen niet wordt afgehandeld door een DNS-failoverservice, moet u het nieuwe IP-adres opgeven in het hosts-bestand op de Data Movement gateway-machine. Het pad naar het hosts-bestand is /etc/hosts. Nadat het hosts-bestand is bijgewerkt, wordt de gegevenstaak automatisch hervat.

Was deze pagina nuttig?

Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!