Stream wiederherstellen

Ein endgültig fehlgeschlagener Stream lässt sich wiederherstellen, ohne einen neuen Stream erstellen zu müssen. Geben Sie dazu die Position an, von der aus Datastream versucht, um mit dem Lesen von Änderungen aus der Quelle fortzufahren.

Streamwiederherstellung – Übersicht

Bei einem laufenden Stream können einige nicht behebbare Fehler auftreten und sein Status in FAILED_PERMANENTLY Solche Fehler verhindern, dass der Stream weiter ausgeführt wird. kann zu Datenverlusten führen.

Du kannst einen dauerhaft fehlerhaften Stream wiederherstellen, indem du ihn so konfigurierst, dass der Fehler ignoriert wird und die laufenden Ereignisse lesen, anstatt den Stream neu zu erstellen und die Verlaufsdaten. Wenn du einen Stream wiederherstellen möchtest, der dauerhaft fehlgeschlagen ist, musst du die um Daten aus einer anderen Replikationsposition auszulesen. Jede unterstützte Quelltyp hat eine eigene Definition einer Replikationsposition:

  • Bei Oracle-Quellen ist eine Replikationsposition eine Redo-Logdatei. in der Datenbank und die System Change Number (SCN) in dieser Datei.
  • Für MySQL-Quellen ist eine Replikationsposition das binäre Log der Datenbank (binlog) und die Position in dieser Datei.
  • Für PostgreSQL-Quellen (einschließlich AlloyDB for PostgreSQL): Eine Replikationsposition ist die Logsequenznummer (LSN) im Replikationsslot. Während der Wiederherstellung beginnt der Stream mit dem Lesen der ersten LSN im Replikationsslot.

Stream für eine MySQL- oder Oracle-Quelle wiederherstellen

Zum Wiederherstellen eines Streams für eine MySQL- oder Oracle-Quelle haben Sie folgende Möglichkeiten:

  • Ab der aktuellen Position wiederholen (empfohlen): Wählen Sie diese Option aus, Streaming-Versuch ab der aktuellen Position, an der der Stream zuletzt fehlgeschlagen ist. Sie müssen zuerst die Protokolldatei korrigieren oder aus der Sicherung wiederherstellen. Dies ist die empfohlene Option.

  • Aktuelle Position überspringen und ab der nächsten verfügbaren Position streamen: eine oder mehrere Protokolldateien fehlen, wählen Sie diese Option, Das Streaming wird ab der ersten Position in der nachfolgenden verfügbaren Datei fortgesetzt. Die Änderungen aus den fehlenden Protokolldateien gehen verloren. Sie können sie aber wiederherstellen, indem Sie einen Backfill ausführen.

  • Aktuelle Position überspringen und ab der letzten Position streamen: Wenn eine oder mehrere Protokolldateien fehlen, wählen Sie diese Option, Das Streaming wird ab der letzten Position in der aktuellsten Protokolldatei fortgesetzt. Die Änderungen aus den fehlenden Protokolldateien gehen verloren. Sie können sie aber wiederherstellen, indem Sie einen Backfill ausführen.

  • Ab der gewünschten Streamingdatei und -position fortsetzen: Wählen Sie diese Option aus. um den Stream ab einer bestimmten Logdatei und -position fortzusetzen. Einige Änderungen können geht verloren, wenn sich die angegebene Logposition nicht sofort oder direkt überschneidet. Verlorenen Log-Position zu folgen. Sie können diese Änderungen durch einen Backfill wiederherstellen.

Um einen dauerhaft fehlgeschlagenen Stream für eine MySQL- oder Oracle-Quelle wiederherzustellen, führen Sie führen Sie die folgenden Schritte aus:

  1. Rufen Sie in Google Cloud die Seite Streams auf.

    Zur Seite „Streams“

  2. Klicken Sie das Kästchen links neben dem Stream an, den Sie wiederherstellen möchten.

  3. Klicken Sie auf Wiederherstellen.

  4. Der Bereich Wiederherstellungsstrategie auswählen wird geöffnet. Wählen Sie eine Option aus. Wenn Sie Ab der gewünschten Streamingdatei und -position fortsetzen:

    • Für eine MySQL-Quelle: der Name der Logdatei im Feld File name (Dateiname) und die Logposition im Feld Position ein. Wenn Sie keine Position angeben, wird der Stream fortgesetzt. von der ersten Position in der angegebenen Protokolldatei an.
    • Für eine Oracle-Quelle: die System Change Number (SCN) im Feld System Change Nummer (SCN) ein. Dies ist ein Pflichtfeld.
  5. Klicken Sie auf Anwenden.

  6. Wenn der Stream wiederhergestellt wird, erscheint in der Spalte Wiederhergestellt ein Zeitstempel. auf der Seite Streams.

Stream für eine PostgreSQL-Quelle wiederherstellen

Zum Wiederherstellen eines Streams für eine PostgreSQL-Quelle müssen Sie die Replikation bereitstellen Anzeigenflächenname. Der Server verwendet diesen Replikationsslot, um Ereignisse an Datastream zu senden. Der Name des Replikationsslots kann mit dem Slot übereinstimmen, der für den fehlgeschlagenen Stream verwendet wird, oder unterschiedlich:

  • Wenn der neue Replikationsslot einen anderen Namen hat, geben Sie die neue Replikation an Slotname in Datastream. Weitere Informationen finden Sie unter Stream wiederherstellen für PostgreSQL-Quelle
  • Wenn Sie keinen Namen für den Replikationsslot angeben, verwendet Datastream den Parameter Name des Replikationsslots, der in der Quellkonfiguration angegeben ist. Weitere Informationen Siehe PostgreSQL-Quelldatenbank konfigurieren

Alle Änderungsereignisse an der Quelle, die zwischen dem Verlust der Logposition und dem geht die erste LSN im neuen Replikationsslot verloren. Du kannst diese Änderungen wiederherstellen indem Sie einen Backfill ausführen.

Führen Sie den folgenden Schritten:

  1. Rufen Sie in Google Cloud die Seite Streams auf.

    Zur Seite „Streams“

  2. Klicken Sie das Kästchen links neben dem Stream an, den Sie wiederherstellen möchten.

  3. Klicken Sie auf Wiederherstellen.

  4. Der Bereich Neuen Replikationsslot definieren wird geöffnet.

  5. Geben Sie im Feld Name des Replikationsslots den Namen einer neuen Replikation an. Slot, über den der Stream wiederhergestellt werden soll. Wenn Sie die Replikation neu erstellt haben mit demselben Namen oder Sie möchten die Anzeigenfläche wiederverwenden, die Sie bei der konfiguriert haben, können Sie dieses Feld leer lassen.

  6. Klicken Sie auf Anwenden.

  7. Wenn der Stream wiederhergestellt wird, erscheint in der Spalte Wiederhergestellt ein Zeitstempel. auf der Seite Streams.

Du kannst dauerhaft fehlgeschlagene Streams auch über die Streamdetails wiederherstellen. Seite. Klicken Sie dazu auf Stream wiederherstellen, wenn Sie sich detaillierte Informationen ansehen. über Ihren Stream.

Streamwiederherstellung für eine MySQL-Quelle bei einem manuellen Failover verwenden

Sie können einen manuellen Failover durchführen und die Streamwiederherstellung verwenden, um zu vermeiden, während der Wartung oder beim Ausfall einer primären Instanz komplett neu gestreamt wird. Im Allgemeinen unterstützt Datastream keine Failovers auf Replikate, Sie zerstören die Bilog-Kontinuität. Sie können jedoch mit diesen Schritten und stellen Sie sicher, dass Ihre Änderungsdaten erfasst werden:

  1. Beenden Sie alle Schreibvorgänge an die primäre Instanz.
  2. Der Messwert für die Datenaktualität muss auf 0 festgelegt sein. Das bedeutet, dass Datastream alle Änderungen erfasst und es sind keine neuen Ereignisse aus der Quelle vorhanden. Für Weitere Informationen finden Sie unter Stream beobachten.
  3. Führen Sie einen Failover auf die neue Datenbankinstanz aus.
  4. Aktualisieren Sie bei Bedarf das Verbindungsprofil des Streams auf die neue Datenbankinstanz Möglicherweise müssen Sie den Hostnamen oder die IP-Adresse der Datenbank ändern. Weitere Informationen finden Sie unter Verbindungsprofile ändern.
  5. Stream von einer bestimmten Position in der Failover-Instanz wiederherstellen um die Kontinuität der CDC zu gewährleisten.