Probleme diagnostizieren

Wenn bei einem Stream in Datastream ein Laufzeitfehler auftritt, können Sie sich die Details auf der Seite Streams oder Streamdetails in der Google Cloud Console ansehen. Sie können Diagnoseinformationen auch über die Datastream API abrufen. Einige Probleme, z. B. ein ungültiges Passwort, können behoben werden. Die Replikation wird dann automatisch fortgesetzt, nachdem Sie sie behoben haben. Andere Fehler betreffen ein einzelnes Objekt, z. B. einen nicht unterstützten Datentyp, oder beenden den Stream, wenn Datastream keine Verbindung zur Quelle herstellen kann.

Prüfen Sie zur Fehlerbehebung die Fehlermeldung und folgen Sie den Schritten für Konfigurations-, Verbindungs-, Quell- oder BigQuery-Zielfehler.

Konfigurations- und Verbindungsfehler

Fehler Schritte zur Fehlerbehebung
Fehler beim Herstellen einer Verbindung zur Quelldatenbank (generisch).

Dieser Fehler kann verschiedene Gründe haben. So beheben Sie diesen Fehler:

  1. Prüfen Sie, ob die Quelldatenbank aktiv und erreichbar ist.
  2. Rufen Sie auf den Seiten Streams oder Verbindungsprofile das Quellverbindungsprofil auf.
  3. Prüfen Sie, ob die Verbindungsinformationen für das Verbindungsprofil korrekt sind.
  4. Prüfen Sie, ob Nutzername und Passwort übereinstimmen.
  5. Prüfen Sie, ob der Nutzername in der Datenbank vorhanden ist und die erforderlichen Berechtigungen hat.
  6. Speichern Sie alle Änderungen, die Sie auf der Seite Verbindungsprofile vorgenommen haben.

Der Stream wird automatisch fortgesetzt.

Fehler beim Herstellen einer Verbindung zur Quelldatenbank (IP-Zulassungsliste). Das kann passieren, wenn die Verbindungsmethode IP-Zulassungsliste ausgewählt ist, aber eine oder mehrere der ausgehenden IP-Adressen von Datastream nicht ordnungsgemäß in der Quelldatenbank hinzugefügt wurden. Die im Datastream-Verbindungsprofil angezeigten ausgehenden IP-Adressen müssen in der Netzwerkfirewall konfiguriert sein, damit der Quelldatenbankserver Verbindungen von diesen IP-Adressen akzeptieren kann. Sobald das Problem behoben ist, wird der Stream automatisch fortgesetzt.
Fehler beim Herstellen einer Verbindung zur Quelldatenbank (Weiterleitungs-SSH-Tunnel). Das kann passieren, wenn ein Problem mit dem Weiterleitungs-SSH-Tunnel vorliegt. Prüfen Sie den Status des Tunnels. Wenn der Tunnel beendet wurde, muss er gestartet werden. Sobald das Problem behoben ist, wird der Stream automatisch fortgesetzt.
Datastream kann über einen Weiterleitungs-SSH-Tunnel keine Verbindung zu einem Bastion Host herstellen. Prüfen Sie, ob die Konfiguration des Weiterleitungs-SSH-Tunnels im Quellverbindungsprofil richtig ist und ob der Port auf dem SSH-Tunnelserver geöffnet ist.
Fehler beim Herstellen einer Verbindung zur Quelldatenbank aufgrund von ungültigen Zertifikaten. Dies kann auftreten, wenn bei der Definition des Quellverbindungsprofils ein Problem mit den Zertifikaten auftritt. Rufen Sie die Seite Verbindungsprofile auf und wählen Sie das angegebene Verbindungsprofil aus. Prüfen Sie, ob die Zertifikate richtig eingerichtet sind. Nachdem Sie die Änderungen vorgenommen haben, speichern Sie das Verbindungsprofil. Der Stream wird dann automatisch fortgesetzt.
Fehler bei Verwendung der privaten Konnektivität zum Herstellen einer Verbindung zur Quelldatenbank. Dieser Fehler betrifft die Methode für private Konnektivität über VPC-Peering.
  1. Prüfen Sie, ob Sie alle Voraussetzungen für das VPC-Peering erfüllt haben.
  2. Nachdem Sie die Konfiguration für private Konnektivität erstellt haben, prüfen Sie, ob die Route mit der internen IP-Adresse der Datenbank auf der Seite VPC-Netzwerk-Peering auf dem Tab Exportierte Routen angezeigt wird.

    Rufen Sie dazu die Seite VPC-Netzwerk-Peering auf und suchen Sie nach dem hinzugefügten Peering (Name: peering-[UUID]). Die Route finden Sie auf dem Tab Exportierte Routen. Wenn diese Route nicht vorhanden ist, fügen Sie sie manuell hinzu.

  3. Datastream prüft nicht, ob es Überschneidungen mit dynamischen Peering-Routen gibt. Wenn Sie ein Subnetz angeben, das sich mit einer dynamischen Route überschneidet, kann dies zu Verbindungsproblemen führen. Daher raten wir von der Verwendung eines Subnetzes ab, das Teil einer dynamischen Route ist.
  4. Achten Sie darauf, dass die benutzerdefinierten Routen für die Datastream-IP-Adressbereiche korrekt beworben werden. Wenn die benutzerdefinierten Routen fehlen, lesen Sie den Abschnitt Benutzerdefinierte beworbene Routen.
  5. Wenn weiterhin Probleme beim Herstellen einer Verbindung zur Quelldatenbank auftreten, lesen Sie den Abschnitt Umgekehrten Proxy einrichten.
Fehler beim Herstellen einer Verbindung zur Quelldatenbank über die Private Service Connect-Schnittstelle.
  1. Prüfen Sie, ob Sie alle Voraussetzungen erfüllt haben.
  2. Achten Sie darauf, dass Ihre Firewallregeln dem Subnetzwerk des bereitgestellten Netzwerkanhangs erlauben, eine Verbindung zur Quelldatenbank herzustellen.
  3. Achten Sie darauf, dass die benutzerdefinierten Routen für die Datastream-IP-Adressbereiche korrekt beworben werden. Wenn die benutzerdefinierten Routen fehlen, lesen Sie den Abschnitt Benutzerdefinierte beworbene Routen.
Der Verbindungstyp STATIC_SERVICE_IP_CONNECTIVITY ist nicht zulässig, wenn die Organisationsrichtlinie constraints/datastream.disablePublicConnectivity aktiviert ist.

Sie haben die öffentliche Netzwerkverbindungsmethode "IP-Zulassungsliste" oder "Weiterleitungs-SSH-Tunnel" für das erstellte Verbindungsprofil ausgewählt. Die Organisationsrichtlinie Öffentliche Verbindungsmethoden blockieren für Datastream ist jedoch aktiviert. Daher können Sie keine öffentlichen Verbindungsmethoden für das Verbindungsprofil auswählen.

Wählen Sie zur Behebung dieses Problems entweder die private Netzwerkverbindungsmethode VPC-Peering oder Private Service Connect-Schnittstellen aus oder deaktivieren Sie die Organisationsrichtlinie.

So deaktivieren Sie die Organisationsrichtlinie:

  1. Rufen Sie in der Google Cloud Console die Seite Organisationsrichtlinien auf.
  2. Wählen Sie die Organisationsrichtlinie Datastream – Öffentliche Verbindungsmethoden blockieren aus.
  3. Klicken Sie auf BEARBEITEN.

  4. Wählen Sie im Abschnitt Gilt für der Seite die Option Anpassen aus.
  5. Wählen Sie im Abschnitt Erzwingung die Option Aus aus.

  6. Klicken Sie auf SPEICHERN.
  7. Kehren Sie zu dem Oracle-Verbindungsprofil zurück, das Sie gerade erstellen, und klicken Sie auf ERSTELLEN.
Beim Konfigurieren der Quelldatenbank für meinen Stream kann ich die Tabellen und Schemas, die ich übertragen möchte, nicht in der Liste der einzuschließenden Objekte finden.

Dies kann passieren, wenn Ihre Datenbank Tausende von Tabellen und Schemas enthält. Einige davon sind möglicherweise nicht in der Liste der Objekte enthalten, die beim Konfigurieren der Quelle für den Stream in der Google Cloud Console abgerufen werden sollen. Wählen Sie im Abschnitt Objekte auswählen, die einbezogen werden sollen nicht Bestimmte Schemas und Tabellen, sondern Benutzerdefiniert aus. Geben Sie im Feld Objektübereinstimmungskriterien die Schemas und Tabellen ein, die Datastream abrufen soll.

Ich habe meinem Stream über das Menü Einzuschließende Objekte mehrere Tabellen hinzugefügt. Wenn ich mir jedoch den Tab Objekte unter Streamdetails ansehe, stelle ich fest, dass einige Tabellen fehlen. Achten Sie darauf, dass für jede dieser Tabellen mindestens ein CDC-Update vorhanden ist, damit Datastream die Änderungen erkennen und die Tabellen automatisch in den Stream aufnehmen kann.
Fehler beim Laden der Liste der Objekte, wenn Sie das Menü Einzuschließende Objekte in der Google Cloud Console verwenden. Das kann passieren,wenn Ihre Datenbank mehr als 5.000 Schemas und Tabellen enthält. Verwenden Sie eine andere Methode, um die einzuschließenden Objekte anzugeben, oder verwenden Sie die Datastream API. Weitere Informationen finden Sie unter Quelldatenbanken konfigurieren.
Ereignisse, die während des Streamings verworfen und nicht im Ziel repliziert wurden.

Datastream kann nicht unterstützte Ereignisse während des Streamings verwerfen. Sie haben folgende Möglichkeiten, das Problem zu beheben:

  • Lösen Sie manuell einen Backfill der gesamten Tabelle aus. Das funktioniert nur, wenn die verworfenen Ereignisse ausschließlich UPSERT-Ereignisse sind. Wenn die verworfenen Ereignisse DELETE-Ereignisse enthalten, müssen Sie die Tabelle in BigQuery kürzen, bevor Sie den Backfill ausführen.

    Informationen zum Ausführen eines Backfills finden Sie unter Backfill initiieren.

  • Wenden Sie sich an den Google-Support und bitten Sie ihn, einen teilweisen Backfill durchzuführen. Das ist nur möglich, wenn Sie die verworfenen Ereignisse mit einer SQL-WHERE-Klausel identifizieren können und keines der Ereignisse ein DELETE-Ereignis ist.
  • Ignorieren Sie das Problem, wenn die Anzahl der verworfenen Ereignisse gering ist oder die verworfenen Ereignisse nicht relevant sind.
Zeitüberschreitung beim Versuch, eine Verbindung zur Datenquelle herzustellen. Prüfen Sie, ob die Konfiguration von Hostname und Port korrekt ist und ob auf die Datenquelle zugegriffen werden kann. Da das Datastream-Netzwerk bei Verwendung von VPC-Peering nicht direkt mit einem privaten Dienstnetzwerk (z. B. einer Cloud SQL-Instanz) verbunden werden kann, müssen Sie eine NAT-VM (Network Address Translation) verwenden, um eine Verbindung zwischen Datastream und Ihrer Ressource herzustellen. Weitere Informationen zum Einrichten einer NAT-VM finden Sie unter VPC-Peering konfigurieren.
Das Schema des Objekts OBJECT_NAME ist zu groß, um von Datastream verarbeitet zu werden. Datastream unterstützt nicht die Replikation von Ereignissen mit entsprechenden Quellschemas, die größer als 2.621.440 Unicode-Zeichen sind. Diese Ereignisse werden mit dem folgenden Ursachencode verworfen: UNSUPPORTED_LARGE_SCHEMA. Möglicherweise möchten Sie einige der Spalten ausschließen oder umbenennen. Alternativ können Sie das Objekt mit dem großen Schema ausschließen.
Der Streamstatus hat sich geändert. Es kann mehrere Gründe für diesen Fehler geben. Ein häufiges Problem ist jedoch eine ungültige Quellkonfiguration. Wenn Ihr Stream mit dieser Fehlermeldung nicht gestartet werden kann, prüfen Sie Ihre Quellkonfiguration auf doppelte Schlüssel oder Tabellennamen, Dateninkonsistenzen oder Schemakonflikte. Viele der Probleme können behoben werden, indem Sie die Einstellungen des fehlgeschlagenen Streams direkt in der Google Cloud Console bearbeiten und die Einträge für eingeschlossene und ausgeschlossene Objekte anpassen. Weitere Informationen finden Sie unter Konfigurationsinformationen zur Quelldatenbank ändern.

Oracle-Fehler

Fehler Schritte zur Fehlerbehebung
Das zusätzliche Logging ist in der Quelldatenbank falsch konfiguriert.

Ein Fehler beim Abrufen laufender CDC-Daten (Change Data Capture) kann auftreten, wenn die Konfiguration für das zusätzliche Logging in der Quelldatenbank nicht korrekt ist. Prüfen Sie, ob das zusätzliche Logging richtig konfiguriert ist. Prüfen Sie insbesondere, ob das zusätzliche Logging für die Datenbanktabellen aktiviert ist, die von der Quelle zum Ziel gestreamt werden. Der Stream wird automatisch fortgesetzt.

Die Replikation kann nicht fortgesetzt werden, wenn die Logposition verloren geht. Dieser Fehler kann auftreten, wenn der Replikationsprozess für längere Zeit pausiert wird, was dazu führt, dass die Logposition verloren geht. Streams sollten nicht für Zeiträume pausiert werden, die sich der Aufbewahrungsdauer für Logs nähern. Erstellen Sie den Stream neu.
Logdateien fehlen entweder teilweise oder vollständig.

Die Logdateien wurden möglicherweise gelöscht. Oracle löscht Logdateien so schnell wie möglich, es sei denn, Sie geben einen Mindestrotationszeitraum an, um sie beizubehalten. Legen Sie auf dem Oracle-Server fest, wie lange die Logdateien aufbewahrt werden sollen. Verwenden Sie beispielsweise CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;, um die Logdateien mindestens 4 Tage lang aufzubewahren.

Verwenden Sie für eine RDS-Bereitstellung exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',96);.

Die Ausschlussliste subsumiert die Einschlussliste. Die Einschlussliste ist vollständig in der Ausschlussliste enthalten. Daher ist die Liste der Objekte, die Datastream aus der Quelle abruft, leer. Ändern Sie die Objektauswahl und versuchen Sie es noch einmal.
Der Logging-Modus für die Oracle-Datenbank ist nicht auf ARCHIVELOG festgelegt. Ändern Sie den Logging-Modus und versuchen Sie es noch einmal.
Datastream gibt die Fehlermeldung ORA-00942: table or view does not exist zurück, obwohl alles richtig konfiguriert ist. Das kann auf das Caching auf dem Oracle-Server zurückzuführen sein. Durch das Neuerstellen des Datenbanknutzers sollte das Caching-Problem behoben werden.
Änderungen an einer Oracle-Quelle werden nicht im Ziel übernommen, wenn der Stream bereits ausgeführt wird. Wenn Sie LogMiner als CDC-Methode verwenden, liest Datastream aus archivierten Redo-Logdateien. In diesem Fall werden die Änderungen, die Sie an der Quelle vornehmen, erst dann im Ziel übernommen, wenn das Protokoll archiviert wurde. Wenn Sie die Änderungen im Ziel sehen möchten, ändern Sie die CDC-Methode in „Binärlogleser“, ändern Sie die Richtlinie für die Logarchivierung oder erzwingen Sie manuell einen Logwechsel. Weitere Informationen finden Sie unter Mit Redo-Logdateien von Oracle-Datenbanken arbeiten.
Validierung der Oracle-CDC-Konfiguration fehlgeschlagen. Sie haben eine CDC-Methode ausgewählt, für die Ihre Quelldatenbank nicht konfiguriert wurde. Wählen Sie eine andere Methode aus oder schließen Sie die Konfiguration für Ihre CDC-Methode ab. Weitere Informationen finden Sie unter Oracle-Quelldatenbank konfigurieren.
Es ist ein unerwarteter interner Fehler aufgetreten. Weitere Informationen erhalten Sie vom Google-Support.

MySQL-Fehler

Fehler Schritte zur Fehlerbehebung
Das Binlog ist in der Quelldatenbank falsch konfiguriert.

Dies kann bei kontinuierlichen MySQL-Streams auftreten, wenn die binlog-Konfiguration in der Quelldatenbank falsch ist. Führen Sie folgende Schritte aus, um diesen Fehler zu beheben:

  1. Prüfen Sie, ob binlog richtig konfiguriert ist.
  2. Prüfen Sie, ob das binäre Logformat der MySQL-Datenbank auf ROW gesetzt ist.
  3. Starten Sie den Stream neu.
Die Replikation kann nicht fortgesetzt werden, wenn die Binlog-Position verloren geht. Dieser Fehler kann auftreten, wenn der Replikationsprozess für längere Zeit pausiert wird, was dazu führt, dass die Binlog-Position verloren geht. Streams sollten nicht für Zeiträume pausiert werden, die sich der Aufbewahrungsdauer des Binlogs nähern. Erstellen Sie den Stream neu.
Fehler beim Ausführen des Streams aufgrund inkompatibler Versionen von Quelldatenbank und Ziel.

Das kann passieren, wenn die Quelldatenbank nicht der Supportmatrix für Versionen entspricht. Führen Sie folgende Schritte aus, um diesen Fehler zu beheben:

  1. Sorgen Sie dafür, dass die Quelldatenbank der Matrix entspricht.
  2. Erstellen Sie den Stream mit der aktualisierten Quelldatenbank neu.
Die MySQL-Quell-Binlogs von AWS RDS fehlen entweder teilweise oder vollständig. Die Binlogs wurden möglicherweise gelöscht. AWS RDS löscht Binlogs so schnell wie möglich, es sei denn, Sie geben einen Mindestrotationszeitraum an, um sie beizubehalten. Legen Sie in der MySQL-Quellinstanz von AWS RDS fest, wie lange (in Stunden) die Binlogs aufbewahrt werden sollen. Verwenden Sie beispielsweise mysql.rds_set_configuration('binlog retention hours', 168);, um die Binlogs mindestens 7 Tage lang aufzubewahren.
Die Ausschlussliste subsumiert die Einschlussliste. Die Einschlussliste ist vollständig in der Ausschlussliste enthalten. Daher ist die Liste der Objekte, die Datastream aus der Quelle abruft, leer. Ändern Sie die Objektauswahl und versuchen Sie es noch einmal.
Datastream kann keine MySQL-Datenbank replizieren. Prüfen Sie, ob Datastream die Berechtigungen zum Replizieren der Datenbank hat.
Wenn Sie ein Verbindungsprofil für eine MySQL-Quelle erstellen, werden im Menü Verschlüsselungstyp keine mehreren PEM-codierten SSL-Zertifikate akzeptiert. Datastream unterstützt keine SSL-Zertifikatsketten in MySQL-Verbindungsprofilen. Es werden nur einzelne, x509-PEM-codierte Zertifikate unterstützt.
Hohe Latenz beim Streamen von einer MySQL-Quelle.

Erhöhen Sie die Fähigkeit von Datastream, aus der Quelldatenbank zu lesen:

Validierung der MySQL-CDC-Konfiguration fehlgeschlagen. Ihre Quelldatenbank wurde nicht für die von Ihnen ausgewählte CDC-Methode konfiguriert. Wählen Sie eine andere Methode aus oder schließen Sie die Konfiguration für Ihre CDC-Methode ab. Weitere Informationen finden Sie unter MySQL-Quelldatenbank konfigurieren.
Es ist ein unerwarteter interner Fehler aufgetreten. Weitere Informationen erhalten Sie vom Google-Support.

PostgreSQL-Fehler

Fehler Schritte zur Fehlerbehebung
Die logische Decodierung ist in der Quelldatenbank falsch konfiguriert.

Prüfen Sie, ob die logische Decodierung richtig konfiguriert ist. PostgreSQL-Quelldatenbank konfigurieren

Der Replikationsslot ist nicht vorhanden. Ein Fehler beim Abrufen laufender Change Data Capture-Daten (CDC) kann auftreten, wenn der Replikationsslot nicht in der Datenbank vorhanden ist. Prüfen Sie, ob der Replikations-Slot korrekt konfiguriert ist. Weitere Informationen finden Sie unter PostgreSQL-Quelldatenbank konfigurieren.
Der Replikationsslot ist mit einem falschen Plug‑in konfiguriert. Dieser Fehler kann auftreten, wenn der Replikationsslot mit einem anderen Plug-in als pgoutput konfiguriert ist. Prüfen Sie, ob der Replikations-Slot korrekt konfiguriert ist. Weitere Informationen finden Sie unter PostgreSQL-Quelldatenbank.
Der Replikations-Slot ist in einem anderen Prozess aktiv. Dieser Fehler kann auftreten, wenn der Replikationsslot von einem anderen Prozess verwendet wird. Replikationsslots können jeweils nur von einem einzigen Prozess verwendet werden. Achten Sie darauf, dass Sie denselben Replikationsslot in keinem anderen Prozess außer Datastream verwenden.
Die Publikation ist nicht richtig konfiguriert. Dieser Fehler kann auftreten, wenn die Publikation nicht so konfiguriert ist, dass die in der Streamkonfiguration enthaltenen Tabellen verfügbar gemacht werden. Prüfen Sie, ob die Publikation richtig konfiguriert ist. Weitere Informationen finden Sie unter Informationen zur Quelldatenbank für den Stream konfigurieren.
Die Publikation ist nicht vorhanden. Dieser Fehler kann auftreten, wenn die Publikation nicht in der Datenbank vorhanden ist. Prüfen Sie, ob die Publikation richtig konfiguriert ist. Weitere Informationen finden Sie unter PostgreSQL-Quelldatenbank konfigurieren.
Die Replikation kann nicht fortgesetzt werden, da WAL-Dateien verloren gegangen sind. Dieser Fehler kann auftreten, wenn der Replikationsprozess für längere Zeit pausiert wird, was dazu führt, dass die WAL-Dateien verloren gehen. Streams sollten nicht für Zeiträume pausiert werden, die sich der Aufbewahrungsdauer von WAL-Dateien annähern. Erstellen Sie den Stream neu.
Die Ausschlussliste subsumiert die Einschlussliste. Die Einschlussliste ist vollständig in der Ausschlussliste enthalten. Daher ist die Liste der Objekte, die Datastream aus der Quelle abruft, leer. Ändern Sie die Objektauswahl und versuchen Sie es noch einmal.
Datastream kann kein PostgreSQL-Schema replizieren. Prüfen Sie, ob Datastream die Berechtigungen zum Replizieren des Schemas hat.
Große Transaktionen in der Quelldatenbank verursachen Probleme bei der Datenreplikation und ‑synchronisierung. Wenn Sie eine erhebliche Anzahl von Datensätzen in der Quelldatenbank einfügen, aktualisieren oder löschen, kann der Replikationsslot mit den entsprechenden Ereignissen überlastet werden. Datastream benötigt Zeit, um diese Ereignisse zu lesen und zu verarbeiten. Da PostgreSQL-Replikationsslots Single-Threaded sind, wird die Verarbeitung anderer Änderungen im Replikationsslot, einschließlich Änderungen an Daten in anderen Tabellen, verzögert, bis Datastream alle Änderungen im Replikationsslot verarbeitet hat.
Große Transaktionen in der Quelldatenbank führen zu einem niedrigen CDC-Durchsatz. Datastream unterstützt kein Multithread-CDC in PostgreSQL. Um diese Einschränkung zu umgehen und den CDC-Durchsatz zu erhöhen, können Sie die Quelle in mehrere Streams aufteilen, die jeweils eine eigene Publikation und einen eigenen Replikationsslot haben. Sie können beispielsweise einen Stream für die größte Tabelle in Ihrer Datenbank und einen weiteren für alle anderen Tabellen erstellen oder einen Stream für die Tabellen mit der höchsten Priorität und einen weiteren für die verbleibenden Tabellen. Die Anwendungsfälle können variieren. Sie müssen also überlegen, was in Ihrem spezifischen CDC-Szenario am sinnvollsten ist. Informationen zum Erstellen einer Publikation finden Sie unter PostgreSQL-Quelldatenbank konfigurieren.
Nicht unterstützte Ereignisse wurden mit dem Ursachencode „BIGQUERY_TOO_MANY_PRIMARY_KEYS“ verworfen. Wenn die PostgreSQL-Replikatidentität für eine Tabelle auf FULL festgelegt ist, behandelt Datastream alle Spalten in dieser Tabelle als Primärschlüssel. Wenn die Tabelle mehr als 16 Spalten enthält, verstößt dies gegen die BigQuery CDC-Einschränkung und verursacht den Fehler. So beheben Sie das Problem:
  1. Ändern Sie die Replikatidentität in DEFAULT:
    ALTER TABLE TABLE_NAME REPLICA IDENTITY DEFAULT
    Ersetzen Sie TABLE_NAME durch den Namen der Tabelle, für die Sie die Replikatidentität ändern möchten.
  2. Entfernen Sie die Tabelle aus der Liste der einzuschließenden Objekte des Streams. Weitere Informationen finden Sie unter Konfigurationsinformationen zur Quelldatenbank ändern.
  3. Löschen Sie die Tabelle aus BigQuery. Weitere Informationen finden Sie unter Tabellen löschen.
  4. Fügen Sie die Tabelle in Datastream wieder dem Stream hinzu, indem Sie die Quellkonfiguration bearbeiten.
Es ist ein unerwarteter interner Fehler aufgetreten. Weitere Informationen erhalten Sie vom Google-Support.

SQL Server-Fehler

Fehler Schritte zur Fehlerbehebung
CDC ist für die Datenbank DATABASE_NAME deaktiviert.

Change Data Capture (CDC) muss für die Datenbank aktiviert sein. Datastream benötigt direkten Lesezugriff auf Transaktionslogs, um Echtzeitänderungen in der Quelldatenbank zu replizieren und vollständige Loginformationen zu erhalten. Aktivieren Sie CDC für die Datenbank und versuchen Sie es noch einmal.

Informationen zum Aktivieren von CDC für eine Datenbank finden Sie unter SQL Server-Quelldatenbank konfigurieren.

Tabellen mit deaktiviertem CDC.

Change Data Capture (CDC) muss für alle im Stream enthaltenen Tabellen aktiviert sein. Datastream benötigt direkten Lesezugriff auf Transaktionslogs, um Echtzeitänderungen an Quelltabellen zu replizieren und vollständige Loginformationen zu erhalten. Aktivieren Sie CDC für die im Stream enthaltenen Tabellen und versuchen Sie es noch einmal.

Informationen zum Aktivieren von CDC für Quelltabellen finden Sie unter SQL Server-Quelldatenbank konfigurieren.

Fehlende Berechtigungen. Datastream fehlen die erforderlichen Berechtigungen zum Lesen aus der Quelle. Gewähren Sie dem Nutzerkonto, das für die Verbindung zur Datenbank verwendet wird, die entsprechenden Berechtigungen und versuchen Sie es noch einmal.
Die SQL Server-Edition EDITION_NAME wird nicht unterstützt. Datastream unterstützt diese SQL Server-Version nicht. Weitere Informationen zu unterstützten Versionen von SQL Server finden Sie unter SQL Server als Quelle – Übersicht.
Die SQL Server-Version VERSION_NAME der Standard Edition wird nicht unterstützt. Datastream unterstützt diese Version der SQL Server Standard Edition nicht. Weitere Informationen zu unterstützten SQL Server-Versionen finden Sie unter SQL Server als Quelle – Übersicht.
Der Stream kann das Ereignis in LSN „YOUR_LSN“ nicht lesen, da das Transaktionslog offenbar abgeschnitten ist.

Dieses Problem kann auftreten, wenn Transaktionslogs in der Quelldatenbank nicht mehr vorhanden sind. Wenn Sie Daten aus einer SQL Server-Quelle mit der CDC-Methode für Transaktionslogs replizieren, werden die Logs möglicherweise gekürzt, bevor sie von Datastream gelesen werden. In diesem Fall kann Datastream die Quelldatenbank nicht zuverlässig in das Ziel replizieren.

Um das Problem zu beheben, stellen Sie Ihren Stream wieder her oder verwenden Sie stattdessen die CDC-Methode für Änderungstabellen. Weitere Informationen zu den Unterschieden zwischen den beiden Methoden finden Sie unter SQL Server als Quelle – Übersicht.

SQL Server-CDC-Konfiguration: fehlgeschlagen. Die von Ihnen ausgewählte CDC-Methode entspricht nicht Ihrer Datenbankkonfiguration. Ändern Sie die CDC-Methode und versuchen Sie es noch einmal.

Salesforce-Fehler

Fehler Schritte zur Fehlerbehebung
Unzureichende Berechtigungen.

Der Nutzer der verbundenen App oder der externen Client-App, die Sie für die Authentifizierung der Verbindung zwischen Ihrer Salesforce-Organisation und Datastream konfiguriert haben, hat nicht die erforderlichen Berechtigungen, um auf die Daten zuzugreifen, die Sie replizieren möchten. Prüfen Sie, ob Sie Ihre Salesforce-Quelle richtig konfiguriert haben. Weitere Informationen finden Sie unter Salesforce-Quelle konfigurieren.

Bulk API 2.0 deaktiviert.

Die Bulk API 2.0 ist standardmäßig für die Versionen Performance, Unlimited, Enterprise und Developer aktiviert. Diese Fehlermeldung bedeutet, dass die API entweder in Ihrer Version deaktiviert ist oder die von Ihnen verwendeten Anmeldedaten nicht über ausreichende Berechtigungen verfügen. Achten Sie darauf, dass das von Ihnen verwendete Nutzerprofil die Berechtigung API Enabled hat.

Limit überschritten.

Sie haben das Salesforce API-Abfragelimit überschritten. Diese Meldung wird angezeigt, wenn Sie 90 % Ihres API-Limits erreicht haben. In diesem Fall wiederholt Datastream den Vorgang später. Sie sollten Ihr Salesforce API-Kontingent erhöhen.

Limit für gelöschte Elemente überschritten.

Bei der Abfrage gelöschter Datensätze beschränkt Salesforce die Antwort auf 600.000 Datensatzkennungen. Die niedrigste Abfragegranularität in Salesforce beträgt eine Minute. Wenn Sie innerhalb einer Minute mehr als 600.000 Einträge löschen, gibt Salesforce diesen Fehler zurück.

Authentifizierungsfehler.

Datastream kann sich nicht bei Salesforce authentifizieren. Sie haben wahrscheinlich die falschen Anmeldedaten oder den falschen Domainnamen verwendet.

MongoDB-Fehler

Fehler Schritte zur Fehlerbehebung
Fehler bei der Authentifizierung. Prüfen Sie, ob der authSource für den Datastream-Nutzer admin ist. Der Datastream-Nutzer muss in der Datenbank admin erstellt werden. Diese Datenbank ist eine privilegierte Datenbank, mit der Nutzer bestimmte administrative Befehle ausführen können.
Datenbankanmeldung fehlgeschlagen. Prüfen Sie Ihren Nutzernamen und Ihr Passwort und versuchen Sie es noch einmal. Achten Sie außerdem darauf, dass Ihr Nutzerkonto in der admin-Datenbank erstellt wurde. Wenn das Problem weiterhin auftritt, wurde Ihr Nutzerkonto möglicherweise gelöscht oder nicht ordnungsgemäß erstellt.
Die Liste ausgeschlossener Objekte ist ungültig: {exclude_list}. Geben Sie die ausgeschlossenen Objekte im folgenden Format an: DATABASE_NAME.COLLECTION_NAME.FIELD_NAME.NESTED_FIELD_NAME mit optionalen Platzhaltern. Gültige Beispiele: db.*, database.collection.*, database.*.field.*.
Es fehlen die erforderlichen Berechtigungen, um aus der Quelle zu lesen. Weisen Sie dem Nutzer die Rolle readAnyDatabase zu und versuchen Sie es noch einmal.
MongoDB-Version VERSION_NAME wird nicht unterstützt. Bitte verwenden Sie Version 5.0 oder höher.
Datastream konnte den Befehl buildinfo zum Ermitteln der MongoDB-Version nicht ausführen. Prüfen Sie, ob der Nutzer die erforderlichen Berechtigungen zum Ausführen des Befehls buildinfo hat, und versuchen Sie es noch einmal. Weitere Informationen zu den erforderlichen Berechtigungen finden Sie unter MongoDB-Datenbank konfigurieren.
Die Verbindung zum MongoDB-Cluster wurde wegen einer Zeitüberschreitung unterbrochen. Prüfen Sie, ob Sie den richtigen Hostnamen und die richtigen Anmeldedaten angegeben haben. Versuchen Sie es dann noch einmal.
Die erforderlichen Daten können aufgrund unzureichender Berechtigungen nicht gelesen werden. Weisen Sie dem Konto, das für die Verbindung zum MongoDB-Cluster verwendet wird, die Rolle readAnyDatabase zu. Versuchen Sie es dann noch einmal.
Das Nutzerkonto, das für die Verbindung zum MongoDB-Cluster verwendet wird, ist nicht vorhanden. Erstellen Sie das Nutzerkonto und versuchen Sie es noch einmal.
Mit den angegebenen Informationen konnte keine Verbindung hergestellt werden. Prüfen Sie, ob das richtige Verbindungsformat (SRV- oder Standardformat) verwendet wird und alle erforderlichen Informationen wie Namen und Verbindungsstrings von Replikatsets enthalten sind. Weitere Informationen finden Sie unter Verbindungsprofil für eine MongoDB-Datenbank erstellen.
Eine MongoDB-Ausnahme ist aufgetreten. Fehlermeldung der Quelle: {source_error}. Wenn die Fehlermeldung der Quelle unklar ist, wenden Sie sich an den Google-Support.

Cloud Spanner-Fehler

Fehler Schritte zur Fehlerbehebung
Cloud Spanner-Lesefehler. Wenn sich Ihre Spanner-Datenbank in einem anderen Projekt als dem befindet, in dem Datastream ausgeführt wird, müssen Sie die erforderlichen Berechtigungen erteilen. Achten Sie außerdem darauf, dass Ihre Spanner-Datenbank über ausreichende CPU-Ressourcen verfügt und Anfragen nicht gedrosselt werden.
Änderungsstream außerhalb der Aufbewahrung. Ein Stream, bei dem dieser Fehler aufgetreten ist, kann nicht wiederhergestellt werden. Der Fehler bedeutet, dass Datastream nicht mehr im Aufbewahrungszeitraum des Spanner-Änderungsstreams liegt und Daten verloren gegangen sind. Wenn das Aufbewahrungsfenster kurz war, z. B. Sekunden oder Minuten, können Sie versuchen, es zu verlängern und einen neuen Stream zu erstellen.

BigQuery-Fehler

Fehler Schritte zur Fehlerbehebung
BIGQUERY_UNSUPPORTED_PRIMARY_KEY_CHANGE, details: Failed to write to BigQuery due to an unsupported primary key change: adding primary keys to existing tables is not supported. Wenn sich der Primärschlüssel in der Quelle ändert, müssen Sie die Tabelle in BigQuery löschen und den Backfill noch einmal starten. Dies ist eine Einschränkung von BigQuery, da es keine Möglichkeit gibt, neue Ereignisse korrekt mit vorhandenen Zeilen zusammenzuführen, wenn der Primärschlüssel unterschiedlich ist. Weitere Informationen finden Sie unter BigQuery-Ziel konfigurieren.
Die BigQuery-Tabelle hat deutlich mehr Datensätze als die Quelltabelle. Das kann passieren, wenn die Quelltabelle keinen Primärschlüssel hat. In diesem Fall verarbeitet Datastream die Tabelle im Nur-Anfügen-Schreibmodus und jedes Ereignis für eine bestimmte Zeile wird als separate Zeile in BigQuery angezeigt.
Daten werden dupliziert, wenn ein Backfill im Schreibmodus Nur anhängen durchgeführt wird.

Wenn Sie für Ihren Stream den Schreibmodus Nur anfügen auswählen, werden Ihre Daten in BigQuery als Stream von INSERT-, UPDATE-INSERT-, UPDATE-DELETE- und DELETE-Ereignissen ohne Konsolidierung angehängt. Dies kann dazu führen, dass doppelte Zeilen in BigQuery geschrieben werden, wenn Sie einen Backfill ausführen oder ein Problem auftritt und der BigQuery-Writer die Schreibvorgänge wiederholt. Zur Behebung des Problems empfehlen wir, regelmäßig eine Deduplizierungsabfrage wie die folgende auszuführen:

SELECT * FROM (SELECT *, row_number() OVER (PARTITION BY datastream_metadata.uuid) AS num FROM TABLE_NAME) WHERE num=1
Datastream ist für den Zusammenführungs-Schreibmodus konfiguriert, aber Änderungen werden in BigQuery nicht zusammengeführt.

Prüfen Sie, ob in der Quelltabelle ein Primärschlüssel vorhanden ist. BigQuery benötigt sie, um die Änderungen in die Zieltabelle zusammenzuführen.

Wenn kein Primärschlüssel vorhanden ist, sollten Sie einen in der Quell- oder Zieltabelle hinzufügen. So fügen Sie Ihrer BigQuery-Tabelle einen Primärschlüssel hinzu:

  1. Pausieren Sie den Stream.
  2. Kürzen Sie die Tabelle in BigQuery.
  3. Fügen Sie der Tabellendefinition den Primärschlüssel hinzu.
  4. Setzen Sie den Stream fort.
  5. Backfill für die Tabelle auslösen.
Es ist nicht möglich, einen Primärschlüssel hinzuzufügen, einen Primärschlüssel zu entfernen oder die Primärschlüsseldefinition für eine Tabelle zu ändern, die bereits in BigQuery repliziert wurde.

Standardmäßig unterstützt Datastream nicht das Hinzufügen eines Primärschlüssels zu einer Tabelle, die bereits ohne Primärschlüssel in BigQuery repliziert wurde, oder das Entfernen eines Primärschlüssels aus einer Tabelle, die mit einem Primärschlüssel in BigQuery repliziert wurde. Sie können jedoch die Primärschlüsseldefinition für eine nach BigQuery replizierte Quelltabelle ändern, die bereits einen Primärschlüssel hat:

  1. Prüfen Sie den Messwert für die Gesamtlatenz des Streams und warten Sie mindestens so lange wie die aktuelle Latenz, um sicherzustellen, dass alle laufenden Ereignisse in das Ziel geschrieben werden. So können alle Ereignisse mit dem ursprünglichen Primärschlüssel erfolgreich gestreamt werden.
  2. Stream pausieren
  3. Kopieren Sie den DDL-Befehl (Datendefinitionssprache) CREATE TABLE für die Tabelle in BigQuery:
        SELECT ddl FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.TABLES
          WHERE table_name='TABLE_NAME';

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Kennung Ihres Projekts in Google Cloud .
    • DATASET_ID: die Kennung des Datasets in BigQuery.
    • TABLE_NAME: der Name der Tabelle, für die Sie den DDL-Befehl kopieren möchten.
  4. Löschen Sie die Tabelle in BigQuery.
  5. Passen Sie den DDL-Befehl CREATE TABLE mit den neuen Primärschlüsseln an. Geben Sie die Partitions- und Clusterschlüssel sowie die max_staleness OPTION an:
        CREATE TABLE `[PROJECT_ID].[DATASET_ID].[TABLE_NAME]`
        (
          product_id INT64 NOT NULL,
          product_name STRING,
          datastream_metadata STRUCT,
          PRIMARY KEY (product_id) NOT ENFORCED
        )
        CLUSTER BY dept_no
        OPTIONS(
          max_staleness=INTERVAL '0-0 0 0:MINS:0' YEAR TO SECOND
        );
        ;
        

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Kennung Ihres Projekts in Google Cloud .
    • DATASET_ID: die Kennung des Datasets in BigQuery.
    • TABLE_NAME: der Name der Tabelle, für die Sie den DDL-Befehl kopiert haben.
    • MINS: die Anzahl der Minuten, die Sie für die Option max_staleness festlegen möchten, z. B. 15.
  6. Führen Sie die angepasste Abfrage aus, um die Tabelle in BigQuery neu zu erstellen.
  7. Setzen Sie den Stream fort.
  8. Backfill für die Tabelle initiieren

Nächste Schritte

  • Informationen dazu, wie Sie nach potenziellen Problemen mit Ihrem Stream suchen, finden Sie unter Fehlerbehebung für einen Stream.
  • Informationen zum Konfigurieren Ihrer Quelldatenbank finden Sie unter Quellen.
  • Informationen zum Konfigurieren Ihres BigQuery- oder Cloud Storage-Ziels finden Sie unter Ziele.