Übersicht
Der Database Migration Service unterstützt einmalige und kontinuierliche Migrationen von Quelldatenbanken zu Cloud SQL-Zieldatenbanken.
Zu den unterstützten Quelldatenbanken für MySQL gehören:
- Amazon RDS 5.6, 5.7, 8.0
- Selbstverwaltetes MySQL (lokal oder auf einer beliebigen von Ihnen verwalteten Cloud-VM) 5.5, 5.6, 5.7, 8.0
- Cloud SQL for MySQL 5.6, 5.7, 8.0, 8.4
- Amazon Aurora 5.6, 5.7, 8.0
- Microsoft Azure-Datenbank für MySQL 5.7, 8.0
Für MySQL 8.0-Quellen unterstützt der Datenbankmigrationsdienst außerdem die folgenden Nebenversionen: 8.0.18, 8.0.26, 8.0.27, 8.0.28, 8.0.30, 8.0.31, 8.0.32, 8.0.33, 8.0.34, 8.0.35, 8.0.36, 8.0.37, 8.0.39 und 8.0.40.
So konfigurieren Sie eine Quelldatenbank:
- Cloud SQL-Quellen:Wenn Sie von einer Cloud SQL-Instanz mit einer privaten IP-Verbindung zu einer Cloud SQL-Instanz mit einem IP-Bereich außerhalb des RFC 1918-Bereichs migrieren, fügen Sie den Bereich außerhalb des RFC 1918-Bereichs der Netzwerkkonfiguration Ihrer Cloud SQL-Quell-Instanz hinzu. Weitere Informationen finden Sie in der Cloud SQL-Dokumentation unter Autorisierte Netzwerke konfigurieren.
- Bevor Sie Daten aus der Quelldatenbank in die Zieldatenbank migrieren, müssen Sie während der vollständigen Dump-Phase alle Schreibvorgänge der Data Definition Language (DDL) beenden. Sie können mit einem Script prüfen, ob DDL-Vorgänge beendet wurden. Sobald sich die Migration in der CDC-Phase befindet, können Sie DDL-Vorgänge fortsetzen.
- Ihre Quelldatenbank darf keine Metadaten enthalten, die von Nutzern mit der DEFINER-Klausel definiert wurden. Weitere Informationen finden Sie unter MySQL-Migrationsjob mit Metadaten mit DEFINER-Klausel erstellen und ausführen.
- Wenn Ihre Quelldatenbank Objekte enthält, die auf Tabellen in den Systemschemata
mysql
,performance_schema
,information_schema
,ndbinfo
odersys
verweisen, müssen die Replikationsdatenbanken auch diese Systemschematabellen enthalten.Wenn die Replikationsdatenbanken diese Tabellen nicht haben, schlägt der Migrationsjob möglicherweise mit dem Fehler
Unknown table in system schema
fehl. - Die Option server-id muss auf einen Wert von mindestens 1 festgelegt werden. Weitere Informationen finden Sie unter Optionen und Variablen für Replikation und binäres Logging.
- Konfigurieren Sie das Logging für globale Transaktions-IDs (GTID), indem Sie
GTID_MODE
aufON
oderOFF
festlegen. DerGTID_MODE
-WertON_PERMISSIVE
wird nicht unterstützt.Der Wert, den Sie verwenden sollten, hängt von den Migrationsanforderungen ab:
- Wenn Sie
zu einer vorhandenen Zielinstanz migrieren, für die Lesereplikate aktiviert sind, setzen Sie
GTID_MODE
aufON
. - Wenn Sie Ihre Daten mit einem manuellen Dump migrieren, setzen Sie
GTID_MODE
aufON
.
GTID_MODE
finden Sie unter Systemvariable „Global Transaction ID“. - Wenn Sie
zu einer vorhandenen Zielinstanz migrieren, für die Lesereplikate aktiviert sind, setzen Sie
-
Sie müssen das Nutzerkonto, mit dem die Verbindung zur Quelldatenbank hergestellt wird, so konfigurieren, dass Verbindungen von einem beliebigen Ort (Host =
%
) zugelassen werden. Der Zugriff kann in einem späteren Schritt auf diesen Nutzer beschränkt werden.Es empfiehlt sich, ein separates Konto zu erstellen, um das Risiko der Manipulation anderer Aspekte der Datenbank zu reduzieren.
Es gibt vier Arten von Kombinationen von Migrationen und Dumps:
- Typ 1: Kontinuierliche Migration und verwalteter Dump
- Typ 2: Kontinuierliche Migration und manueller Dump
- Typ 3: Einmalige Migration und verwalteter Dump
- Typ 4: Einmalige Migration und manueller Dump
Die Berechtigungen für die einzelnen Migrations- und Dump-Kombinationen sind auf den folgenden Tabs aufgeführt.
Das von Ihnen konfigurierte Nutzerkonto benötigt folgende Berechtigungen:
REPLICATION SLAVE
EXECUTE
SELECT
SHOW VIEW
REPLICATION CLIENT
RELOAD
TRIGGER
- (Nur für die Migration von Amazon RDS und Amazon Aurora)
LOCK TABLES
MySQL-Version 8.0 oder höher:Für eine optimale Leistung sollten Sie diesem Konto nicht die Berechtigung
BACKUP_ADMIN
gewähren.Das von Ihnen konfigurierte Nutzerkonto benötigt folgende Berechtigungen:
REPLICATION SLAVE
EXECUTE
Das von Ihnen konfigurierte Nutzerkonto benötigt folgende Berechtigungen:
SELECT
SHOW VIEW
TRIGGER
- (Nur für die Migration von Amazon RDS und Amazon Aurora)
LOCK TABLES
- (Nur für die Migration von Quellen mit der Einstellung
GTID_MODE = ON
)RELOAD
MySQL-Version 8.0 oder höher:Für eine optimale Leistung sollten Sie diesem Konto nicht die Berechtigung
BACKUP_ADMIN
gewähren.Es sind keine Berechtigungen erforderlich.
- Bevor Sie binäre Protokolle konfigurieren, müssen folgende Voraussetzungen erfüllt sein:
- Aktivieren Sie binäre Logs in Ihrer Quelldatenbank.
- Verwenden Sie zeilenbasiertes binäres Logging.
- Behalten Sie binäre Logs für einen ausreichend langen Zeitraum aufbewahrt, wie er für die Datenbankmigration erforderlich ist. In der Regel ist eine Woche ausreichend.
Wenn Sie Binärprotokolle konfigurieren möchten, maximieren Sie den Abschnitt für die Quelle:
Selbst gehostetes MySQL
Geben Sie je nach MySQL-Version einen Zeitraum an, der für die Replikation ausreicht:
- MySQL 5.5–5.7:
expire_logs_days
- MySQL 8.0:
expire_logs_days
,binlog_expire_logs_seconds
Microsoft Azure-Datenbank für MySQL
Das binäre Logging ist in Microsoft Azure Database for MySQL standardmäßig aktiviert. Sie müssen es nicht aktivieren. Weitere Informationen finden Sie in der Microsoft-Dokumentation.
Konfigurieren Sie die folgenden erforderlichen Parameter:
Legen Sie für
binlog_expire_logs_seconds
einen Zeitraum fest, der lang genug ist, um die Datenbankmigration zu unterstützen.Weitere Informationen finden Sie unter Serverparameter in Azure Database for PostgreSQL konfigurieren und im Microsoft-Artikel
binlog_expire_logs_seconds
-Parameter.- Starten Sie den Server neu, damit die vorgenommenen Änderungen wirksam werden.
Amazon RDS
Bei Amazon RDS legen Sie die zeilenbasierte Konfiguration in der Parametergruppe fest, indem Sie den Parameter
binlog retention hours
konfigurieren. Mit diesem Parameter wird angegeben, wie lange binäre Protokolldateien in Amazon RDS aufbewahrt werden sollen.Verwenden Sie die gespeicherte Prozedur
mysql.rds_set_configuration
, um die Aufbewahrungsdauer für binäre Logs in Amazon RDS festzulegen, und geben Sie einen Zeitraum an, der für die Replikation ausreichend ist. Beispiel:call mysql.rds_set_configuration('binlog retention hours',168);
Amazon Aurora
Für Amazon Aurora führen Sie die folgenden Schritte aus:
- Aktivieren Sie das binäre Logging für Ihre MySQL-Datenbank.
- So legen Sie die Aufbewahrungsdauer für binäre Logs fest:
mysql> call mysql.rds_set_configuration('binlog retention hours', 168);
- Starten Sie den Server neu, damit die vorgenommenen Änderungen wirksam werden.
- Alle Tabellen (außer Tabellen in Systemdatenbanken) verwenden das InnoDB-Speichermodul.
- Das Passwort des Nutzerkontos, das für die Verbindung zur Quelldatenbank verwendet wird, darf maximal 32 Zeichen lang sein. Dieses Problem betrifft ausschließlich die MySQL-Replikation.
Nur für Microsoft Azure Database for MySQL-Quellen: Prüfen Sie den Wert der Einstellung
require_secure_transport
.Für Microsoft Azure-Datenbanken ist standardmäßig die SSL/TLS-Verschlüsselung für alle eingehenden Verbindungen erforderlich. Verwenden Sie je nach
require_secure_transport
-Wert eine der folgenden Verschlüsselungseinstellungen, wenn Sie das Quellverbindungsprofil erstellen:- Wenn
require_secure_transport
aufon
festgelegt ist, wählen Sie Basic, TLS oder mTLS aus. - Wenn
require_secure_transport
aufoff
gesetzt ist, wählen Sie Keine aus.
- Wenn