Amazon Aurora MySQL DB クラスターへのデータの移行 - Amazon Aurora

Amazon Aurora MySQL DB クラスターへのデータの移行

既存のデータベースから Amazon Aurora MySQL DB クラスターにデータを移行するために、複数のオプションがあります。また、移行オプションは、移行元のデータベースおよび移行するデータのサイズによっても異なります。

移行には物理と論理の 2 つのタイプがあります。物理移行とは、データベースファイルの物理コピーを使用してデータベースを移行することです。論理的な移行とは、挿入、更新、削除などの論理的な変更を適用することでデータベースを移行することです。

物理移行には以下の利点があります。

  • 物理移行は、特にデータベースのサイズが大きい場合、論理的な移行よりも高速です。

  • 物理移行用にバックアップを作成するとき、データベースのパフォーマンスが低下しません。

  • 物理移行では、複雑なデータベースコンポーネントを含め、出典データベースのすべての内容を移行できます。

物理移行には以下の制限があります。

  • innodb_page_size パラメータは、デフォルト値 (16KB) に設定する必要があります。

  • innodb_data_file_path パラメータは、デフォルトのデータファイル名 "ibdata1:12M:autoextend" を使用するデータファイル 1 つのみで設定する必要があります。2 つのデータファイルを持つデータベースや名前が異なるデータファイルを持つデータベースは、この方法では移行できません。

    "innodb_data_file_path=ibdata1:50M; ibdata2:50M:autoextend""innodb_data_file_path=ibdata01:50M:autoextend" などのファイル名は使用できません。

  • innodb_log_files_in_group パラメータは、デフォルト値 (2) に設定する必要があります。

論理的な移行には以下の利点があります。

  • 特定のテーブルやテーブルの一部など、データベースのサブセットを移行できます。

  • データは、物理ストレージ構造に関係なく移行できます。

論理的な移行には以下の制限があります。

  • 論理的な移行は通常、物理移行よりも低速です。

  • 複雑なデータベースコンポーネントにより、論理的な移行プロセスの速度が遅くなることがあります。場合によっては、複雑なデータベースコンポーネントにより、論理的な移行がブロックされることさえあります。

以下の表に示しているのは、移行のオプションと各オプションで使用する移行のタイプです。

移行元 移行タイプ ソリューション

RDS for MySQL DB インスタンス

物理

まず MySQL DB インスタンスの Aurora MySQL リードレプリカを作成することで、RDS for MySQL DB インスタンスから移行できます。MySQL DB インスタンスと Aurora MySQL リードレプリカとの間のレプリカラグが 0 の場合は、クライアントアプリケーションで Aurora リードレプリカから読み取り、レプリケーションを停止することで、Aurora MySQL リードレプリカを読み取りと書き込み用のスタンドアロンの Aurora MySQL DB クラスターにすることができます。詳細については、「Aurora リードレプリカを使用した、RDS for MySQL DB インスタンスから Amazon Aurora MySQL DB クラスターへのデータの移行」を参照してください。

RDS for MySQL DB スナップショット

物理

RDS for MySQL DB スナップショットから Amazon Aurora MySQL DB クラスターに直接データを移行できます。詳細については、「Aurora への RDS for MySQL スナップショットの移行」を参照してください。

Amazon RDS 外部の MySQL データベース

論理

mysqldump ユーティリティを使用してデータのダンプを作成し、そのデータを既存の Amazon Aurora MySQL DB クラスターにインポートできます。詳細については、「mysqldump を使用した MySQL から Amazon Aurora MySQL への論理的移行」を参照してください。

外部 MySQL データベースからの移行中にデータベースユーザーのメタデータをエクスポートするには、mysqldump の代わりに MySQL Shell コマンドを使用することもできます。詳細については、「インスタンスダンプユーティリティ、スキーマダンプユーティリティ、テーブルダンプユーティリティ」を参照してください。

注記

MySQL 8.0.34 以降、mysqlpump ユーティリティは廃止されました。

Amazon RDS 外部の MySQL データベース

物理

データベースから Amazon Simple Storage Service (Amazon S3) バケットにバックアップファイルをコピーし、これらのファイルから Amazon Aurora MySQL DB クラスターを復元できます。このオプションは、mysqldump を使用したデータの移行よりもかなり高速になる場合があります。詳細については、「Percona XtraBackup と Amazon S3 を使用した MySQL からの物理的な移行」を参照してください。

Amazon RDS 外部の MySQL データベース

論理

データベースのデータをテキストファイルとして保存し、そのファイルを Amazon S3 バケットにコピーできます。次に、LOAD DATA FROM S3 MySQL コマンドを使用して、そのデータを既存の Aurora MySQL DB クラスター内にロードできます。詳細については、「Amazon S3 バケットのテキストファイルから Amazon Aurora MySQL DB クラスターへのデータのロード」を参照してください。

MySQL と互換性がないデータベース

論理

AWS Database Migration Service (AWS DMS) は、MySQL との互換性がないデータベースからのデータを移行するのに使用できます。AWS DMS の詳細については、「AWS Database Migration Service とは」を参照してください。

注記

外部の MySQL データベースを Amazon RDS に移行する場合、表で説明している移行のオプションは、データベースが InnoDB または MyISAM テーブルスペースをサポートしている場合にのみサポートされます。

Aurora MySQL に移行中の MySQL データベースで memcached が使用されている場合は、移行前に memcached を削除します。

8.0.11、8.0.13、8.0.15 などの一部の古い MySQL 8.0 バージョンからは Aurora MySQL バージョン 3.05 以上に移行できません。移行する前に MySQL バージョン 8.0.28 にアップグレードすることをお勧めします。