Konfigurera redundans
- De processer som beskrivs i detta ämne ska utföras av din PostgreSQL DBA.
- Kräver Data Movement gateway 2024.11.14 eller senare
I det här avsnittet förklaras hur du konfigurerar PostgreSQL och Data Movement gateway för att stödja ett redundans-scenario. Vilken process som krävs beror på din specifika inställning av PostgreSQL-redundans.
Om databasobjekt-ID:t för den primära och sekundära databasen förblir detsamma efter en redundans (vilket oftast är fallet) behöver du bara uppdatera värdens fil i Data Movement gateway med den sekundära databasserverns IP-adress. Om databasobjekt-ID:t för den sekundära databasen inte är detsamma som för den primära databasen efter en redundans krävs dock ytterligare konfiguration. Det är vanligtvis inte möjligt att i förväg veta om objekt-ID:t kommer att ändras, men om du vet det kan du utföra processen Konfigurera redundans när objekt-ID för primär och sekundär databas är olika som beskrivs nedan. Om du inte vet om objekt-ID:t kommer att ändras rekommenderar vi att du utför den enklare processen som beskrivs i Konfigurera redundans när objekt-ID för primär och sekundär databas är samma, eftersom objekt-ID:t brukar förbli detsamma efter en redundans.
Om du har utfört den enklare installationen och Data Movement gateway inte återhämtade sig under redundansen måste du utföra processen Konfigurera redundans när objekt-ID för primär och sekundär databas är olika.
Konfigurera redundans när objekt-ID för primär och sekundär databas är samma
När en redundans inträffar kommer datauppgiften att stöta på ett fel som går att åtgärda och försöka återansluta till IP-adressen för den primära databasservern. Det kommer dock oftast inte att lyckas eftersom den sekundära databasservern (nästan alltid) har en annan IP-adress.
Om bytet av IP-adresser inte hanteras av en DNS-redundanstjänst måste du ange den nya IP-adressen i värdens fil i Data Movement gateway-maskinen. Sökvägen till värdens fil är /etc/hosts. När värdens fil har uppdaterats återupptas datauppgiften automatiskt.
Konfigurera redundans när objekt-ID för primär och sekundär databas är olika
I standarddrift skapar datauppgiften en plats automatiskt när du flyttar data från en PostgreSQL-källa. Slot-namnen innehåller databasens objekt-ID i sitt namn. I sällsynta fall kan objekt-ID för den primära och sekundära databasen vara olika. I ett sådant fall kommer datauppgiften att misslyckas under en redundans eftersom den inte kommer att kunna hitta den slot som den skapade för den primära databasen i den sekundära databasen. I detta fall kommer följande fel att uppstå:
[SOURCE_CAPTURE ]E: Can't resume task after replication slot was dropped. [1020101] (postgres_endpoint_capture.c:445)
Om du stöter på ett sådant fel ska du göra följande:
-
I delavsnittet Interna egenskaper i inställningarna för kopplingen lägger du till den interna egenskapen slotName och anger värdet för slot-namnet.
Angivet slotName måste redan finnas i den primära PostgreSQL-servern. Du kan antingen skapa en ny slot eller använda en befintlig slot.
Kör följande fråga för att skapa en ny slot och hämta dess LSN:
SELECT lsn FROM pg_create_logical_replication_slot ('user_provided_slot_name', 'test_decoding');
Kör följande fråga för en lista över tillgängliga slots och deras LSN:
SELECT slot_name, restart_lsn FROM pg_replication_slots WHERE slot_type = 'logical';
-
Ange LSN för angivet slotName i fältet Position för källändring i dialogrutan Avancerade körningsalternativ och förbered och starta sedan datauppgiften.
Om en redundans inträffar kommer den sekundära servern att ta över nästan omedelbart och bli den primära servern. Redundans ska hanteras av komplementet pg_failover_slots.
-
När en redundans inträffar kommer datauppgiften att stöta på ett fel som går att åtgärda och försöka återansluta till IP-adressen för den primära databasservern. Det brukar dock inte lyckas eftersom den sekundära databasservern (nästan alltid) har en annan IP-adress. Om bytet av IP-adresser inte hanteras av en DNS-redundanstjänst måste du ange den nya IP-adressen i värdens fil på Data Movement gateway-maskinen. Sökvägen till värdens fil är /etc/hosts. När värdens fil har uppdaterats återupptas datauppgiften automatiskt.