のソースとしての 互換データベースの使用MySQLAWS DMS - AWS Database Migration Service

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

のソースとしての 互換データベースの使用MySQLAWS DMS

を使用して、 互換MySQLのデータベース (MySQL、 MariaDB 、または Amazon Aurora MySQL) からデータを移行できますAWS Database Migration Service。MySQLバージョン 5.5、5.6、5.7、8.0 MariaDBバージョン 10.0.24 から 10.0.28、10.1、10.2、10.3 から 10.3.13、および Amazon Aurora MySQL がオンプレミスでサポートされています。

注記

ソースとして MySQL 8.0 のサポートは、トランザクションペイロードが圧縮されている場合を除き、AWS DMSバージョン 3.4.0 以降で使用できます。

SSL を使用して、 と互換性のあるエンドポイントおよびレプリケーションインスタンスとの接続を暗号化できます。MySQLと互換性のあるエンドポイントで SSL を使用する方法の詳細については、「」を参照してくださいMySQL。AWS Database Migration Service での SSL の使用

以降のセクションでは、「セルフマネージド型」という用語は、オンプレミスまたは Amazon EC2 にインストールされているあらゆるデータベースに当てはまります。「AWS Amazon RDS マネージド型」という用語は、 Amazon Aurora 、 、または 上のあらゆるデータベースに当てはまりますAmazon S3。

互換データベースと MySQL の使用の詳細については、以下のセクションを参照してください。AWS DMS

MySQLを使用した MySQL から への移行AWS DMS

以外のデータベースエンジンからデータベースMySQLに移行する異種移行では、ほとんどの場合 MySQLが最適な移行ツールです。AWS DMSただし、MySQLデータベースからデータベースに移行する同種移行では、ネイティブツールがより効果的な場合があります。MySQL

次の条件MySQLでは、 などのネイティブmysqldumpデータベース移行ツールを使用することをお勧めします。

  • ソースMySQLデータベースからターゲットデータベースに移行する同種移行である。MySQL

  • データベース全体を移行する。

  • ネイティブツールで最小のダウンタイムでデータを移行できる。

既存の MySQLまたは MariaDB データベースから Amazon RDSMySQLまたは MariaDB DB インスタンスにデータをインポートできます。これを行うには、mysqldump を使用してデータベースをコピーし、それを Amazon RDSMySQLまたは MariaDB DB インスタンスに直接パイプします。mysqldumpコマンドラインユーティリティは、バックアップを作成し、1 つのMySQLまたは別のMariaDBサーバーにデータを転送するためによく使用されます。MySQLおよびMariaDBクライアントソフトウェアに含まれています。

MySQLまたは Amazon RDS MySQLの MySQL と互換性がある Amazon Aurora へのデータベースのインポートの詳細については、「DB インスタンスへのデータのインポート」MySQLおよび「 または DB から MySQLMariaDBまたは DB インスタンスへのAmazon RDSデータのインポート」を参照してくださいMySQL。MariaDB

を使用した AWS DMS から へのデータの移行MySQLMySQL

では、たとえば、オンプレミスのソースAWS DMSデータベースから MySQLまたは Amazon RDS インスタンスMySQLのターゲットにデータを移行できます。Aurora MySQL通常、コアまたは基本のMySQLデータ型は正常に移行されます。

ソースのデータベースではサポートされていても、ターゲットではサポートされていないデータ型は、正常に移行されないことがあります。データ型が不明な場合、AWS DMS は一部のデータ型を文字列としてストリームします。XML などの一部のデータ型は、小さなファイルの場合は正常に移行されますが、大きなドキュメントの場合は失敗することがあります。

次の表は、ソースMySQLのデータ型と、これらのデータ型が正常に移行されるかどうかを示しています。

データ型 正常に移行 部分的に移行 移行されない コメント
INT X
BIGINT X
MEDIUMINT X
TINYINT X
DECIMAL(p,s) X
BINARY X
BIT (M) X
BLOB X
LONGBLOB X
MEDIUMBLOB X
TINYBLOB X
DATE X
DATETIME X
TIME X
TIMESTAMP X
YEAR X
DOUBLE X
FLOAT X
VARCHAR(N) X
VARBINARY(N) X
CHAR(N) X
TEXT X
LONGTEXT X
MEDIUMTEXT X
TINYTEXT X
JSON X AWS DMS バージョン 3.3.1 以降でサポート
GEOMETRY X
POINT X
LINESTRING X
POLYGON X
MULTILINESTRING X
MULTIPOLYGON X
GEOMETRYCOLLECTION X
ENUM X
SET X

のソースとしての 互換データベースの使用MySQLAWS DMS

MySQLデータベースを AWS DMS のソースとして使用し始める前に、次の前提条件を満たしていることを確認してください。これらの前提条件は、セルフマネージド型または AWS マネージド型ソースのいずれかに適用されます。

レプリケーション管理者ロールを持つ AWS DMS のアカウントを保有している必要があります。ロールには、次の権限が必要です。

  • REPLICATION CLIENT – この権限は、CDC タスクにのみ必要です。つまり、フルロードのみのタスクにはこの権限は必要ありません。

  • REPLICATION SLAVE – この権限は CDC タスクにのみ必要です。つまり、フルロードのみのタスクにはこの権限は必要ありません。

  • SUPER – この権限は、バージョン 5.6.6 より前の場合にのみ必要です。MySQL

AWS DMS ユーザーには、レプリケーション対象に指定されたソーステーブルに対する SELECT 権限も必要です。

自己管理型 MySQL 互換データベースの のソースとしての使用AWS DMS

次の自己管理型 MySQL 互換データベースを のソースとして使用できますAWS DMS。

  • MySQLCommunity Edition

  • MySQLスタンダードエディション

  • MySQLエンタープライズエディション

  • MySQLクラスターキャリアグレードエディション

  • MariaDBCommunity Edition

  • MariaDBエンタープライズエディション

  • MariaDB列ストア

CDC を使用する予定の場合、バイナリログ記録を有効にする必要があります。バイナリロギングを有効にするには、以下のパラメータを MySQL の my.ini (Windows) または my.cnf (UNIX) ファイルで設定する必要があります。

パラメータ

server_id

このパラメータは、1 以上の値に設定します。

log-bin

パスをバイナリログファイル ( など) log-bin=E:\MySql_Logs\BinLog に設定します。 ファイル拡張子を含めないでください。

binlog_format

このパラメータは ROW に設定します。

expire_logs_days

このパラメータは、1 以上の値に設定します。ディスク容量の使いすぎを防ぐため、デフォルト値の 0 は使用しないことをお勧めします。

binlog_checksum

このパラメータは NONE に設定します。

binlog_row_image

このパラメータは FULL に設定します。

log_slave_updates

TRUEまたはMySQLリードレプリカをソースとして使用している場合は、このパラメータを に設定します。MariaDB

ソースで NDB (クラスター化) データベースエンジンを使用している場合、そのストレージエンジンを使用するテーブルで CDC を有効にするには以下のパラメータを設定する必要があります。これらの変更を MySQL の my.ini (Windows) または my.cnf (UNIX) ファイルに追加します。

パラメータ

ndb_log_bin

このパラメータは に設定しますON。 この値により、クラスター化されたテーブルでの変更が確実にバイナリログに記録されます。

ndb_log_update_as_write

このパラメータは に設定しますOFF。 この値により、UPDATE ステートメントが INSERT ステートメントとしてバイナリログに書き込まれなくなります。

ndb_log_updated_only

このパラメータは に設定しますOFF。 この値により、バイナリログに変更された列だけでなく行全体が含められます。

AWS マネージドMySQL型 互換データベースの のソースとしての使用AWS DMS

以下の AWS マネージド MySQL 互換データベースを のソースとして使用できますAWS DMS。

  • MySQLCommunity Edition

  • MariaDBCommunity Edition

  • MySQL と互換性がある Amazon Aurora

AWS マネージド MySQL 互換データベースを AWS DMS のソースとして使用する場合は、次の前提条件を満たしていることを確認してください。

  • 自動バックアップを有効化します。自動バックアップの設定の詳細については、の「自動バックアップの使用」を参照してくださいAmazon RDS ユーザーガイド

  • CDC を使用する予定の場合、バイナリログ記録を有効にします。Amazon RDSMySQLデータベースのバイナリログ記録の設定の詳細については、の「自動バックアップの使用」を参照してくださいAmazon RDS ユーザーガイド。

  • バイナリログが AWS DMS で利用できることを確認します。AWS が管理する MySQL 互換データベースはできるだけ早くバイナリログを消去するため、ログが利用可能な状態で保持される時間を長くする必要があります。たとえば、ログ保持を 24 時間に伸ばすには、次のコマンドを実行します。

    call mysql.rds_set_configuration('binlog retention hours', 24);
  • binlog_format パラメータを "ROW" に設定します。

  • binlog_checksumパラメータを に設定します"NONE"。 でのパラメータの設定の詳細については、Amazon RDSMySQLの「自動バックアップの使用」を参照してくださいAmazon RDS ユーザーガイド。

  • Amazon RDSMySQLまたは Amazon RDS MariaDB リードレプリカをソースとして使用している場合、リードレプリカでバックアップを有効にします。

MySQLデータベースを のソースとして使用する場合の制限AWS DMS

MySQLデータベースをソースとして使用する場合は、次の点を考慮してください。

  • 変更データキャプチャ (CDC) は、Amazon RDSMySQL5.5 以下ではサポートされていません。Amazon RDSMySQLでは、CDC を有効にするにはバージョン 5.6 または 5.7 を使用する必要があります。CDC は、セルフマネージド MySQL5.5 ソースでサポートされています。

  • CREATE TABLECDC の場合は、 DROP TABLERENAME TABLE 、 、 ADD COLUMNDROP COLUMN 、列のデータ型の変更renaming a column、および がサポートされています。ただし、列のデフォルト値、列の null 機能、文字セットなどの他の属性に対する更新はサポートされていません。

  • データ定義言語 (DDL) ステートメントの DROP TABLE および RENAME TABLE はサポートされません。さらに、パーティション分割されたテーブルのすべての DDL ステートメントはサポートされません。

  • ソースのパーティション分割されたテーブルで、ターゲットテーブル作成モードをターゲットの削除に設定すると AWS DMSはターゲットにパーティションがないシンプルなテーブルを作成します。MySQLパーティション分割されたテーブルをターゲットのパーティション分割されたテーブルに移行するには、ターゲットMySQLデータベースでパーティション分割されたテーブルを事前に作成します。

  • ALTER TABLEtable_name ADD COLUMN column_name ステートメントを使用して、テーブルの先頭 (FIRST) または中間 (AFTER) に列を追加することはできません。列は常にテーブルの末尾に追加されます。

  • テーブル名に大文字と小文字が含まれていて、大文字と小文字が区別されるオペレーティングシステムにソースエンジンがホストされている場合、CDC はサポートされません。たとえば、Windows や HFS+ を使用する OS X などです。

  • 列の AUTO_INCREMENT 属性は、ターゲットデータベース列に移行されません。

  • バイナリログが標準のブロックストレージに保存されている場合の変更のキャプチャはサポートされていません。たとえば、バイナリログが Amazon S3 に保存されていると、CDC は機能しません。

  • AWS DMSは、デフォルトでInnoDBストレージエンジンを使用してターゲットテーブルを作成します。以外のストレージエンジンを使用する必要がある場合は、テーブルを手動で作成し、InnoDB何もしないモードを使用してそのテーブルに移行する必要があります。

  • Aurora MySQLリードレプリカを のソースとして使用することはできませんAWS DMS。

  • 全ロード時に MySQL 互換のソースが停止している場合、AWS DMSタスクはエラーで停止しません。タスクは正常に終了しますが、ターゲットとソースが同期しない可能性があります。この場合、タスクを再開するか、影響を受けたテーブルを再ロードしてください。

  • 列の値の一部で作成されたインデックスは移行されません。たとえば、インデックス CREATE INDEX first_ten_chars ON customer (name(10)) はターゲットに作成されません。

  • 場合によっては、タスクがレプリケートしないように設定されています LOBs (「SupportLobsfalse」がタスク設定でないか、Don't include LOB 列がタスクコンソールで選択されていない)。この場合、AWS DMS は MEDIUMBLOB、LONGBLOB、MEDIUMTEXT、および LONGTEXT 列をターゲットに移行しません。

    BLOB、TINYBLOB、TEXT、および TINYTEXT 列は影響を受けず、ターゲットに移行されます。

  • 一時データテーブルまたはシステムバージョンテーブルは、MariaDBソースおよびターゲットデータベースではサポートされません。

  • 2 つのAmazon RDSAuroraMySQLクラスター間で移行する場合、RDS Aurora MySQL ソースエンドポイントは、リードレプリカインスタンスではなく、読み取り/書き込みインスタンスである必要があります。

  • は現在、AWS DMS8.0.20 に導入された圧縮されたトランザクションログペイロードをサポートしていません。MySQL

のソースMySQLとして を使用する場合の追加の接続属性AWS DMS

追加の接続属性を使用してMySQLソースを設定できます。これらの設定は、ソースエンドポイントを作成するときに指定します。接続属性の設定が複数ある場合は、空白を追加せずにそれぞれをセミコロンで区切ります (例: oneSetting;thenAnother)。

次の表に、 を のソースAmazon RDSMySQLとして使用するときに使用できる追加の接続属性を示しますAWS DMS。

Name 説明
eventsPollInterval

データベースがアイドル状態のとき、バイナリログで新しい変更/イベントをチェックする頻度を指定します。

デフォルト値: 5

有効な値: 1–60

例:eventsPollInterval=5;

この例では、AWS DMS はバイナリログの変更を 5 秒ごと確認します。

serverTimezone

ソースMySQLデータベースのタイムゾーンを指定します。

例:serverTimezone=US/Pacific;

注意: タイムゾーンを一重引用符で囲まないでください。

afterConnectScript

AWS DMS がエンドポイントに接続した直後に実行するスクリプトを指定します。移行タスクは、SQL ステートメントが成功するか失敗するかにかかわらず、引き続き実行されます。

有効な値: セミコロンで区切った 1 つ以上の有効な SQL ステートメント。

例:afterConnectScript=ALTER SESSION SET CURRENT_SCHEMA = system;

CleanSrcMetadataOnMismatch

不一致が発生すると、レプリケーションインスタンスのテーブルメタデータ情報をクリーンアップして再作成します。たとえば、テーブルの DDL を変更すると、レプリケーションインスタンスにキャッシュされているテーブルに関する情報が変更される場合があります。Boolean.

デフォルト値: false

例:CleanSrcMetadataOnMismatch=false;

MySQL のソースデータ型

次の表に、 を使用する場合にサポートされるMySQLデータベースのソースデータ型AWS DMSと、 のデータ型からのデフォルトマッピングを示します。AWS DMS

ターゲットにマッピングされるデータ型を表示する方法については、使用しているターゲットエンドポイントのセクションを参照してください。

AWS DMS のデータ型の詳細については、「AWS Database Migration Service のデータ型」を参照してください。

MySQL データ型

AWS DMS データ型

INT

INT4

MEDIUMINT

INT4

BIGINT

INT8

TINYINT

INT1

DECIMAL(10)

NUMERIC (10,0)

BINARY

BYTES(1)

BIT

BOOLEAN

BIT(64)

BYTES(8)

BLOB

BYTES(66535)

LONGBLOB

BLOB

MEDIUMBLOB

BLOB

TINYBLOB

BYTES(255)

DATE

DATE

DATETIME

DATETIME

TIME

STRING

TIMESTAMP

DATETIME

YEAR

INT2

DOUBLE

REAL8

FLOAT

REAL(DOUBLE)

サポートされる FLOAT の範囲は、-1.79E+308 ~ -2.23E-308、0 および 2.23E-308 ~ 1.79E+308 です。

FLOAT 値がこの範囲に収まらない場合、FLOAT データ型を STRING データが型にマッピングします。

VARCHAR(45)

WSTRING (45)

VARCHAR(2000)

WSTRING (2000)

VARCHAR(4000)

WSTRING (4000)

VARBINARY (4000)

BYTES (4000)

VARBINARY (2000)

BYTES (2000)

CHAR

WSTRING

TEXT

WSTRING (65535)

JSON

NCLOB

LONGTEXT

NCLOB

MEDIUMTEXT

NCLOB

TINYTEXT

WSTRING (255)

GEOMETRY

BLOB

POINT

BLOB

LINESTRING

BLOB

POLYGON

BLOB

MULTIPOINT

BLOB

MULTILINESTRING

BLOB

MULTIPOLYGON

BLOB

GEOMETRYCOLLECTION

BLOB

注記

場合によっては、DATETIME データ型と TIMESTAMP データ型に「ゼロ」値 0000-00-00) を指定できます。その場合は、レプリケーションタスクのターゲットデータベースが DATETIME および TIMESTAMP データ型の「ゼロ」値をサポートしていることを確認します。サポートされていない場合、これらの値はターゲットで NULL として記録されます。

AWS DMS は、バージョン 3.3.1 以降の JSON データ型をサポートしています。

以下のデータ型は全ロードでのみサポートされています。MySQL

MySQL データ型

AWS DMS データ型

ENUM

STRING

SET

STRING