Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

Einrichten von Failover

Informationshinweis
  • Die in diesem Thema beschriebenen Verfahren sollten von Ihrem PostgreSQL-DBA durchgeführt werden.
  • Erfordert Data Movement gateway 2024.11.14 oder höher

In diesem Thema wird erklärt, wie PostgreSQL und Data Movement gateway für die Unterstützung eines Failover-Szenarios eingerichtet werden. Die Vorgehensweise, der Sie folgen müssen, hängt von Ihrer spezifischen PostgreSQL-Failover-Einrichtung ab.

Wenn die Datenbankobjekt-ID für die primäre und die sekundäre Datenbank nach einem Failover gleich bleibt (was in der Regel der Fall ist), müssen Sie nur die Datei „hosts“ auf dem Rechner mit dem Data Movement gateway mit der IP-Adresse des sekundären Datenbankservers aktualisieren. Wenn jedoch die Datenbankobjekt-ID der sekundären Datenbank nach einem Failover nicht mit der der primären Datenbank übereinstimmt, ist eine zusätzliche Konfiguration erforderlich. Normalerweise ist es nicht möglich, im Voraus zu wissen, ob sich die Objekt-ID ändert. Wenn Sie es jedoch wissen, führen Sie das unten beschriebene Verfahren Einrichten des Failovers bei unterschiedlicher Objekt-ID für die primäre und sekundäre Datenbank durch. Wenn Sie nicht wissen, ob sich die Objekt-ID ändern wird, empfehlen wir Ihnen, das einfachere Verfahren auszuführen, das in Einrichten des Failovers bei gleicher Objekt-ID für die primäre und sekundäre Datenbank beschrieben ist, da die Objekt-ID nach einem Failover in der Regel gleich bleibt.

Wenn Sie die einfachere Einrichtung durchgeführt haben und Data Movement gateway während des Failovers nicht wiederhergestellt werden kann, müssen Sie das Verfahren Einrichten des Failovers bei unterschiedlicher Objekt-ID für die primäre und sekundäre Datenbank durchführen.

InformationshinweisDas Verfahren Einrichten des Failovers bei gleicher Objekt-ID für die primäre und sekundäre Datenbank wird sowohl von Replikationsprojekten als auch von Bereitstellungsaufgaben in Daten-Pipeline-Projekten unterstützt, während das Verfahren Einrichten des Failovers bei unterschiedlicher Objekt-ID für die primäre und sekundäre Datenbank nur für Replikationsprojekte unterstützt wird.

Einrichten des Failovers bei gleicher Objekt-ID für die primäre und die sekundäre Datenbank

Bei einem Failover stößt die Datenaufgabe auf einen wiederherstellbaren Fehler und versucht, sich erneut mit der IP-Adresse des primären Datenbankservers zu verbinden. In der Regel wird dies jedoch nicht gelingen, da der sekundäre Datenbankserver (fast immer) eine andere IP-Adresse hat.

Wenn der Wechsel der IP-Adressen nicht von einem DNS-Failover-Dienst durchgeführt wird, müssen Sie die neue IP-Adresse in der Datei „hosts“ auf dem Rechner mit dem Data Movement gateway angeben. Der Pfad zur Datei „hosts“ lautet /etc/hosts. Nachdem die Datei „hosts“ aktualisiert wurde, wird die Datenaufgabe automatisch fortgesetzt.

Einrichten des Failovers bei unterschiedlicher Objekt-ID für die primäre und die sekundäre Datenbank

InformationshinweisDies wird nur für Replikationsprojekte unterstützt.

Im Standardbetrieb erstellt die Datenaufgabe beim Verschieben von Daten aus einer PostgreSQL-Quelle automatisch einen Slot. In den Slot-Namen ist die Objekt-ID der Datenbank enthalten. In seltenen Fällen sind die Objekt-IDs der primären und sekundären Datenbanken unterschiedlich. In einem solchen Fall schlägt die Datenaufgabe bei einem Failover fehl, da sie den Slot, den sie für die primäre Datenbank erstellt hat, in der sekundären Datenbank nicht finden kann. In diesem Fall tritt der folgende Fehler auf:

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

Wenn Sie auf einen solchen Fehler stoßen, gehen Sie wie folgt vor:

  1. Fügen Sie in den Konnektoreinstellungen im Abschnitt Interne Eigenschaften die interne Eigenschaft slotName hinzu und legen Sie den Wert für den Slot-Namen fest.

    Der angegebene slotName muss bereits auf dem primären PostgreSQL-Server vorhanden sein. Sie können entweder einen neuen Slot erstellen oder einen vorhandenen Slot verwenden.

    Um einen neuen Slot zu erstellen und seinen LSN abzurufen, führen Sie die folgende Abfrage aus:

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

    Um eine Liste der verfügbaren Slots und ihrer LSNs zu erhalten, führen Sie die folgende Abfrage aus:

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

  2. Geben Sie den LSN für den im Dialogfeld Erweiterte Ausführungsoptionen angegebenen slotName in das Feld Quelländerungsposition ein und bereiten Sie dann die Datenaufgabe vor und starten Sie sie.

    Wenn es zu einem Failover kommt, wird der sekundäre Server fast sofort zum primären Server. Das Failover wird von der Erweiterung pg_failover_slots durchgeführt.

  3. Bei einem Failover stößt die Datenaufgabe auf einen wiederherstellbaren Fehler und versucht, sich erneut mit der IP-Adresse des primären Datenbankservers zu verbinden. In der Regel wird dies jedoch nicht gelingen, da der sekundäre Datenbankserver (fast immer) eine andere IP-Adresse hat. Wenn der Wechsel der IP-Adresse nicht von einem DNS-Failover-Dienst übernommen wird, müssen Sie die neue IP-Adresse in der Datei „hosts“ auf dem Rechner Data Movement gateway angeben. Der Pfad zur Datei „hosts“ lautet /etc/hosts. Nachdem die Datei „hosts“ aktualisiert wurde, wird die Datenaufgabe automatisch fortgesetzt.

Hat diese Seite Ihnen geholfen?

Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!