Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden einer MySQL-kompatiblen Datenbank als Ziel für AWS Database Migration Service
Sie können Daten mit AWS DMS jeder der unterstützten Quell-Daten-Engines in jede MySQL-kompatible Datenbank migrieren. AWS DMS Wenn Sie zu einer lokalen MySQL-kompatiblen Datenbank migrieren, AWS DMS muss sich Ihre Quell-Engine innerhalb des Ökosystems befinden. AWS Die Engine kann sich in einem AWS verwalteten Service wie Amazon RDS, Amazon Aurora oder Amazon S3 befinden. Alternativ kann sich die Engine in einer selbstverwalteten Datenbank auf Amazon EC2 befinden.
Sie können mit SSL Verbindungen zwischen Ihrem MySQL-kompatiblen Endpunkt und der Replikations-Instance verschlüsseln. Weitere Informationen zur Verwendung von SSL mit einem MySQL-kompatiblen Endpunkt finden Sie unter Verwenden von SSL mit AWS Database Migration Service.
Hinweise zu Versionen von MySQL, die als Ziel AWS DMS unterstützen, finden Sie unterZiele für AWS DMS.
Sie können die folgenden MySQL-kompatiblen Datenbanken als Ziele verwenden für: AWS DMS
-
MySQL Community Edition
-
MySQL Standard Edition
-
MySQL Enterprise Edition
-
MySQL Cluster Carrier Grade Edition
-
MariaDB Community Edition
-
MariaDB Enterprise Edition
-
MariaDB Column Store
-
Amazon Aurora MySQL
Anmerkung
Unabhängig von der Quell-Speicher-Engine (MyISAM, MEMORY usw.) erstellt AWS DMS eine MySQL-kompatible Zieltabelle standardmäßig als InnoDB-Tabelle.
Wenn Sie eine Tabelle benötigen, die eine andere Speicher-Engine als InnoDB verwendet, können Sie die Tabelle in der MySQL-kompatiblen Zieldatenbank manuell erstellen und die Tabelle mithilfe des Modus Nichts unternehmen migrieren. Weitere Informationen finden Sie unter Aufgabeneinstellungen für vollständiges Laden.
Weitere Details zum Arbeiten mit einer MySQL-kompatiblen Datenbank als Ziel für AWS DMS finden Sie in den folgenden Abschnitten.
Themen
- Verwendung einer beliebigen MySQL-kompatiblen Datenbank als Ziel für AWS Database Migration Service
- Einschränkungen bei der Verwendung einer MySQL-kompatiblen Datenbank als Ziel für AWS Database Migration Service
- Endpunkteinstellungen bei Verwendung einer MySQL-kompatiblen Datenbank als Ziel für AWS DMS
- Zieldatentypen für MySQL
Verwendung einer beliebigen MySQL-kompatiblen Datenbank als Ziel für AWS Database Migration Service
Bevor Sie mit einer MySQL-kompatiblen Datenbank als Ziel für AWS DMS arbeiten, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllt haben:
-
Geben Sie ein Benutzerkonto an AWS DMS , das über Lese-/Schreibberechtigungen für die MySQL-kompatible Datenbank verfügt. Führen Sie die folgenden Befehle aus, um die erforderlichen Berechtigungen zu erstellen.
CREATE USER '<user acct>'@'%' IDENTIFIED BY '<user password>'; GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON <schema>.* TO '<user acct>'@'%'; GRANT ALL PRIVILEGES ON awsdms_control.* TO '<user acct>'@'%';
-
Während der Volllast-Migrationsphase müssen Sie Fremdschlüssel in Ihren Zieltabellen deaktivieren. Um Fremdschlüsselprüfungen in einer MySQL-kompatiblen Datenbank während eines vollen Ladevorgangs zu deaktivieren, können Sie den folgenden Befehl zum Abschnitt Zusätzliche Verbindungsattribute der AWS DMS Konsole für Ihren Zielendpunkt hinzufügen.
Initstmt=SET FOREIGN_KEY_CHECKS=0;
-
Legen Sie den Datenbankparameter
local_infile = 1
fest, um AWS DMS das Laden von Daten in die Zieldatenbank zu ermöglichen.
Einschränkungen bei der Verwendung einer MySQL-kompatiblen Datenbank als Ziel für AWS Database Migration Service
Wenn Sie eine MySQL-Datenbank als Ziel verwenden, unterstützt Folgendes AWS DMS nicht:
-
Die DDL-Anweisungen (Data Definition Language) TRUNCATE PARTITION, DROP TABLE und RENAME TABLE.
-
Verwenden einer
ALTER TABLE
-Anweisung zum Hinzufügen von Spalten an den Anfang oder in die Mitte einer Tabelletable_name
ADD COLUMNcolumn_name
-
Beim Laden von Daten in ein MySQL-kompatibles Ziel in einer Vollladeaufgabe werden AWS DMS keine Fehler gemeldet, die durch Einschränkungen in den Task-Logs verursacht werden, was zu doppelten Schlüsselfehlern oder Nichtübereinstimmungen mit der Anzahl der Datensätze führen kann. Dies ist auf die Art und Weise zurückzuführen, wie MySQL lokale Daten mit dem Befehl
LOAD DATA
behandelt. Während der Volllastphase müssen Sie folgende Schritte ausführen:Einschränkungen deaktivieren
Stellen Sie mithilfe der AWS DMS Validierung sicher, dass die Daten konsistent sind.
-
Wenn Sie den Wert einer Spalte auf den vorhandenen Wert aktualisieren, geben MySQL-kompatible Datenbanken die Warnung
0 rows affected
zurück. Obwohl dieses Verhalten technisch gesehen kein Fehler ist, unterscheidet es sich von der Art und Weise, wie andere Datenbank-Engines mit solchen Fällen umgehen. Oracle führt beispielsweise eine Aktualisierung einer Zeile durch. AWS DMS Generiert für MySQL-kompatible Datenbanken einen Eintrag in der Steuertabelle awsdms_apply_exceptions und protokolliert die folgende Warnung.Some changes from the source database had no impact when applied to the target database. See awsdms_apply_exceptions table for details.
Aurora Serverless ist als Ziel für Amazon Aurora Version 2, kompatibel mit MySQL Version 5.7, verfügbar. (Wählen Sie Aurora-MySQL-Version 2.07.1 aus, um Aurora Serverless mit MySQL-5.7-Kompatibilität verwenden zu können.) Weitere Informationen zu Aurora Serverless finden Sie unter Using Aurora Serverless v2 im Amazon Aurora Aurora-Benutzerhandbuch.
AWS DMS unterstützt die Verwendung eines Reader-Endpunkts für Aurora oder Amazon RDS nicht, es sei denn, die Instances befinden sich im Schreibmodus, d. h. die
innodb_read_only
Parameterread_only
und sind auf0
oderOFF
gesetzt. Weitere Informationen zur Verwendung von Amazon RDS und Aurora als Ziele finden Sie in folgenden Themen:
Endpunkteinstellungen bei Verwendung einer MySQL-kompatiblen Datenbank als Ziel für AWS DMS
Sie können Endpunkteinstellungen zum Konfigurieren Ihrer MySQL-kompatiblen Zieldatenbank verwenden, ähnlich wie Sie zusätzliche Verbindungsattribute verwenden. Sie geben die Einstellungen an, wenn Sie den Zielendpunkt mithilfe der AWS DMS Konsole oder mithilfe des create-endpoint
Befehls in AWS CLI, mit der --my-sql-settings '{"
JSON-Syntax erstellen.EndpointSetting"
:
"value"
, ...
}'
Die folgende Tabelle zeigt die Endpunkteinstellungen, die Sie mit MySQL als Ziel verwenden können.
Name | Beschreibung |
---|---|
|
Gibt an, wo die Quelltabellen in der Zieldatenbank migriert werden, entweder in einer einzelnen Datenbank oder mehreren Datenbanken. Wenn Sie angeben Standardwert: Zulässige Werte: { Beispiel: |
|
Verbessert die Leistung beim Laden von Daten in die MySQL-kompatible Zieldatenbank. Gibt an, wie viele Threads zum Laden der Daten in die MySQL-kompatible Zieldatenbank verwendet werden sollen. Das Festlegen einer großen Anzahl von Threads kann die Datenbankleistung beeinträchtigen, da für jeden Thread eine separate Verbindung erforderlich ist. Standardwert: 1 Zulässige Werte: 1 bis 5 Beispiel: |
|
Gibt ein Skript an, das sofort ausgeführt wird, nachdem AWS DMS eine Verbindung mit dem Endpunkt hergestellt hat. Sie können beispielsweise angeben, dass das MySQL-kompatible Ziel empfangene Anweisungen in den Latin1-Zeichensatz übersetzen soll. Dies ist der Zeichensatz, in den die Datenbank standardmäßig kompiliert wird. Dieser Parameter verbessert in der Regel die Leistung beim Umwandeln von UTF8-Clients. Beispiel: |
|
Gibt die maximale Größe (in KB) einer CSV-Datei an, die zum Übertragen von Daten in eine MySQL-kompatible Datenbank verwendet wird. Standardwert: 32768 KB (32 MB) Gültige Werte: 1 bis 1 048 576
|
|
Bereinigt und erstellt Tabellenmetadaten-Informationen auf der Replikations-Instance, wenn eine fehlende Übereinstimmung auftritt. Zum Beispiel in einer Situation, in der das Ausführen einer alter DDL auf der Tabelle zu unterschiedlichen Informationen über die in der Replikations-Instance zwischengespeicherte Tabelle führen könnte. Boolesch. Standardwert: Beispiel: |
Sie können auch zusätzliche Verbindungsattribute verwenden, um Ihre MySQL-kompatible Zieldatenbank zu konfigurieren.
Die folgende Tabelle zeigt die zusätzlichen Verbindungsattribute, die Sie verwenden können, wenn MySQL das Ziel ist.
Name | Beschreibung |
---|---|
|
Deaktiviert die Fremdschlüsselprüfungen. Beispiel: |
|
Gibt die Zeitzone für die MySQL-kompatible Zieldatenbank an. Standardwert: UTC Gültige Werte: Die in der MySQL-Zieldatenbank verfügbaren Zeitzonennamen. Beispiel: |
Alternativ können Sie den Parameter AfterConnectScript
des Befehls --my-sql-settings
verwenden, um Fremdschlüsselprüfungen zu deaktivieren und die Zeitzone für Ihre Datenbank anzugeben.
Zieldatentypen für MySQL
Die folgende Tabelle zeigt die Zieldatentypen der MySQL-Datenbank, die bei der Verwendung unterstützt werden, AWS DMS und die Standardzuweisung von AWS DMS Datentypen.
Weitere Hinweise zu AWS DMS Datentypen finden Sie unterDatentypen für den AWS Database Migration Service.
AWS DMS Datentypen |
MySQL-Datentypen |
---|---|
BOOLEAN |
BOOLEAN |
BYTES |
Ist die Länge 1 bis 65.535, verwenden Sie VARBINARY (Länge). Ist die Länge 65.536 bis 2.147.483.647, verwenden Sie LONGLOB. |
DATUM |
DATUM |
TIME |
TIME |
TIMESTAMP (ZEITSTEMPEL) |
Ist die Skalierung => 0 und =< 6, dann: DATETIME (Skalierung) Ist die Skalierung => 7 und =< 9, dann: VARCHAR (37) |
INT1 |
TINYINT |
INT2 |
SMALLINT |
INT4 |
INTEGER |
INT8 |
BIGINT |
NUMERIC |
DECIMAL (p,s) |
REAL4 |
FLOAT |
REAL8 |
DOUBLE PRECISION |
STRING |
Ist die Länge 1 bis 21.845, verwenden Sie VARCHAR (Länge). Ist die Länge 21.846 bis 2.147.483.647, verwenden Sie LONGTEXT. |
UINT1 |
UNSIGNED TINYINT |
UINT2 |
UNSIGNED SMALLINT |
UINT4 |
UNSIGNED INTEGER |
UINT8 |
UNSIGNED BIGINT |
WSTRING |
Ist die Länge 1 bis 32.767, verwenden Sie VARCHAR (Länge). Ist die Länge 32.768 bis 2.147.483.647, verwenden Sie LONGTEXT. |
BLOB |
Ist die Länge 1 bis 65.535, verwenden Sie BLOB. Ist die Länge 65.536 bis 2.147.483.647, verwenden Sie LONGBLOB. Ist die Länge 0, verwenden Sie LONGBLOB (vollständige LOB-Unterstützung). |
NCLOB |
Ist die Länge 1 bis 65.535, verwenden Sie TEXT. Ist die Länge 65.536 bis 2.147.483.647, verwenden Sie LONGTEXT mit ucs2 für CHARACTER SET. Ist die Länge 0, verwenden Sie LONGTEXT (vollständige LOB-Unterstützung) mit ucs2 für CHARACTER SET. |
CLOB |
Ist die Länge 1 bis 65.535, verwenden Sie TEXT. Ist die Länge 65.536 bis 2.147.483.647, verwenden Sie LONGTEXT. Ist die Länge 0, verwenden Sie LONGTEXT (vollständige LOB-Unterstützung). |