Allgemeine Best Practices für die Verwendung von Datastream

Auf dieser Seite finden Sie Best Practices für die Verwendung von Datastream. Dazu gehören allgemeine Best Practices für die Verwendung von Datastream.

Quelldatenbank eines Streams ändern

In einigen Fällen müssen Sie möglicherweise die Quelldatenbank eines Streams ändern. Möglicherweise müssen Sie den Stream ändern, um Daten aus einem Replikat anstelle der primären Datenbankinstanz zu replizieren.

  1. Verbindungsprofil für die Replikatinstanz erstellen
  2. Erstellen Sie einen Stream mit dem Verbindungsprofil für das Replikat, das Sie erstellt haben, und dem vorhandenen Verbindungsprofil für das Ziel.
  3. Starten Sie den Stream mit deaktiviertem Verlaufs-Backfill. Wenn der Stream gestartet wird, werden nur die Daten aus den Binärprotokollen übertragen.
  4. Optional. Nachdem der Stream ausgeführt wird, können Sie ihn ändern, um den automatischen Backfill zu aktivieren.
  5. Pausieren Sie den Stream, der Daten aus der primären Instanz liest.
  6. Optional. Löschen Sie den Stream, über den Daten von der primären Instanz gestreamt wurden.
  7. Optional. Löschen Sie das Verbindungsprofil für die primäre Instanz.

Benachrichtigungen und Monitoring in Datastream

Das Datastream-Dashboard enthält viele Informationen. Diese Informationen können zur Fehlerbehebung nützlich sein. Weitere Informationen finden Sie in den Logs, die in Cloud Logging verfügbar sind.

Datastream-Benachrichtigungen

Für Datastream ist keine Standardbenachrichtigung eingerichtet. Sie können beispielsweise eine Benachrichtigungsrichtlinie für den Messwert Datenaktualität erstellen, indem Sie auf dem Tab Übersicht auf den Link Benachrichtigungsrichtlinie erstellen klicken. Gehen Sie für die verbleibenden Messwerte so vor:

  1. Rufen Sie in der Google Cloud Console die Seite  Benachrichtigungen auf:

    Zu Benachrichtigungen

  2. Klicken Sie auf Richtlinie erstellen.

  3. Klicken Sie auf das Drop-down-Menü Messwert auswählen.

  4. Geben Sie im Filterfeld Datastream ein.

  5. Optional: Möglicherweise müssen Sie den Filter Aktiv deaktivieren, um alle verfügbaren Messwerte zu sehen.

  6. Suchen Sie unter Datastream-Stream nach dem Messwert, den Sie im Blick behalten möchten.

  7. Klicken Sie auf Übernehmen.

  8. Optional: Geben Sie die erforderlichen Details in den Bereichen Filter hinzufügen und Daten transformieren ein. Klicken Sie auf Weiter.

  9. Geben Sie im Abschnitt Configure alert trigger (Benachrichtigungsauslöser konfigurieren) die erforderlichen Informationen ein. Klicken Sie auf Weiter.

  10. Konfigurieren Sie Ihre Benachrichtigungen im Abschnitt Benachrichtigungen konfigurieren und Benachrichtigung fertigstellen.

  11. Prüfen Sie die Benachrichtigung und klicken Sie auf Richtlinie erstellen, wenn Sie bereit sind.

    Ausführliche Informationen zum Ausführen der einzelnen Schritte finden Sie unter Benachrichtigungsrichtlinie erstellen.

Wir empfehlen, Benachrichtigungen für die folgenden Messwerte für Datenstreams zu erstellen:

  • Datenaktualität
  • Anzahl der nicht unterstützten Ereignisse im Stream
  • Gesamtlatenzen des Streams

Eine Benachrichtigung zu einem dieser Messwerte kann auf ein Problem mit dem Stream oder der Quelldatenbank hinweisen.

Latenz

Datastream bietet die folgenden Messwerte, mit denen Sie die Replikationslatenz besser nachvollziehen können:

  • Datenaktualität: Die Differenz zwischen dem Zeitpunkt, zu dem die Daten in der Quelle gespeichert wurden, und dem Zeitpunkt, zu dem die Daten von Datastream gelesen wurden. Wenn dieser Messwert hoch ist, bedeutet das, dass Datastream Daten langsamer liest, als sie in der Quelle generiert werden. Das deutet darauf hin, dass es möglicherweise ein Problem mit der Quelle oder mit der Netzwerkverbindung zur Quelle gibt.
  • Systemlatenz: Die Zeit, die Datastream zum Verarbeiten eines Ereignisses benötigt, vom Lesen des Ereignisses aus der Quelle bis zum Schreiben in das Ziel.
  • Gesamte Latenzzeit: Die End-to-End-Replikationsverzögerung, die die Gesamtzeit angibt, die vergeht, bis Daten in der Quelle übernommen und in das Ziel geschrieben werden.

Wenn die Datenaktualität hoch ist, sind häufige Ursachen:

  • Überlastung der Quelle:Die Quelldatenbank generiert Protokolle (Binlog-Dateien, Redo-Logdateien, WAL-Dateien) schneller, als Datastream sie lesen kann.
    • Maßnahme für MySQL/Oracle:Erhöhen Sie den Parameter maxConcurrentCdcTasks, um mehr Logs parallel zu lesen.
    • Maßnahme für PostgreSQL:Tabellen mit hoher Churn-Rate in eigenen Streams isolieren.
    • Maßnahme für SQL Server:Erhöhen Sie den Parameter maxConcurrentCdcTasks, um mehr Änderungstabellen parallel zu lesen.
  • Quellressourcenmangel:Auf dem Quelldatenbankserver selbst treten Probleme wie eine hohe CPU-Auslastung, wenig Arbeitsspeicher oder E/A-Engpässe auf.
    • Maßnahme:Prüfen Sie, ob die Quellinstanz fehlerfrei ist. Prüfen Sie die CPU-/RAM-Nutzung. Für PostgreSQL sollten Sie den Wert für den Parameter logical_decoding_work_mem erhöhen. Für Oracle muss ausreichend SGA (System Global Area) zugewiesen sein.
  • Probleme mit der Netzwerkkapazität:Hohe Ping-Zeit oder gesättigte Bandbreite zwischen Ihrer Quelle und Google Cloud.
    • Maßnahme:Überwachen Sie die Bandbreite und Latenz Ihres VPN oder Cloud Interconnect.
  • Einzelne große Transaktion:Ein großer Batch-Job, z. B. ein UPDATE für Millionen von Zeilen, kann zu einem vorübergehenden Anstieg der Latenz führen.
    • Maßnahme:Das ist zu erwarten. Warten Sie, bis der Datastream das große Ereignis verarbeitet hat. Unterteilen Sie große Batchjobs in Zukunft in kleinere Teile.

Wenn die Systemlatenz hoch ist, kann dies auf ein Problem im Datastream oder im Ziel hinweisen.

  • Maßnahme:Prüfen Sie Cloud Logging auf dauerhafte Fehler auf Zeilenebene (z. B. invalid input for type json). Wenn sich der Stream aufgrund von Datentyp- oder Einschränkungsfehlern in einer Wiederholungsschleife befindet, ist möglicherweise eine manuelle Datenkorrektur an der Quelle erforderlich. Wenn keine offensichtlichen Fehler vorliegen, wenden Sie sich an den Google-Support.

Wie viele Tabellen kann ein einzelner Stream verarbeiten?

Wir empfehlen,dass ein einzelner Stream bis zu 10.000 Tabellen enthält. Die Größe der Tabellen ist nicht begrenzt. Wenn Sie einen Stream mit mehr Tabellen erstellen müssen, kann der Stream in einen Fehlerstatus wechseln. Um das zu vermeiden, sollten Sie die Quelle in mehrere Streams aufteilen.