外部の MariaDB データベースから Amazon RDS for MariaDB DB インスタンスにデータをインポートする - Amazon Relational Database Service

外部の MariaDB データベースから Amazon RDS for MariaDB DB インスタンスにデータをインポートする

既存の MariaDB データベースから RDS for MariaDB DB インスタンスに、データをインポートできます。これを行うには、mysqldump または mariadb-dump を使用してデータベースをコピーし、データベースを RDS for MariaDB DB インスタンスに直接パイプ処理します。mysqldump または mariadb-dump コマンドラインユーティリティは、データのバックアップや、MariaDB サーバーから別の場所への転送によく使用されます。このユーティリティは、MariaDB クライアントソフトウェアに含まれています。

MariaDB 11.0.1 以降では、mariadb-dumpmysqldump の代わりに使用する必要があります。

外部のデータベースから Amazon RDS DB インスタンスにデータを移動するための一般的な mysqldump コマンドは、次の例のようになります。値を自分の情報に置き換えます。MariaDB 11.0.1 以降のバージョンでは、mysqldumpmariadb-dump に置き換えます。

mysqldump -u local_user \ --databases database_name \ --single-transaction \ --compress \ --order-by-primary \ --routines=0 \ --triggers=0 \ --events=0 \ -plocal_password | mariadb -u RDS_user \ --port=port_number \ --host=host_name \ -pRDS_password
重要

-p オプションと入力するパスワードの間にスペースを残していないことを確認します。

セキュリティのベストプラクティスとして、この例に表示されているプロンプト以外の認証情報を指定してください。

次の推奨事項と考慮事項に注意してください。

  • ダンプファイルから次のスキーマを除外します。

    • sys

    • performance_schema

    • information_schema

    mysqldump および mariadb-dump ユーティリティは、これらのスキーマをデフォルトで除外します。

  • ユーザーや権限を移行する必要がある場合は、再作成するデータ制御言語 (DCL) を生成するツールの使用を検討します。例えば、pt-show-grants ユーティリティがあります。

  • インポートを実行するには、そのユーザーに DB インスタンスへのアクセスが許可されていることを確認してください。詳細については、「セキュリティグループによるアクセス制御」を参照してください。

使用するパラメータは次のとおりです。

  • -u local_user - ユーザー名を指定します。このパラメータの初回の使用では、--databases パラメータによって識別されたローカル MariaDB データベースのユーザーアカウントの名前を指定します。

  • --databases database_name — Amazon RDS にインポートするローカル MariaDB インスタンスのデータベースの名前を指定します。

  • --single-transaction​ - ローカルデータベースからロードされたすべてのデータが、ある時点において一貫していることを確認します。mysqldump または mariadb-dump によるデータの読み取り中に他のプロセスがデータを変更する場合は、このパラメータを使用することでデータの整合性を維持できます。

  • --compress - ローカルデータベースからのデータを、Amazon RDS に送信する前に圧縮することで、ネットワーク帯域幅の消費量を削減します。

  • --order-by-primary - 各テーブルのデータをプライマリキーでソートすることで、ロード時間を短縮します。

  • --routines − ストアドプロシージャや関数などのルーチンが、コピーするデータベースに存在する場合に使用します。パラメータを 0 に設定し、インポートプロセス中にルーチンを除外します。その後、Amazon RDS データベースでルーチンを手動で再作成します。

  • --triggers − コピーするデータベースにトリガーが存在する場合に使用します。パラメータを 0 に設定し、インポートプロセス中にトリガーを除外します。その後、Amazon RDS データベースでトリガーを手動で再作成します。

  • --events − コピーするデータベースにイベントが存在する場合に使用します。パラメータを 0 に設定し、インポートプロセス中にイベントを除外します。その後、Amazon RDS データベースでイベントを手動で再作成します。

  • -plocal_password - パスワードを指定します。このパラメータの初回の使用では、初期の -u パラメータにより識別されるユーザーアカウントのパスワードを指定します。

  • -u RDS_user - ユーザー名を指定します。このパラメータの 2 回目の使用では、--host パラメータによって識別された MariaDB DB インスタンスのデフォルトデータベースのユーザーアカウントの名前を指定します。

  • --port port_number — MariaDB DB インスタンスのポートを指定します。DB インスタンスの作成時に値を変更していない限り、デフォルトでは 3306 です。

  • --host host_name​ — Amazon RDS DB インスタンスのエンドポイント、例えば からのドメインネームシステム (DNS) 名を指定します。myinstance.123456789012.us-east-1.rds.amazonaws.comエンドポイントの値は、Amazon RDS コンソールの DB インスタンスの詳細で確認できます。

  • -pRDS_password - パスワードを指定します。このパラメータの 2 回目の使用では、2 回目の -u パラメータにより識別されるユーザーアカウントのパスワードを指定します。

Amazon RDS データベースで、ストアドプロシージャ、トリガー、関数、イベントを必ず手動で作成してください。これらのオブジェクトのいずれかがコピー対象のデータベースに含まれている場合は、mysqldump または mariadb-dump の実行時に除外します。これを行うには、mysqldump または mariadb-dump コマンドに次のパラメータを含めます。

  • --routines=0

  • --triggers=0

  • --events=0

次の例では、ローカルホストにある world サンプルデータベースを、RDS for MariaDB DB インスタンスにコピーします。値を自分の情報に置き換えます。

Linux、macOS、Unix の場合:

sudo mariadb-dump -u local_user \ --databases world \ --single-transaction \ --compress \ --order-by-primary \ --routines=0 \ --triggers=0 \ --events=0 \ -plocal_password | mariadb -u rds_user \ --port=3306 \ --host=my_instance.123456789012.us-east-1.rds.amazonaws.com \ -pRDS_password

Windows の場合:

Windows プログラムメニューの [コマンドプロンプト] を右クリックし、[管理者として実行] を選択して開いたコマンドプロンプトで次のコマンドを実行します。値を自分の情報に置き換えます。

mariadb-dump -u local_user ^ --databases world ^ --single-transaction ^ --compress ^ --order-by-primary ^ --routines=0 ^ --triggers=0 ^ --events=0 ^ -plocal_password | mariadb -u RDS_user ^ --port=3306 ^ --host=my_instance.123456789012.us-east-1.rds.amazonaws.com ^ -pRDS_password
注記

セキュリティのベストプラクティスとして、例に表示されているプロンプト以外の認証情報を指定します。