Amazon RDS - MariaDB Datenimport
Amazon RDS MariaDB 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 MariaDB-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-MariaDB-Datenbank zu berücksichtigen sind.
Eine vorhandene MariaDB 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. MariaDB ist ein Klon von MySQL und kann fast dieselben Befehle wie MySQL verwenden.
# mysqldump -u user -p[user_password] [database_name] > backupfile.sql
Eine Datei mit dem Namen backupfile.sql wird erstellt, die die Tabellenstruktur zusammen mit den 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 MariaDB-Zieldatenbank befindet. Sie können diesem Link folgen, um zu erfahren, wie Sie hochladen.
Importieren Sie Daten aus Amazon S3 in die RDS-MariaDB-Datenbank
Mit dem folgenden Amazon CLI-Befehl können Sie die Daten von S3 in MariaDB 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
Von einer anderen RDS-MariaDB-Instanz
Es kann Szenarien geben, in denen Daten aus einer vorhandenen RDS MariaDB-Datenbank in eine andere RDS MariaDB ü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 o RDS - MariaDB DB 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
Aus einer beliebigen Datenbank
Um Daten aus einer anderen Datenbank in Amazon RDS - MariaDB 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 MariaDB, die außerhalb von Amazon RDS ausgeführt wird.
- Legen Sie die MariaDB 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 mysqldump zum Übertragen der Daten
mysqldump -h RDS instance endpoint \
-u user \
-p password \
--port=3306 \
--single-transaction \
--routines \
--triggers \
--databases database database2 \
--compress \
--compact | mysql \
-h MariaDB host \
-u master user \
-p password \
--port 3306