Amazonrds-mariadb-data-import

提供:Dev Guides
移動先:案内検索

Amazon RDS-MariaDBデータのインポート

Amazon RDS MariaDBは、DBにデータをインポートし、DBからデータをエクスポートする簡単な方法を提供します。 MariaDBデータベースに正常に接続できたら、CLIツールを使用してインポートコマンドとエクスポートコマンドを実行し、RDSデータベースに出入りする他のソースからデータを取得できます。

以下は、Amazon RDS-MariaDBデータベースにデータをインポートする方法を決定する際に考慮すべきシナリオです。

既存のMariaDBデータベースから

既存のMariaDBは、オンプレミスまたは別のEC2インスタンスに存在できます。 以下に図を示します。

on_premise.jpg

オンプレミス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プラットフォームに変換します。 次の図は、全体的なプロセスを説明しています。 また、前のセクションで説明したのと同様の複製原理で動作します。

amazon_dms.jpg

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