

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# mysqldump と mysqlpump
<a name="mysqldump-and-mysqlpump"></a>

[mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) と [mysqlpump](https://dev.mysql.com/doc/refman/8.0/en/mysqlpump.html) は、MySQL のネイティブデータベースバックアップツールです。MariaDB は mysqldump をサポートしていますが、mysqlpump はサポートしていません。これらのツールはいずれも論理バックアップを作成するもので、MySQL クライアントプログラムの一部です。mysqldump はシングルスレッド処理をサポートする一方、mysqlpump はデータベースとデータベース内のオブジェクトの並列処理をサポートし、ダンププロセスを高速化します。mysqlpump は MySQL バージョン 5.7.8 で導入されましたが、MySQL バージョン 8.4 で削除されました。

次の図は、mysqldump または mysqlpump バックアップファイルを使用したデータベースの移行に関する大まかな手順を示しています。



![mysqldump または mysqlpump バックアップファイルを移行し、 AWS DB インスタンスで復元する図。](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/migration-large-mysql-mariadb-databases/images/mysqldump-mysqlpump-migration-aws.png)


mysqldump または mysqlpump を使用してデータベースを AWS クラウドに移行する手順は次のとおりです。

1. オンプレミスサーバーに MySQL シェルをインストールします。手順については、MySQL ドキュメントの「[MySQL Shell のインストール](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-install-linux-quick.html)」を参照してください。これにより、mysqldump と mysqlpump の両方がインストールされます。

1. mysqldump または mysqlpump を使用して、ソースのオンプレミスデータベースのバックアップを作成します。手順については、MySQL ドキュメントの「[mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html)」と「[mysqlpump](https://dev.mysql.com/doc/refman/8.0/en/mysqlpump.html)」を参照するか、または、MariaDB ドキュメントの「[Making Backups with mysqldump](https://mariadb.com/kb/en/making-backups-with-mysqldump/)」を参照してください。MySQL プログラムを呼び出す方法とオプションを指定する方法の詳細については、「[MySQLプログラムの使用](https://dev.mysql.com/doc/refman/8.0/en/programs-using.html)」を参照してください。

1. 次のいずれかの方法 AWS クラウド を使用して、バックアップファイルを の EC2 インスタンスに移動します。

   **アプローチ** **3A** – [Amazon FSx](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-file-shares.html) または [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html) ファイルシステムを、データベースインスタンスを実行するオンプレミスサーバーにマウントします。 AWS Direct Connect または を使用して接続 Site-to-Site VPN を確立できます。データベースをマウントされたファイル共有に直接バックアップすることも、データベースをローカルファイルシステムにバックアップしてからマウントされた FSx または EFS ボリュームにアップロードする 2 段階の手順でバックアップを実行することもできます。次に、オンプレミスサーバーにマウントされている Amazon FSx または Amazon EFS ファイルシステムを EC2 インスタンスにマウントします。

   **アプローチ 3B** – AWS CLI、 AWS SDK、または Amazon S3 REST API を使用して、バックアップファイルをオンプレミスサーバーから S3 バケットに直接移動します。ターゲット S3 バケットがデータセンターから AWS リージョン 遠く離れた にある場合は、[Amazon S3 Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transfer-acceleration.html) を使用してファイルをより迅速に転送できます。[s3fs-fuse](https://github.com/s3fs-fuse/s3fs-fuse) ファイルシステムを使用して、EC2 インスタンスに S3 バケットをマウントします。

   **アプローチ 3C** – オンプレミスデータセンターに AWS DataSync エージェントをインストールし、[AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html) を使用してバックアップファイルを Amazon S3 バケットに移動します。[s3fs-fuse](https://github.com/s3fs-fuse/s3fs-fuse) ファイルシステムを使用して、EC2 インスタンスに S3 バケットをマウントします。
**注記**  
Amazon S3 File Gateway を使用して、大容量のデータベースバックアップファイルを AWS クラウドの S3 バケットに転送することもできます。詳細については、このガイドの「[Amazon S3 File Gateway を使用したバックアップファイルの転送](amazon-s3-file-gateway.md)」を参照してください。

1. ネイティブ復元メソッドを使用して、ターゲットデータベースのバックアップを復元します。手順については、MySQL ドキュメントの「[Reloading SQL-Format Backups](https://dev.mysql.com/doc/refman/8.0/en/reloading-sql-format-dumps.html)」または MariaDB ドキュメントの「[Restoring Data from Dump Files](https://mariadb.com/kb/en/restoring-data-from-dump-files/)」を参照してください。

1. (オプション) ソースデータベースとターゲットデータベースインスタンス間のレプリケーションを設定できます。バイナリログ (binlog) レプリケーションを使用すると、ダウンタイムを短縮できます。詳細については次を参照してください:
   + MySQL ドキュメントの「[Setting the Replication Source Configuration](https://dev.mysql.com/doc/refman/5.7/en/replication-howto-masterbaseconfig.html)」
   + Amazon Aurora については、以下を参照してください。
     + Aurora ドキュメントの「[Synchronizing the Amazon Aurora MySQL DB cluster with the MySQL database using replication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync)」
     + Aurora ドキュメントの「[Using binlog replication in Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Replication.MySQL.html)」
   + Amazon RDS については、以下を参照してください。
     + Amazon RDS ドキュメントの「[MySQL のレプリケーションの使用](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_MySQL.Replication.html)」
     + Amazon RDS ドキュメントの「[MariaDB のレプリケーションの使用](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_MariaDB.Replication.html)」
   + Amazon EC2 については、以下を参照してください。
     + MySQL ドキュメントの「[Setting Up Binary Log File Position Based Replication](https://dev.mysql.com/doc/mysql-replication-excerpt/8.0/en/replication-howto.html)」
     + MySQL ドキュメントの「[Setting Up Replicas](https://dev.mysql.com/doc/refman/8.0/en/replication-setup-replicas.html)」
     + MariaDB ドキュメントの「[Setting Up Replication](https://mariadb.com/kb/en/setting-up-replication/)」

## 利点
<a name="advantages-mysqlpump-mysqldump"></a>
+ mysqldump と mysqlpump は MySQL Server のインストールに含まれています。
+ これらのツールによって生成されたバックアップファイルは、より読みやすい形式になります。
+ 結果として得られる .sql ファイルは、バックアップファイルを復元する前に、標準のテキストエディタを使用して変更できます。
+ 特定のテーブル、データベース、または特定のデータの選択をバックアップできます。
+ mysqldump と mysqlpump はマシンアーキテクチャに依存しません。

## 制限事項
<a name="limitations-mysqlpump-mysqldump"></a>
+ mysqldump はシングルスレッドのバックアッププロセスです。バックアップ取得時のパフォーマンスは、小規模データベースには適していますが、バックアップサイズが 10 GB を超えると非効率になる可能性があります。
+ 論理形式のバックアップファイルは、特にテキストとして保存された場合は大量であり、作成と復元に時間がかかることがよくあります。
+ ターゲット DB インスタンスに SQL ステートメントを再適用するには、挿入、インデックス作成、参照整合性制約の適用のために大量のディスク I/O と CPU 処理が必要になるため、データの復元が遅くなる可能性があります。
+ mysqlpump ユーティリティは、MySQL バージョン 5.7.8 以前またはバージョン 8.4 以降ではサポートされていません。
+ デフォルトでは、mysqlpump は `performance_schema` や `sys` などのシステムデータベースのバックアップを取りません。システムデータベースの一部をバックアップするには、コマンドラインで明示的に名前を指定します。
+ mysqldump は InnoDB `CREATE TABLESPACE` ステートメントをバックアップしません。

**注記**  
CREATE TABLESPACE ステートメントとシステムデータベースのバックアップは、MySQL または MariaDB データベースのバックアップを EC2 インスタンスに復元する場合にのみ有用です。これらのバックアップは Amazon RDS または Aurora には使用されません。

## ベストプラクティス
<a name="best-practices-mysqlpump-mysqldump"></a>
+ データベースバックアップを復元する場合は、ターゲットデータベースのセッションレベルで、`FOREIGN_KEY_CHECKS` などのキーチェックを無効にします。これにより、復元速度が向上します。
+ データベースユーザーにバックアップを作成および復元するための十分な[権限](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html)があることを確認します。