Mit Datastream können Sie CDC-Updates (Change Data Capture) aus einer selbstverwalteten MySQL-Datenbank in ein unterstütztes Ziel wie BigQuery oder Cloud Storage streamen. Zur Vorbereitung der Quelle konfigurieren Sie ein vollständiges zeilenbasiertes binäres Logging mit einer Aufbewahrungsdauer von 7 Tagen und erstellen einen Datastream-Nutzer mit Replikationsberechtigungen. Sie können diese Konfiguration auch für kompatible Datenbanken wie MariaDB, Percona Server for MySQL und Alibaba Cloud PolarDB verwenden.
Konfiguration und Aufbewahrungsdauer des binären Logs prüfen
Prüfen Sie mit dem folgenden MySQL-Befehl, ob das binäre Log ordnungsgemäß konfiguriert ist:
SHOW GLOBAL VARIABLES LIKE '%binlog_format%';Prüfen Sie, ob der Wert für die Variable
binlog_formataufROWfestgelegt ist. Datastream unterstützt die binären LogformateMIXEDundSTATEMENTnicht.Prüfen Sie mit dem folgenden MySQL-Befehl, ob das Zeilenformat für das binäre Log auf
FULLgesetzt ist:SHOW GLOBAL VARIABLES LIKE 'binlog_row_image';Prüfen Sie bei MySQL-Versionen ab 8.0 mit dem folgenden MySQL-Befehl, ob die Variable
binlog_row_value_optionsauf einen leeren Wert gesetzt ist:SHOW GLOBAL VARIABLES LIKE 'binlog_row_value_options';Prüfen Sie mit dem folgenden MySQL-Befehl, ob die Option für Replikataktualisierungen für das binäre Log auf
ONgesetzt ist:SHOW GLOBAL VARIABLES LIKE 'log_replica_updates';Geben Sie für MySQL-Versionen vor 8.0.26 stattdessen den folgenden Befehl ein:
SHOW GLOBAL VARIABLES LIKE 'log_slave_updates';Prüfen Sie mit dem folgenden MySQL-Befehl, ob als Aufbewahrungsdauer für das binäre Log
604800Sekunden (7Tage) festgelegt sind:SHOW GLOBAL VARIABLES LIKE 'binlog_expire_logs_seconds';Geben Sie für MySQL-Versionen vor 8.0.3 stattdessen den folgenden Befehl ein:
SHOW GLOBAL VARIABLES LIKE 'expire_logs_days';
Datastream-Nutzer erstellen
Geben Sie die folgenden MySQL-Befehle ein, um einen Datastream-Nutzer zu erstellen:
CREATE USER 'datastream'@'%' IDENTIFIED BY 'YOUR_PASSWORD'; GRANT REPLICATION SLAVE, SELECT, REPLICATION CLIENT ON *.* TO 'datastream'@'%'; FLUSH PRIVILEGES;