Sie können einen dauerhaft fehlgeschlagenen Stream wiederherstellen, ohne einen neuen Stream erstellen zu müssen. Dazu geben Sie 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 nicht behebbare Fehler auftreten, die den Status in FAILED_PERMANENTLY
ändern. 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 Sie einen dauerhaft fehlgeschlagenen Stream wiederherstellen möchten, setzen Sie die Replikation zurück, damit das Lesen von einer anderen Replikationsposition aus gestartet wird. Für jeden unterstützten Quelltyp gibt es eine eigene Definition für eine 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.
- Bei SQL Server-Quellen ist die Replikationsposition die Logsequenznummer (LSN) in den Transaktionslogs oder Änderungstabellen.
- 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
Sie haben folgende Möglichkeiten, einen Stream für eine MySQL- oder Oracle-Quelle wiederherzustellen:
Ab der aktuellen Position noch einmal versuchen (empfohlen): Wählen Sie diese Option aus, um das Streaming ab der aktuellen Position zu versuchen, an der der Stream zuletzt fehlgeschlagen ist. Sie müssen die Logdatei zuerst reparieren oder aus einer 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 Logdateien gehen verloren, können aber durch einen Backfill wiederhergestellt werden.
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 verloren gehen, wenn die angegebene Logposition sich nicht mit der verlorenen Logposition überschneidet oder ihr nicht unmittelbar folgt. 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:
Rufen Sie in Google Cloud die Seite Streams auf.
Klicken Sie in der Zeile mit dem Namen des Streams, den Sie wiederherstellen möchten, auf Wiederherstellen.
Der Bereich Wiederherstellungsstrategie auswählen wird geöffnet. Wählen Sie eine Option aus. Wenn du Ab der gewünschten Streamingdatei und ‑position fortsetzen auswählst, gib Folgendes ein:
- Bei einer MySQL-Quelle: den Protokolldateinamen im Feld Dateiname und die Protokollposition im Feld Position. Wenn Sie keine Position angeben, wird der Stream ab der ersten Position in der angegebenen Protokolldatei fortgesetzt.
- Bei einer Oracle-Quelle: die System Change Number (SCN) im Feld System Change Number (SCN). Dies ist ein Pflichtfeld.
Klicken Sie auf Anwenden.
Wenn der Stream wiederhergestellt wurde, wird in der Spalte Wiederhergestellt auf der Seite Streams ein Zeitstempel angezeigt.
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 identisch sein, der für den fehlgeschlagenen Stream verwendet wurde, oder sich davon unterscheiden:
- Wenn der neue Replikationsslot einen anderen Namen hat, geben Sie die neue Replikation an Slotname in Datastream.
Wenn Sie keinen Namen für den Replikationsslot angeben, verwendet Datastream den Namen, der in der Quellkonfiguration angegeben ist.
Weitere Informationen zu Replikationsslots finden Sie unter PostgreSQL-Quelldatenbank konfigurieren.
Alle Änderungsereignisse an der Quelle, die zwischen dem Verlust der Logposition und dem ersten LSN im neuen Replikationsslot aufgetreten sind, gehen verloren. Du kannst diese Änderungen wiederherstellen indem Sie einen Backfill ausführen.
Führen Sie den folgenden Schritten:
Rufen Sie in Google Cloud die Seite Streams auf.
Klicken Sie in der Zeile mit dem Namen des Streams, den Sie wiederherstellen möchten, auf Wiederherstellen.
Der Bereich Neuen Replikationsslot definieren wird geöffnet.
Geben Sie im Feld Name des Replikationsslots den Namen einer neuen Replikation an. Slot, über den der Stream wiederhergestellt werden soll. Wenn Sie den Replikationsslot mit demselben Namen neu erstellt haben oder den Slot wiederverwenden möchten, den Sie bei der Konfiguration der Quelle angegeben haben, können Sie dieses Feld leer lassen.
Klicken Sie auf Anwenden.
Wenn der Stream wiederhergestellt wird, erscheint in der Spalte Wiederhergestellt ein Zeitstempel. auf der Seite Streams.
Sie können dauerhaft fehlgeschlagene Streams auch auf der Seite Streamdetails wiederherstellen. Klicken Sie dazu auf Stream wiederherstellen, wenn Sie sich die detaillierten Informationen ansehen. über Ihren Stream.
Stream für eine SQL Server-Quelle wiederherstellen
Sie haben folgende Möglichkeiten, einen Stream für eine SQL Server-Quelle wiederherzustellen:
Ab der ersten verfügbaren Position fortsetzen: Wählen Sie diese Option aus, wenn das Log abgeschnitten oder in den Änderungstabellen fehlen Datensätze und Sie möchten den Vorgang fortsetzen aus dem ersten verfügbaren Ereignis. Die fehlenden Ereignisse gehen verloren, können aber durch einen Backfill wiederhergestellt werden.
Ab der gewünschten Logsequenznummer (LSN) fortsetzen: Wählen Sie diese Option aus, um den Stream ab einer bestimmten LSN in den Transaktionslogs oder Änderungstabellen fortzusetzen. Einige Ereignisse können verloren gehen, wenn sich die angegebene LSN nicht sofort mit der angegebenen LSN überschneidet LSN, die Datastream abrufen konnte. Du kannst deine indem Sie einen Backfill ausführen.
Die LSN in den Transaktionsprotokollen und Änderungstabellen enthält 20 hexadezimalstellige Zeichen. Bei Transaktionsprotokollen wird sie jedoch durch ein Trennzeichen getrennt. Beispiel:
- LSN in Transaktionslogs:
0000123C:0000BA78:0004
- LSN in Änderungstabellen:
0000123C0000BA780004
- LSN in Transaktionslogs:
Führen Sie den folgenden Schritten:
Rufen Sie in Google Cloud die Seite Streams auf.
Klicken Sie in der Zeile mit dem Namen des Streams, den Sie wiederherstellen möchten, auf Wiederherstellen.
Der Bereich Wiederherstellungsstrategie auswählen wird geöffnet. Wählen Sie eine Option aus.
Klicken Sie auf Anwenden.
Wenn der Stream wiederhergestellt wird, erscheint in der Spalte Wiederhergestellt ein Zeitstempel. auf der Seite Streams.
Streamwiederherstellung für eine MySQL-Quelle in einem manuellen Failover-Szenario verwenden
Sie können ein manuelles Failover ausführen und die Streamwiederherstellung verwenden, um zu vermeiden, dass Ihre Streams bei Wartung oder Ausfall der primären Instanz neu erstellt werden müssen. Im Allgemeinen unterstützt Datastream keine Failover zu Replikas, da dadurch die Binlog-Kontinuität unterbrochen wird. Sie können jedoch die folgenden Schritte ausführen, um den Stream wiederherzustellen und dafür zu sorgen, dass Ihre Änderungsdaten erfasst werden:
- Beenden Sie alle Schreibvorgänge an die primäre Instanz.
- 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. Weitere Informationen finden Sie unter Streams überwachen.
- Führen Sie einen Failover auf die neue Datenbankinstanz aus.
- Aktualisieren Sie bei Bedarf das Verbindungsprofil des Streams auf die neue Datenbankinstanz. Möglicherweise müssen Sie beispielsweise den Datenbank-Hostnamen oder die Datenbank-IP-Adresse ändern. Weitere Informationen finden Sie unter Verbindungsprofile ändern.
- Stellen Sie den Stream von einer bestimmten Position in der Failover-Instanz wieder her, um die CDC-Kontinuität zu gewährleisten.
Nächste Schritte
- Weitere Informationen zu Streamzuständen finden Sie unter Streamlebenszyklus.
- Informationen zum Aufrufen von Informationen zu Ihrem Stream finden Sie unter Stream ansehen.
- Informationen zum Überwachen eines Streams finden Sie unter Stream überwachen.
- Informationen zum Verwalten des Backfills für einen Stream finden Sie unter Backfill für die Objekte eines Streams verwalten.
- Informationen zum Löschen eines vorhandenen Streams finden Sie unter Stream löschen.