Amazon RDS - MySQL DB Export Import
Amazon RDS MySQL bietet einfache Möglichkeiten zum Importieren von Daten in die Datenbank und zum Exportieren von Daten aus der Datenbank. Nachdem wir erfolgreich eine Verbindung zur MySQL-Datenbank hergestellt haben, können wir mithilfe der CLI-Tools die Import- und Exportbefehle ausführen, um die Daten aus anderen Quellen in die RDS-Datenbank und aus dieser heraus zu holen. Nachfolgend sind die Szenarien aufgeführt, die bei der Entscheidung über den Ansatz zum Importieren der Daten in die Amazon RDS - MySQL-Datenbank zu berücksichtigen sind.
Eine vorhandene MySQL-Datenbank kann vor Ort oder in einer anderen EC2-Instanz vorhanden sein. Diagrammatisch, was wir tun, ist unten gezeigt.
Erstellen einer Sicherung aus der lokalen Datenbank
In einem ersten Schritt erstellen wir mit dem folgenden Befehl eine Sicherung der lokalen Datenbank.
mysqldump -u user -p[user_password] [database_name] > backupfile.sql
Es wird eine Datei mit dem Namen backupfile.sql erstellt, die die Tabellenstruktur sowie die zu verwendenden Daten enthält.
Speichern der Sicherungsdatei in S3.
Laden Sie die oben erstellte Sicherungsdatei in einen vorab festgelegten Amazon S3-Bucket in derselben Region hoch, in der sich die RDS MySQL DB-Zieldatenbank befindet. Sie können diesem Link folgen, um zu erfahren, wie Sie hochladen.
Importieren Sie Daten aus Amazon S3 in die RDS-MySQL-Datenbank
Mit dem folgenden Amazon CLI-Befehl können Sie die Daten von S3 in MySQL DB importieren.
aws rds restore-db-instance-from-s3 \
--allocated-storage 125 \
--db-instance-identifier tddbidentifier \
--db-instance-class db.m4.small \
--engine mysql \
--master-user-name masterawsuser \
--master-user-password masteruserpassword \
--s3-bucket-name tpbucket \
--s3-ingestion-role-arn arn:aws:iam::account-number:role/rolename \
--s3-prefix bucketprefix \
--source-engine mysql \
--source-engine-version 5.6.27
Es kann Szenarien geben, in denen Daten aus einer vorhandenen RDS-MYSQL-Datenbank in eine andere RDS-MYSQL-Datenbank übernommen werden sollen. Zum Beispiel, um eine Disaster Recovery-Datenbank zu zertifizieren oder eine Datenbank nur für Geschäftsberichte usw. zu erstellen. In einem solchen Szenario erstellen wir Lesereplikate, die eine Kopie ihrer Quelldatenbank sind, und stellen diese Lesereplikate dann auf eine neue Datenbankinstanz herauf. Sie werden verwendet, um ein direktes schweres Lesen aus der ursprünglichen Quelldatenbank zu verhindern, wenn die Daten kopiert werden sollen.
Erstellen Sie eine Lesereplik
aws rds create-db-instance-read-replica \
--db-instance-identifier myreadreplica \
--source-db-instance-identifier mydbinstance
Heraufstufen eines Lesereplikats zur DB-Instanz
Jetzt, da wir das Replikat haben, können wir es zu einer eigenständigen DB-Instanz hochstufen. Dies wird unserem Endbedarf dienen, Daten aus einer RDS-MySQL-Datenbank in eine neue zu importieren. Der folgende Befehl wird verwendet, um die Heraufstufung eines Lesereplikats zu einer Datenbankinstanz abzuschließen.
aws rds create-db-instance-read-replica \
--db-instance-identifier readreplica_name \
--region target_region_name
--db-subnet-group-name subnet_name
--source-db-instance-identifier arn:aws:rds:region_name:11323467889012:db:mysql_instance1
Um Daten aus einer anderen Datenbank in Amazon RDS - MySQL zu importieren, müssen wir den Amazon Data Migration Service verwenden, der auch als Amazon DMS bezeichnet wird. Es verwendet das Schema-Konvertierungstool, um die vorhandene Datenbank auf eine MYSQL-Plattform zu übersetzen. Das folgende Diagramm erläutert den Gesamtprozess. Es funktioniert auch nach dem ähnlichen Prinzip der Replikation wie im vorherigen Abschnitt beschrieben.
Das Exportieren von Daten aus Amazon RDS Mysql DB ist ein unkomplizierter Prozess, bei dem nach dem oben beschriebenen Replikationsprinzip gearbeitet wird. Nachfolgend finden Sie die Schritte zum Ausführen des Exportvorgangs.
- Starten Sie die Instanz von MySQL, die außerhalb von Amazon RDS ausgeführt wird.
- Legen Sie die MySQL DB-Instanz als Replikationsquelle fest.
- Verwenden Sie mysqldump, um die Datenbank von der Amazon RDS-Instanz auf die Instanz außerhalb von Amazon RDS zu übertragen.
Unten finden Sie den Code für den Befehl mysqldum
mysqldump -h RDS instance endpoint \
-u user \
-p password \
--port=3306 \
--single-transaction \
--routines \
--triggers \
--databases database database2 \
--compress \
--compact | mysql \
-h MySQL host \
-u master user \
-p password \
--port 3306