Amazon Relational Database Service
Benutzerhandbuch (API-Version 2014-10-31)

Importieren von Daten in eine Amazon RDS-MySQL oder MariaDB-DB-Instance mit reduziertem Nutzungsausfall

Wenn es Ihr Szenario unterstützt, ist es einfacher, Daten mithilfe von Sicherungsdateien und Amazon S3 nach und aus Amazon RDS zu migrieren. Weitere Informationen finden Sie unter Wiederherstellen einer Sicherung in einer Amazon RDS MySQL-DB-Instance.

In einigen Situationen müssen Sie Daten aus einer externen MySQL- oder MariaDB-Datenbank importieren, die eine Live-Anwendung für eine Amazon RDS MySQL- oder MariaDB-DB-Instance unterstützt. In diesen Situationen können Sie mit dem folgenden Verfahren die Auswirkungen auf die Verfügbarkeit der Anwendung minimieren. Dieses Verfahren kann außerdem hilfreich sein, wenn Sie mit einer sehr großen Datenbank arbeiten. Hier ist das Verfahren nützlich, weil Sie die Kosten des Imports durch Reduzierung der Menge an Daten senken, die über das Netzwerk an AWS weitergeleitet werden.

Im Rahmen dieses Verfahrens übertragen Sie eine Kopie Ihrer Datenbankdaten in eine Amazon EC2-Instance und importieren die Daten in eine neue Amazon RDS-DB-Instance. Anschließend verwenden Sie die Replikation, um die Amazon RDS-DB-Instance auf den aktuellen Stand mit Ihrer externen Live-Instance zu bringen, bevor Sie Ihre Anwendung in die Amazon RDS-DB-Instance weiterleiten. Sie konfigurieren die MariaDB-Replikation basierend auf den globalen Transaktionskennungen (GTIDs), wenn die externe Instance in MariaDB 10.0.2 oder höher läuft und die Ziel-Instance vom Typ Amazon RDS-MariaDB ist. Andernfalls konfigurieren Sie die Replikation basierend auf den Binärprotokoll-Koordinaten. Aufgrund der erweiterten Ausfallschutz-Funktionen empfehlen wir die GTID-basierte Replikation, wenn Ihre externe Datenbank dafür Unterstützung bietet. Weitere Informationen finden Sie unter Global Transaction ID in der MariaDB-Dokumentation.

Anmerkung

Wir raten von der Verwendung dieser Prozedur mit Quell-MySQL-Datenbanken mit MySQL-Versionen älter als Version 5.1 ab, da es zu potenziellen Problemen bei der Replikation kommen kann. Weitere Informationen finden Sie unter Replication Compatibility Between MySQL Versions in der MySQL-Dokumentation.

Erstellen einer Kopie Ihrer bestehenden Datenbank

Der erste Schritt beim Migrationsvorgang von großen Datenmengen in eine Amazon RDS-MySQL- oder MariaDB-DB-Instance mit minimalem Nutzungsausfall ist das Erstellen einer Kopie der Quelldaten.

Sie können das Hilfsprogramm mysqldump verwenden, um ein Datenbank-Backup im SQL-Format oder im separierten Textformat zu erstellen. Sie sollten einen Testlauf mit jedem Format in einer Testumgebung einen Probelauf durchführen, um zu sehen, welche Methode die Ausführungsdauer von mysqldump minimiert.

Sie sollten auch die Leistung von mysqldump gegenüber den Vorteilen einer Verwendung von separiertem Textformat beim Laden abwägen. Ein Backup, das ein separiertes Textformat verwendet, erstellt eine tabulatorseparierte Textdatei für jede verworfene Tabelle. Sie können diese Dateien mithilfe des Befehls LOAD DATA LOCAL INFILE parallel laden, um die erforderliche Dauer für den Import Ihrer Datenbank zu reduzieren. Weitere Informationen über die Auswahl eines mysqldump-Formats und dem anschließenden Laden von Daten finden Sie unter Using mysqldump For Backups in der MySQL-Dokumentation.

Bevor Sie mit dem Sicherungsvorgang beginnen, müssen Sie die Optionen für die Replikation in der nach Amazon RDS zu kopierenden MySQL- oder MariaDB-Datenbank einstellen. Die Optionen für die Replikation schließen die Aktivierung der Binärprotokollierung und das Einstellen einer eindeutigen Server-ID mit ein. Das Einstellen dieser Optionen veranlasst den Server, mit der Protokollierung Ihrer Datenbanktransaktionen zu beginnen, und bereitet ihn darauf vor, später im Vorgang als Replikationsmaster zu agieren.

Anmerkung

  • Ihre Datenbank muss angehalten werden, um die Optionen für die Replikation einzustellen und sich während des Erstellens einer Sicherungskopie im schreibgeschützten Modus zu befinden. Daher müssen Sie einen Wartungszeitraum für diese Vorgänge festlegen.

  • Schließen Sie die folgenden Schemas aus der Dump-Datei aus: sys, performance_schema und information_schema. Das Dienstprogramm mysqldump schließt diese Schemas standardmäßig aus.

  • Wenn Sie Benutzer und Berechtigungen migrieren müssen, sollten Sie ein Tool verwenden, das die Datenkontrollsprache (DCL, Data Control Language) für ihre Neuerstellung generiert, z. B. das Dienstprogramm pt-show-grants.

So können Sie Optionen für die Replikation einstellen

  1. Bearbeiten Sie die my.cnf-Datei (diese Datei befindet sich üblicherweise unter /etc).

    sudo vi /etc/my.cnf

    Fügen Sie die Optionen log_bin und server_id zum Abschnitt [mysqld] hinzu. Die Option log_bin bietet eine Dateinamenkennung für Binärprotokolldateien. Die Option server_id stellt eine eindeutige Kennung für den Server für Master-Replica-Beziehungen bereit.

    Im folgenden Beispiel wird der aktualisierte [mysqld]-Abschnitt einer my.cnf-Datei gezeigt:

    [mysqld] log-bin=mysql-bin server-id=1

    Weitere Informationen finden Sie unter Setting the Replication Master Configuration in der MySQL-Dokumentation.

  2. Den Service mysql neu starten.

    sudo service mysqld restart

So erstellen Sie eine Sicherungskopie für Ihre bestehende Datenbank

  1. Erstellen Sie ein Backup für Ihre Daten mithilfe des Hilfsprogramms mysqldump, indem Sie entweder das SQL- oder separierte Textformat festlegen.

    Sie müssen --master-data=2 angeben, um eine Sicherungsdatei zu erstellen, die für das Starten einer Replikation zwischen Servern verwendet werden kann. Weitere Informationen finden Sie in der mysqldump-Dokumentation.

    Verwenden Sie die Optionen --order-by-primary und --single-transaction von mysqldump, um die Leistung zu verbessern und die Datenintegrität zu sichern.

    Verwenden Sie nicht die Option --all-databases mit mysqldump, um die Einbindung der MySQL-Systemdatenbank im Backup zu vermeiden. Weitere Informationen finden Sie unter Creating a Dump Snapshot Using mysqldump in the MySQL-Dokumentation.

    Verwenden Sie bei Bedarf chmod, um sicherzustellen, dass das Verzeichnis beschreibbar ist, in dem die Sicherungsdatei erstellt wird.

    Wichtig

    Führen Sie unter Windows die Eingabeaufforderung als Administrator aus.

    • Verwenden Sie den folgenden Befehl, um eine SQL-Ausgabe zu erstellen.

      Für Linux, OS X oder Unix:

      sudo mysqldump \ --databases <database_name> \ --master-data=2 \ --single-transaction \ --order-by-primary \ -r backup.sql \ -u <local_user> \ -p <password>

      Für Windows:

      mysqldump ^ --databases <database_name> ^ --master-data=2 ^ --single-transaction ^ --order-by-primary ^ -r backup.sql ^ -u <local_user> ^ -p <password>
    • Verwenden Sie den folgenden Befehl, um eine separierte Textausgabe zu erstellen.

      Für Linux, OS X oder Unix:

      sudo mysqldump \ --tab=<target_directory> \ --fields-terminated-by ',' \ --fields-enclosed-by '"' \ --lines-terminated-by 0x0d0a \ <database_name> \ --master-data=2 \ --single-transaction \ --order-by-primary \ -p <password>

      Für Windows:

      mysqldump ^ --tab=<target_directory> ^ --fields-terminated-by ',' ^ --fields-enclosed-by '"' ^ --lines-terminated-by 0x0d0a ^ <database_name> ^ --master-data=2 ^ --single-transaction ^ --order-by-primary ^ -p <password>

      Anmerkung

      Sie müssen alle gespeicherten Prozeduren, Auslöser, Funktionen oder Ereignisse manuell in Ihrer Amazon RDS-Datenbank erstellen. Wenn sich einige dieser Objekte in der zu kopierenden Datenbank befinden, schließen Sie diese beim Ausführen von mysqldump aus, indem Sie in Ihrem mysqldump-Befehl folgende Argumente einbringen: --routines=0 --triggers=0 --events=0

      Wenn Sie das separierte Textformat verwenden, wird beim Ausführen von mysqldump ein CHANGE MASTER TO-Kommentar zurückgegeben. Dieser Kommentar beinhaltet den Namen und die Position der Hauptprotokolldatei. Wenn die externe Instance eine andere als vom Typ der MariaDB-Version 10.0.2 oder höher ist, notieren Sie sich die Werte von MASTER_LOG_FILE und MASTER_LOG_POS. Sie benötigen diese Werte bei der Einrichtung der Replikation.

      -- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;

      Wenn Sie das SQL-Format verwenden, können Sie den Namen und die Position der Hauptprotokolldatei in Schritt 4 der Prozedur unterReplizieren zwischen Ihrer externen Datenbank und Ihrer neuen Amazon RDS-DB-Instance erhalten. Wenn die externe Instance vom Typ MariaDB-Version 10.0.2 oder höher ist, können Sie die GTID im nächsten Schritt erhalten.

  2. Wenn die verwendete externe Instance vom Typ MariaDB-Version 10.0.2 oder höher ist, verwenden Sie GTID-basierte Replikation. Führen Sie SHOW MASTER STATUS in der externen MariaDB-Instance aus, um den Namen und die Position der Binärprotokolldatei zu erhalten. Konvertieren Sie die Werte in GTID, indem Sie BINLOG_GTID_POS in der externen MariaDB-Instance ausführen.

    SELECT BINLOG_GTID_POS('<binary log file name>', <binary log file position>);

    Beachten Sie die zurückgegebene GTID. Diese benötigen Sie für die Konfiguration der Replikation.

  3. Komprimieren Sie die kopierten Daten, um die Menge der Netzwerkressourcen zu reduzieren, die benötigt werden, um Ihre Daten in eine Amazon RDS-DB-Instance zu kopieren. Notieren Sie sich die Größe der Sicherungsdatei. Diese Informationen benötigen Sie, um die Größe der zu erstellenden Amazon EC2-Instance zu bestimmen. Wenn Sie fertig sind, komprimieren Sie die Sicherungsdatei mithilfe von GZIP oder Ihrem bevorzugten Komprimierungsprogramm.

    • Verwenden Sie den folgenden Befehl, um eine SQL-Ausgabe zu komprimieren.

      gzip backup.sql
    • Verwenden Sie den folgenden Befehl, um eine separierte Textausgabe zu komprimieren.

      tar -zcvf backup.tar.gz <target_directory>

Erstellen Sie eine Amazon EC2-Instance und kopieren Sie die komprimierte Datenbank

Das Kopieren Ihrer komprimierten Datenbank-Sicherungsdatei in eine Amazon EC2-Instance verbraucht weniger Netzwerkressourcen als eine direkte Kopie von unkomprimierten Daten zwischen Datenbank-Instances. Sobald sich die Daten in Amazon EC2 befinden, können Sie diese von dort direkt in die Amazon RDS-MySQL- oder MariaDB-DB-Instance kopieren. Die Amazon EC2-Instance muss sich in derselben AWS-Region wie die Amazon RDS-DB-Instance befinden, damit Sie Kosten für Netzwerkressourcen sparen. Wenn sich Ihre Amazon EC2-Instance in derselben AWS-Region wie Ihre Amazon RDS-DB-Instance befindet, ist auch die Netzwerklatenz während des Importvorgangs reduziert.

So erstellen Sie eine Amazon EC2-Instance und kopieren Ihre Daten

  1. Erstellen Sie in der AWS-Region, in der die RDS-DB-Instance zur Ausführung der MySQL-Datenbank-Engine erstellt werden sollen, eine VPC, eine VPC-Sicherheitsgruppe und ein VPC-Subnetz. Stellen Sie sicher, dass die eingehenden Regeln für Ihre VPC-Sicherheitsgruppe IP-Adressen zulassen, die für eine Verbindung Ihrer Anwendung mit AWS erforderlich sind. Dies kann ein IP-Adressbereich (z. B. 203.0.113.0/24) oder eine andere VPC-Sicherheitsgruppe sein. Sie können die Amazon VPC-Managementkonsole verwenden, um VPCs, Subnetze und Sicherheitsgruppen zu erstellen und zu verwalten. Weitere Informationen finden Sie unter Erste Schritte mit Amazon VPC im Amazon Virtual Private Cloud-Handbuch für erste Schritte.

    Anmerkung

    Ältere AWS-Konten können Instances auch im Amazon EC2-Classic-Modus starten. Stellen Sie in diesem Fall sicher, dass die Regeln für den eingehenden Datenverkehr in der DB-Sicherheitsgruppe für Ihre Amazon RDS-Instance unter Verwendung der privaten Amazon EC2-IP-Adresse Zugriff auf Ihre EC2-Classic-Instance erlauben. Weitere Informationen finden Sie unter Arbeiten mit DB-Sicherheitsgruppen (EC2-Classic-Plattform).

  2. Öffnen Sie die Amazon EC2-Managementkonsole und wählen Sie die AWS-Region aus, in der Ihre Amazon EC2-Instance und Ihre Amazon RDS-DB-Instance enthalten sein sollen. Starten Sie eine Amazon EC2-Instance unter Verwendung der VPC, dem Subnetz und der Sicherheitsgruppe, die Sie in Schritt 1 erstellt haben. Stellen Sie sicher, dass Sie einen Instance-Typ mit genügend Speicherplatz für Ihre unkomprimierte Datenbank-Sicherungsdatei ausgewählt haben. Weitere Details zu Amazon EC2-Instances finden Sie unter Erste Schritte mit Amazon EC2-Linux-Instances im Amazon Elastic Compute Cloud-Benutzerhandbuch für Linux.

  3. Um sich mit Ihrer Amazon RDS-DB-Instance von Ihrer Amazon EC2-Instance zu verbinden, müssen Sie Ihre VPC-Sicherheitsgruppe bearbeiten und eine Regel für eingehenden Datenverkehr hinzufügen, in der die private IP-Adresse Ihrer EC2-Instance angegeben ist. Die private IP-Adresse finden Sie auf der Registerkarte Details im Bereich Instance des EC2-Konsolenfensters. Wählen Sie zuerst Sicherheitsgruppen im Navigationsbereich der EC2-Konsole und dann Ihre Sicherheitsgruppe aus und fügen Sie anschließend eine Regel für eingehenden Datenverkehr für MySQL/Aurora hinzu, die die private IP-Adresse Ihrer EC2-Instance angibt, um Ihre VPC-Sicherheitsgruppe zu bearbeiten und eine Regel für eingehenden Datenverkehr hinzuzufügen. Weitere Informationen zum Hinzufügen einer Regel für einghenden Datenverkehr zu einer VPC-Sicherheitsgruppe finden Sie unter Hinzufügen und Entfernen von Regeln.

  4. Kopieren Sie Ihre komprimierte Datenbank-Sicherungsdatei aus Ihrem lokalen System in Ihre Amazon EC2-Instance. Verwenden Sie bei Bedarf chmod, um sicherzustellen, dass Sie Schreibrechte für das Zielverzeichnis der Amazon EC2-Instance besitzen. Sie können scp oder einen SSH-Client verwenden, um die Datei zu kopieren. Im Folgenden wird ein Beispiel gezeigt:

    $ scp -r -i <key pair>.pem backup.sql.gz ec2-user@<EC2 DNS>:/<target_directory>/backup.sql.gz

    Wichtig

    Beim Kopieren von sensiblen Daten, stellen Sie sicher, dass Sie ein sicheres Netzwerk-Übertragungsprotokoll verwenden.

  5. Verbinden Sie sich mit Ihrer Amazon EC2-Instance und installieren Sie die neusten Updates und MySQL-Client-Tools mithilfe der folgenden Befehle:

    sudo yum update -y sudo yum install mysql-server -y

    Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Ihrer Instance im Amazon Elastic Compute Cloud-Benutzerhandbuch für Linux.

  6. Solange Sie mit Ihrer Amazon EC2-Instance verbunden sind, dekomprimieren Sie Ihre Datenbank-Sicherungsdatei. Beispiel:

    • Verwenden Sie den folgenden Befehl, um eine SQL-Ausgabe zu extrahieren:

      gzip backup.sql.gz -d
    • Verwenden Sie den folgenden Befehl, um eine separierte Textausgabe zu extrahieren:

      tar xzvf backup.tar.gz

Erstellen einer Amazon RDS-MySQL- oder MariaDB-DB-Instance und Importieren aus Ihrer Amazon EC2-Instance

Indem Sie eine Amazon RDS-MySQL- oder MariaDB-DB-Instance in derselben AWS-Region wie die Amazon EC2-Instance erstellen, können Sie die Datenbank-Sicherungsdatei schneller aus EC2 als über das Internet importieren.

So können Sie eine Amazon RDS-MySQL oder MariaDB-DB-Instance erstellen und Ihre Daten importieren

  1. Bestimmen Sie, welche DB-Instance-Klasse und wie viel Speicherplatz erforderlich sind, um das erwartete Arbeitspensum für diese Amazon RDS-DB-Instance unterstützen zu können. Bei diesem Vorgang sollten Sie auch entscheiden, wie viel Speicherplatz und Verarbeitungskapazität für Ihre Datenladevorgänge ausreichen und was erforderlich ist, um den Produktions-Workload zu bewältigen. Sie können diese Faktoren anhand der Größe und der Ressourcen Ihrer Quell-MySQL- oder MariaDB-Datenbank einschätzen. Weitere Informationen finden Sie unter Auswählen der DB-Instance-Klasse.

  2. Bestimmen Sie, ob für Amazon RDS bereitgestellte Input/Output-Operationen pro Sekunde (IOPS) erforderlich sind, um die Workloads zu unterstützen. Der Speicher der bereitgestellten IOPS bietet einen schnellen Durchsatz für Workloads bei der Online-Transaktionsverarbeitung (OLTP), die I/O-intensiv sind. Weitere Informationen finden Sie unter SSD-Speicher mit bereitgestellten-IOPS.

  3. Öffnen Sie die Amazon RDS-Konsole. Wählen Sie in der oberen rechten Ecke die AWS-Region mit Ihrer Amazon EC2-Instance aus.

  4. Wählen Sie im Navigationsbereich Databases (Datenbanken) aus.

  5. Wählen Sie Create database (Datenbank erstellen) aus. Führen Sie dann die Schritte durch, um Optionen für Ihre DB-Instance auszuwählen:

    1. Vergewissern Sie sich, dass Standard Create (Standarderstellung) ausgewählt ist.

    2. Wählen Sie auf der Seite Select Engine (Engine auswählen) wie gewünscht eine der Optionen MySQL oder MariaDB aus.

    3. Wählen Sie unter Version wie folgt die Version aus, die kompatibel mit Ihrer MySQL-Quell-Instance ist:

      • Wenn Ihre Quell-Instance MySQL 5.1.x ist, muss Ihre Amazon RDS-DB-Instance MySQL 5.5.x sein.

      • Wenn Ihre Quell-Instance MySQL 5.5.x ist, muss Ihre Amazon RDS-DB-Instance MySQL 5.5.x sein oder höher.

      • Wenn Ihre Quell-Instance MySQL 5.6.x ist, muss Ihre Amazon RDS-DB-Instance MySQL 5.6.x sein oder MariaDB.

      • Wenn Ihre Quell-Instance MySQL 5.7.x ist, muss Ihre Amazon RDS-DB-Instance MySQL 5.7.x, 5.6.x sein oder MariaDB.

      • Wenn Ihre Quell-Instance MySQL 8.0.x ist, muss Ihre Amazon RDS-DB-Instance MySQL 8.0.x sein.

      • Wenn Ihre Quell-Instance MariaDB 5.1, 5.2 oder 5.3 ist, muss Ihre Amazon RDS-DB-Instance MySQL 5.1.x sein.

      • Wenn Ihre Quell-Instance MariaDB 5.5 oder höher ist, muss Ihre Amazon RDS-DB-Instance MariaDB sein.

    4. Wählen Sie im Abschnitt Templates (Vorlagen) die Option Dev/Test aus, um die Konfiguration der Multi-AZ-Bereitstellung und des bereitgestellten IOPS-Speichers zu überspringen.

    5. Geben Sie im Abschnitt Settings (Einstellungen) die erforderliche Kennung der DB-Instance und die Benutzerinformationen an.

    6. Geben Sie in den Abschnitten DB instance class (DB-Instance-Klasse) und Storage (Speicher) die Klasse der DB-Instance und die Speichergröße ein, die Sie zuteilen möchten.

    7. Wählen Sie im Abschnitt Availability & durability (Verfügbarkeit und Stabilität) unter Multi-AZ deployment (Multi-AZ-Bereitstellung) die Option Do not create a standby instance (Keine Standby-Instance erstellen) aus.

    8. Wählen Sie im Abschnitt Connectivity (Anbindung) die virtuelle private Cloud (VPC) und die VPC-Sicherheitsgruppe aus, die Sie auch für die Amazon EC2-Instance ausgewählt haben. Durch diesen Ansatz wird sichergestellt, dass Ihre Amazon EC2-Instance und Ihre Amazon RDS-Instance im Netzwerk gegenseitig füreinander sichtbar sind. Setzen Sie die Option Publicly Accessible (Öffentlich erreichbar) auf Yes (Ja). Ihre DB-Instance muss öffentlich zugänglich sein, um eine Replikation für Ihre Quelldatenbank einzurichten, wie später beschrieben wird.

      Für die anderen Einstellungen in diesem Abschnitt können Sie die Standardwerte übernehmen.

      Stellen Sie im Abschnitt Sicherung den Aufbewahrungszeitraum für Backups auf 0 Tage ein.

      Für die anderen Einstellungen in diesem Abschnitt können Sie die Standardwerte übernehmen.

    9. Öffnen Sie den Abschnitt Additional configuration (Zusätzliche Konfiguration) und geben Sie unter Initial database name (Initialer Datenbankname= einen initialen Datenbanknamen an.

      Legen Sie für Backup retention period (Aufbewahrungszeitraum für Backups) eine Dauer von 0 days (0 Tage) fest.

      Für die anderen Einstellungen in diesem Abschnitt können Sie die Standardwerte übernehmen.

    10. Wählen Sie Create database (Datenbank erstellen) aus.

      Ihre neue DB-Instance wird in der Liste Databases (Datenbanken)) mit dem Status Creating (Wird erstellt) angezeigt. Warten Sie, bis der Status Ihrer neuen DB-Instance als Available (Verfügbar) angezeigt wird.

    Konfigurieren Sie nicht mehrere Availability Zones, Backup-Aufbewahrungen oder Read Replicas, nachdem Sie das Datenbank-Backup importiert haben. Wenn dieser Importvorgang abgeschlossen ist, können Sie Multi-AZ und Backup-Aufbewahrung so einstellen, wie Sie sie für Ihre Produktions-Instance benötigen. Einen detaillierten Leitfaden für das Erstellen einer Amazon RDS-MySQL-DB-Instance finden Sie unter Erstellen einer DB-Instance mit der MySQL-Datenbank-Engine. Einen detaillierten Leitfaden für das Erstellen einer Amazon RDS-MariaDB-DB-Instance finden Sie unter Erstellen einer DB-Instance, auf der die MariaDB-Datenbank-Engine ausgeführt wird.

  6. Überprüfen Sie die Optionen der Standardkonfiguration für die Amazon RDS-DB-Instance. Wählen Sie im Navigationsbereich der RDS-Konsole die Option Parameter groups (Parametergruppen) aus und klicken Sie auf das Lupensymbol neben der Parametergruppe default.mysqlx.x bzw. default.mariadbx.x. Wenn in dieser Parametergruppe die von Ihnen gewünschten Optionen nicht konfiguriert sind, wählen Sie eine andere aus, in der dies der Fall ist, oder erstellen Sie eine neue Parametergruppe. Weitere Informationen zum Erstellen einer Parametergruppe finden Sie unter Arbeiten mit DB-Parametergruppen.

    Wenn Sie beschließen, eine andere als die standardmäßige Parametergruppe zu verwenden, ordnen Sie diese Ihrer Amazon RDS-DB-Instance zu. Weitere Informationen finden Sie unter Ändern einer DB-Instance mit ausgeführter MySQL-Datenbank-Engine oder Ändern einer DB-Instance, in der die MariaDB-Datenbank-Engine ausgeführt wird.

  7. Verbinden Sie sich mit der neuen Amazon RDS-DB-Instance als Hauptbenutzer und erstellen Sie die erforderlichen Benutzer, um Unterstützung für die Administratoren, Anwendungen und Services zu bieten, die auf die Instance zugreifen müssen. Der Hostname für die Amazon RDS-DB-Instance ist ihr Endpunkt-Wert, ausschließlich der Portnummer, z. B. mysampledb.claxc2oy9ak1.us-west-2.rds.amazonaws.com. Sie finden den Endpunktwert in den Instance-Details in der Amazon RDS-Managementkonsole.

  8. Stellen Sie eine Verbindung zu Ihrer Amazon EC2-Instance her. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Ihrer Instance im Amazon Elastic Compute Cloud-Benutzerhandbuch für Linux.

  9. Verbinden Sie sich mit Ihrer Amazon RDS-DB-Instance als Remote-Host von Ihrer Amazon EC2-Instance aus mithilfe des Befehls mysql. Im Folgenden wird ein Beispiel gezeigt.

    mysql -h <host_name> -P 3306 -u <db_master_user> -p

    Der Hostname ist der DNS-Name aus dem Endpunkt der Amazon RDS-DB-Instance.

  10. Führen Sie in der mysql-Eingabeaufforderung den Befehl source aus und geben Sie den Namen Ihrer Datenbank-Dump-Datei ein, in die die Daten in der Amazon RDS-DB-Instance geladen werden sollen:

    • Verwenden Sie für das SQL-Format den folgenden Befehl.

      mysql> source backup.sql;
    • Erstellen Sie zuerst die Datenbank für das separierte Textformat (wenn es nicht die Standarddatenbank ist, die Sie bei der Einrichtung der Amazon RDS-DB-Instance erstellt haben).

      mysql> create database <database_name>; $ mysql> use <database_name>;

      Erstellen Sie anschließend die Tabellen.

      mysql> source <table1>.sql $ mysql> source <table2>.sql etc…

      Importieren Sie dann die Daten.

      mysql> LOAD DATA LOCAL INFILE 'table1.txt' INTO TABLE table1 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '0x0d0a'; $ mysql> LOAD DATA LOCAL INFILE 'table2.txt' INTO TABLE table2 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '0x0d0a'; etc…

      Um die Leistung zu verbessern, können Sie diese Operationen parallel aus mehreren Verbindungen ausführen, damit alle Ihre Tabellen erstellt werden und die Daten anschließend gleichzeitig geladen werden.

      Anmerkung

      Wenn Sie Optionen für eine Datenformatierung mit mysqldump beim initialen Verwerfen der Tabelle verwendet haben, müssen Sie nun dieselben Optionen mit mysqlimport oder LOAD DATA LOCAL INFILE verwenden, um eine richtige Interpretation der Dateiinhalte sicherzustellen.

  11. Führen Sie eine einfache SELECT-Abfrage gegen eine oder zwei der Tabellen in der importierten Datenbank durch, um zu prüfen, ob der Importvorgang erfolgreich abgeschlossen wurde.

Anmerkung

Wenn Sie die in dieser Prozedur verwendete Amazon EC2-Instance nicht mehr benötigen, sollten Sie die EC2-Instance beenden, um den AWS-Ressourcenverbrauch zu reduzieren. Informationen zum Beenden einer EC2-Instance finden Sie unter Beenden Ihrer Instance.

Replizieren zwischen Ihrer externen Datenbank und Ihrer neuen Amazon RDS-DB-Instance

Die Quelldatenbank wurde in der Zeit, in der die Daten in die Amazon RDS MySQL- oder MariaDB-DB-Instance kopiert und übertragen wurden, wahrscheinlich aktualisiert. Wenn dies der Fall ist, können Sie die kopierte Datenbank mithilfe der Replikation auf den Stand der Quelldatenbank bringen.

Anmerkung

Die erforderlichen Berechtigungen für das Starten einer Replikation in einer Amazon RDS-DB-Instance sind beschränkt und für Ihre Amazon RDS-Hauptbenutzer nicht verfügbar. Aus diesem Grund müssen Sie entweder den Amazon RDS-Befehl mysql.rds_set_external_master oder mysql.rds_set_external_master_gtid für die Konfiguration einer Replikation und den Befehl mysql.rds_start_replication für das Starten einer Replikation zwischen Ihrer Live-Datenbank und Ihrer Amazon RDS-Datenbank verwenden.

So starten Sie eine Replikation

In einem vorherigen Schritt haben Sie die Binärprotokollierung aktiviert und eine eindeutige Server-ID für Ihre Quelldatenbank festgelegt. Jetzt können Sie Ihre Amazon RDS-DB-Instance als Replica mit Ihrer Live-Datenbank als Replikationsmaster einrichten.

  1. Fügen Sie in der Amazon RDS-Managementkonsole die IP-Adresse des Servers, der die Quelldatenbank hostet, zu der VPC-Sicherheitsgruppe dieser Amazon RDS-DB-Instance hinzu. Weitere Informationen zum Ändern einer VPC-Sicherheitsgruppe finden Sie unter Sicherheitsgruppen für Ihre VPC im Amazon Virtual Private Cloud-Benutzerhandbuch.

    Es könnte sein, dass Sie Ihr lokales Netzwerk so konfigurieren müssen, dass es Verbindungen von der IP-Adresse Ihrer Amazon RDS-DB-Instance zulässt, damit Sie mit Ihrer Quelldatenbank kommunizieren können. Verwenden Sie den Befehl host, um die IP-Adresse Ihrer Amazon RDS-DB-Instance herauszufinden.

    host <RDS_MySQL_DB_host_name>

    Der Hostname ist der DNS-Name aus dem Endpunkt der Amazon RDS-DB-Instance, z. B. myinstance.123456789012.us-east-1.rds.amazonaws.com. Sie finden den Endpunktwert in den Instance-Details in der Amazon RDS-Managementkonsole.

  2. Verbinden Sie sich mithilfe eines Clients Ihrer Wahl mit der Quell-Instance und erstellen Sie einen Benutzer, der für die Replikation verwendet werden soll. Dieses Konto wird ausschließlich für die Replikation verwendet und muss auf Ihre Domäne beschränkt sein, um die Sicherheit zu erhöhen. Im Folgenden wird ein Beispiel gezeigt.

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY '<password>';
  3. Erteilen Sie für die Quell-Instance die Sonderrechte REPLICATION CLIENT und REPLICATION SLAVE für Ihren Replikationsbenutzer. Erteilen Sie beispielsweise die Sonderrechte REPLICATION CLIENT und REPLICATION SLAVE in allen Datenbank für den 'repl_user'-Benutzer für Ihre Domäne, mit dem folgenden Befehl.

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com' IDENTIFIED BY '<password>';
  4. Wenn Sie ein SQL-Format verwendet haben, um Ihre Sicherungsdatei zu erstellen, und Ihre externe Instance nicht vom Typ MariaDB-Version 10.0.2 oder höher ist, sehen Sie sich die Inhalte dieser Datei an.

    cat backup.sql

    Die Datei beinhaltet einen CHANGE MASTER TO-Kommentar, der den Namen und die Position der Hauptprotokolldatei beinhaltet. Dieser Kommentar ist in der Sicherungsdatei enthalten, wenn Sie die Option --master-data mit mysqldump verwenden. Notieren Sie sich die Werte für MASTER_LOG_FILE und MATER_LOG_POS.

    -- -- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;

    Wenn Sie ein separiertes Textformat verwendet haben, um Ihre Sicherungsdatei zu erstellen, und die externe Instance nicht vom Typ MariaDB-Version 10.0.2 oder höher ist, sollten Sie bereits über Binärprotokollkoordinaten aus Schritt 1 der Prozedur in So erstellen Sie eine Sicherungskopie für Ihre bestehende Datenbank haben.

    Wenn die externe Instance vom Typ MariaDB-Version 10.0.2 oder höher ist, sollten Sie die GTID, mit der Sie die Replikation starten können, bereits aus Schritt 2 der Prozedur in So erstellen Sie eine Sicherungskopie für Ihre bestehende Datenbank haben.

  5. Machen Sie die Amazon RDS-DB-Instance zum Replica. Wenn die externe Instance nicht vom Typ MariaDB-Version 10.0.2 oder höher ist, verbinden Sie sich mit der Amazon RDS-DB-Instance als Hauptbenutzer und bestimmen Sie die Quelldatenbank als Replikationsmaster mithilfe des Befehls mysql.rds_set_external_master. Verwenden Sie den Namen der Hauptprotokolldatei und die Position im Hauptprotokoll, die Sie im vorherigen Schritt ermittelt haben, wenn Sie über eine Sicherungsdatei im SQL-Format verfügen. Verwenden Sie alternativ den Namen und die Position, die Sie beim Erstellen der Sicherungsdateien ermittelt haben, wenn das Textformat mit Trennzeichen verwendet wurde. Im Folgenden wird ein Beispiel gezeigt.

    CALL mysql.rds_set_external_master ('mymasterserver.mydomain.com', 3306, 'repl_user', '<password>', 'mysql-bin-changelog.000031', 107, 0);

    Wenn die externe Instance vom Typ MariaDB-Version 10.0.2 oder höher ist, verbinden Sie sich mit der Amazon RDS-DB-Instance als Hauptbenutzer und bestimmen Sie die Quelldatenbank als Replikationsmaster mithilfe des Befehls mysql.rds_set_external_master_gtid. Verwenden Sie die GTID, die Sie in Schritt 2 der Prozedur in So erstellen Sie eine Sicherungskopie für Ihre bestehende Datenbank bestimmt haben. Im Folgenden wird ein Beispiel gezeigt.

    CALL mysql.rds_set_external_master_gtid ('<master_server_ip_address>', 3306, 'ReplicationUser', '<password>', '<GTID>', 0);

    master_server_ip_address ist die IP-Adresse der MySQL-Master-Instance. Eine private DNS-Adresse für EC2 wird derzeit nicht unterstützt.

  6. Verwenden Sie für die Amazon RDS-DB-Instance den Befehl mysql.rds_start_replication, um die Replikation zu starten.

    CALL mysql.rds_start_replication;
  7. Führen Sie in der Amazon RDS-DB-Instance den Befehl SHOW SLAVE STATUS aus, um zu bestimmen, wann das Replica auf dem aktuellen Stand des Replikationsmasters sein wird. Die Ergebnisse des SHOW SLAVE STATUS-Befehls beinhalten das Feld "Seconds_Behind_Master". Wenn das Feld "Seconds_Behind_Master" den Wert 0 zurückgibt, dann ist das Replica auf dem aktuellen Stand des Masters.

  8. Nachdem die Amazon RDS-DB-Instance auf den aktuellen Stand gebracht wurden, aktivieren Sie die automatischen Backups, damit Sie diese Datenbank bei Bedarf wiederherstellen können. Sie können automatische Sicherungen für Ihre Amazon RDS-DB-Instance in der Amazon RDS-Managementkonsole aktivieren oder ändern. Weitere Informationen finden Sie unter Arbeiten mit Sicherungen.

Leiten Sie Ihre Live-Anwendung in Ihre Amazon RDS-Instance weiter

Sobald die Amazon RDS-MySQL- oder MariaDB-DB-Instance mit dem aktuellen Stand des Replikationsmasters synchronisiert ist, können Sie die Live-Anwendungen aktualisieren, damit sie die Amazon RDS-Instance nutzen.

So können Sie Ihre Live-Anwendung an Ihre Amazon RDS-MySQL- oder MariaDB-DB-Instance weiterleiten und die Replikation stoppen

  1. Fügen Sie die IP-Adresse des Host-Servers der Anwendung hinzu, um die VPC-Sicherheitsgruppe Ihrer Amazon RDS-DB-Instance hinzuzufügen. Weitere Informationen zum Ändern einer VPC-Sicherheitsgruppe finden Sie unter Sicherheitsgruppen für Ihre VPC im Amazon Virtual Private Cloud-Benutzerhandbuch.

  2. Überprüfen Sie, ob das Feld „Seconds_Behind_Master“ im Befehl SHOW SLAVE STATUS 0 zurückgibt. Dies sagt aus, dass das Replica auf dem aktuellen Stand mit dem Replikationsmaster ist.

    SHOW SLAVE STATUS;
  3. Schließen Sie alle Verbindungen zur Quelle, nachdem ihre Transaktionen abgeschlossen sind.

  4. Aktualisieren Sie Ihre Anwendung, um die Amazon RDS-DB-Instance zu nutzen. Dieses Update ändert die Verbindungseinstellungen, um den Namen und den Port des Hosts der Amazon RDS-DB-Instance, das Benutzerkonto und -passwort, mit dem verbunden werden soll, und die zu verwendende Datenbank zu bestimmen.

  5. Halten Sie die Replikation für die Amazon RDS-Instance mithilfe des Befehls mysql.rds_stop_replication an.

    CALL mysql.rds_stop_replication;
  6. Führen Sie den Befehl mysql.rds_reset_external_master in Ihrer Amazon RDS-DB-Instance aus, um die Replikationskonfiguration zurückzusetzen, damit diese Instance nicht mehr als Replica erkannt wird.

    CALL mysql.rds_reset_external_master;
  7. Aktivieren Sie zusätzliche Amazon RDS-Funktionen, wie Multi-AZ-Unterstützung und Read Replicas. Weitere Informationen finden Sie unter Hohe Verfügbarkeit (Multi-AZ) für Amazon RDS und Arbeiten mit Read Replicas.

Anmerkung

Wenn Sie die in dieser Prozedur verwendete Amazon RDS-Instance nicht mehr benötigen, sollten Sie diese löschen, um den Ressourcenverbrauch in Amazon AWS zu reduzieren. Informationen zum Löschen einer RDS-Instance finden Sie unter Löschen einer DB-Instance.