Amazonrds-mariadb-data-import
Amazon RDS-MariaDBデータのインポート
Amazon RDS MariaDBは、DBにデータをインポートし、DBからデータをエクスポートする簡単な方法を提供します。 MariaDBデータベースに正常に接続できたら、CLIツールを使用してインポートコマンドとエクスポートコマンドを実行し、RDSデータベースに出入りする他のソースからデータを取得できます。
以下は、Amazon RDS-MariaDBデータベースにデータをインポートする方法を決定する際に考慮すべきシナリオです。
既存のMariaDBデータベースから
既存のMariaDBは、オンプレミスまたは別のEC2インスタンスに存在できます。 以下に図を示します。
オンプレミスDBからバックアップを作成する
最初のステップとして、以下のコマンドを使用してオンプレミスデータベースのバックアップを作成します。 MariaDBはMySQLのクローンであり、MySQLとほぼ同じコマンドを使用できます。
# mysqldump -u user -p[user_password] [database_name] > backupfile.sql
backupfile.sqlという名前のファイルが生成されます。このファイルには、使用するデータとともにテーブル構造が含まれています。
S3にバックアップファイルを保存します。
上記で作成したバックアップファイルを、ターゲットRDS MariaDBデータベースが存在する同じリージョンの事前に決定されたAmazon S3バケットにアップロードします。 アップロード方法については、https://www.finddevguides.com/amazon_web_services/amazon_web_services_s3 [このリンク]をフォローしてください。
Amazon S3からRDS- MariaDBデータベースにデータをインポートする
次のAmazon CLIコマンドを使用して、S3からMariaDB DBにデータをインポートできます。
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
別のRDS- MariaDBインスタンスから
既存のRDS MariaDB DBのデータを別のRDS MariaDBに取り込む場合があります。 たとえば、災害復旧DBを作成したり、ビジネスレポートなどのためにのみDBを作成したりします。 このようなシナリオでは、ソースDBのコピーであるリードレプリカを作成し、そのリードレプリカを新しいDBインスタンスに昇格させます。 データをコピーするときに、元のソースDBから直接大量の読み取りを防ぐために使用されます。
リードレプリカを作成する
aws rds create-db-instance-read-replica \
--db-instance-identifier myreadreplica \
--source-db-instance-identifier mydbinstance
リードレプリカをDBインスタンスに昇格させる
これでレプリカができたので、それをスタンドアロンDBインスタンスに昇格させることができます。 これにより、RDS – MariaDB DBから新しいデータにデータをインポートするという最終的なニーズに対応できます。 次のコマンドは、dbインスタンスへのリードレプリカの昇格を完了するために使用されます。
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
任意のデータベースから
他のデータベースからAmazon RDS – MariaDBにデータをインポートするには、Amazon DMSとも呼ばれるAmazon Data Migration Serviceを使用する必要があります。 スキーマ変換ツールを使用して、既存のデータベースをMYSQLプラットフォームに変換します。 次の図は、全体的なプロセスを説明しています。 また、前のセクションで説明したのと同様の複製原理で動作します。
MariaDBからデータをエクスポートする
Amazon RDS Mysql DBからのデータのエクスポートは、先ほど見たのと同じレプリケーションの原則に基づいて動作する単純なプロセスです。 以下は、エクスポートプロセスを実行する手順です。
- Amazon RDSの外部で実行されているMariaDBのインスタンスを起動します。
- MariaDB DBインスタンスを複製ソースとして指定します。
- mysqldumpを使用して、データベースをAmazon RDSインスタンスからAmazon RDSの外部のインスタンスに転送します。
以下は、データを転送するmysqldumpコマンドのコードです
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