「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
のソースとしての MySQL 互換データベースの使用AWS DMS
を使用して、任意の MySQL 互換データベース (MySQL、MariaDB、または Amazon Aurora MySQL) からデータを移行できます。AWS Database Migration ServiceMySQL バージョン 5.5、5.6、5.7、8.0 MariaDB バージョン 10.0.24 から 10.0.28、10.1、10.2、10.3 から 10.0.4、および Amazon Aurora MySQL がオンプレミスでサポートされています。
ソースとして MySQL 8.0 のサポートは、トランザクションペイロードが圧縮されている場合を除き、AWS DMS バージョン 3.4.0 以降で使用できます。
SSL を使用して、MySQL 互換のエンドポイントとレプリケーションインスタンスとの接続を暗号化できます。と互換性のあるエンドポイントで SSL を使用する方法の詳細については、「MySQL」を参照してください。 での SSL の使用AWS Database Migration Service
以降のセクションでは、「セルフマネージド型」という用語は、オンプレミスまたは にインストールされているあらゆるデータベースに当てはまります。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 RDS MySQL または MariaDB DB インスタンスにデータをインポートできます。これを行うには、mysqldumpmysqldump
または MySQL サーバー間でデータを転送するためによく使用されます。MariaDBおよび MySQL クライアントソフトウェアに含まれています。MariaDB
または MySQL の Amazon RDS データベースを MySQL にインポートする方法の詳細については、「MySQL と互換性がある Amazon Aurora DB インスタンスへのデータのインポート」および「MySQL または DB から または MySQL DB へのデータのインポートMariaDB」を参照してください。Amazon RDSMySQLMariaDB
を使用して AWS DMS から MySQL にデータを移行するMySQL
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 |
のソースとしての任意の MySQL 互換データベースの使用AWS 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 のソースとして使用できます。
-
MySQL Community Edition
-
MySQL Standard Edition
-
MySQL Enterprise Edition
-
MySQL クラスターキャリアグレードエディション
-
MariaDB Community Edition
-
MariaDB Enterprise Edition
-
MariaDB 列ストア
CDC を使用するには、必ずバイナリログ記録を有効にしてください。バイナリロギングを有効にするには、MySQL の my.ini
(Windows) または my.cnf
(UNIX) ファイルで以下のパラメータを設定する必要があります。
パラメータ |
値 |
---|---|
|
このパラメータは、1 以上の値に設定します。 |
|
パスをバイナリログファイル ( |
|
このパラメータは に設定します。 |
|
このパラメータは、1 以上の値に設定します。ディスク容量の使いすぎを防ぐため、デフォルト値の 0 は使用しないことをお勧めします。 |
|
このパラメータは に設定します。 |
|
このパラメータは に設定します。 |
|
または |
ソースで NDB (クラスター化) データベースエンジンを使用している場合、そのストレージエンジンを使用するテーブルで CDC を有効にするには以下のパラメータを設定する必要があります。これらの変更を
MySQL の my.ini
(Windows) または my.cnf
(UNIX) ファイルに追加します。
パラメータ |
値 |
---|---|
|
このパラメータは |
|
このパラメータは |
|
このパラメータは |
のソースとしての AWS マネージド MySQL 互換データベースの使用AWS DMS
以下の AWS が管理する MySQL 互換データベースを AWS DMS のソースとして使用できます。
-
MySQL Community Edition
-
MariaDB Community Edition
-
MySQL と互換性がある Amazon Aurora
AWS が管理する MySQL 互換データベースを AWS DMS のソースとして使用する場合は、次の前提条件を満たしていることを確認してください。
-
自動バックアップを有効化します。自動バックアップの設定の詳細については、https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html の「自動バックアップの使用Amazon RDS ユーザーガイド」を参照してください。
-
CDC を使用する予定がある場合は、バイナリログ記録を有効にします。データベースのバイナリログ記録の設定の詳細については、Amazon RDSMySQL の「自動バックアップの使用」を参照してください。Amazon RDS ユーザーガイド
-
バイナリログが で利用できることを確認します。AWS DMS. AWS が管理する MySQL 互換データベースはできるだけ早くバイナリログを消去するため、ログが利用可能な状態で保持される時間を長くする必要があります。たとえば、ログ保持を 24 時間に伸ばすには、次のコマンドを実行します。
call mysql.rds_set_configuration('binlog retention hours', 24);
-
パラメータを
binlog_format
に設定します。"ROW"
注記 の場合、レプリケーションのために MariaDB パラメータが
binlog_format
に切り替えられた場合でも、後続のバイナリログはROW
形式で作成されます。MIXED
これにより、DMS が変更データキャプチャを実行できなくなります。したがって、binlog_format
の MariaDB パラメータを切り替えるときに、再起動を行うか、レプリケーションタスクを停止します。 -
パラメータを
binlog_checksum
に設定します。"NONE"
Amazon RDS でのパラメータの設定の詳細については、MySQL の「自動バックアップの使用」を参照してください。Amazon RDS ユーザーガイド -
Amazon RDS または MySQL Amazon RDS リードレプリカをソースとして使用している場合は、リードレプリカでバックアップを有効にします。MariaDB
データベースを MySQL のソースとして使用する場合の制限AWS DMS
データベースをソースとして使用する場合は、次の点を考慮してください。MySQL
-
変更データキャプチャ (CDC) は、Amazon RDS MySQL 5.5 以下ではサポートされていません。Amazon RDS の場合、CDC を有効にするには、バージョン 5.6 または 5.7 を使用する必要があります。MySQLCDC は、セルフマネージド MySQL 5.5 ソースでサポートされています。
-
CDC の場合は、
CREATE TABLE
、DROP TABLE
、RENAME TABLE
、ADD COLUMN
、DROP COLUMN
、列のデータ型の変更、renaming a column
がサポートされています。ただし、列のデフォルト値、列の null 機能、文字セットなどの他の属性に対する更新はサポートされていません。 -
データ定義言語 (DDL) ステートメントの DROP TABLE および RENAME TABLE はサポートされません。さらに、パーティション分割されたテーブルのすべての DDL ステートメントはサポートされません。
-
ソースのパーティション分割されたテーブルで、[ターゲットテーブル作成モード] を [ターゲット上のテーブルを削除] に設定すると、AWS DMS は MySQL ターゲットにパーティションがないシンプルなテーブルを作成します。パーティション分割されたテーブルをターゲットのパーティション分割されたテーブルに移行するには、ターゲット MySQL データベースでパーティション分割されたテーブルを事前に作成します。
-
ALTER TABLE
ステートメントを使用して、テーブルの先頭 (FIRST) または中間 (AFTER) に列を追加することはできません。列は常にテーブルの末尾に追加されます。table_name
ADD COLUMNcolumn_name
-
テーブル名に大文字と小文字が含まれていて、大文字と小文字が区別されるオペレーティングシステムにソースエンジンがホストされている場合、CDC はサポートされません。たとえば、Windows や HFS+ を使用する OS X などです。
-
列の AUTO_INCREMENT 属性は、ターゲットデータベース列に移行されません。
-
バイナリログが標準のブロックストレージに保存されている場合の変更のキャプチャはサポートされていません。たとえば、バイナリログが に保存されていると、CDC は機能しません。Amazon S3.
-
AWS DMS は、デフォルトで InnoDB ストレージエンジンを使用してターゲットテーブルを作成します。以外のストレージエンジンを使用する必要がある場合は、テーブルを手動で作成し、InnoDB何もしないモードを使用してそのテーブルに移行する必要があります。
-
DMS 移行タスクモードが [MySQLMigrate existing data (既存データの移行)AWS DMS] 全ロードのみでないと、Aurora リードレプリカを — のソースとして使用することはできません。
-
全ロード時に MySQL 互換ソースが停止している場合、AWS DMS タスクはエラーで停止しません。タスクは正常に終了しますが、ターゲットとソースが同期しない可能性があります。この場合、タスクを再開するか、影響を受けたテーブルを再ロードしてください。
-
列の値の一部で作成されたインデックスは移行されません。たとえば、インデックス CREATE INDEX first_ten_chars ON customer (name(10)) はターゲットに作成されません。
-
場合によっては、タスクが LOBs をレプリケートしないように設定されています (「SupportLobs」がタスク設定で false になっているか、タスクコンソールで [Don't include LOB columns (LOB 列を含めない)] が選択されている)。この場合、AWS DMS は MEDIUMBLOB、LONGBLOB、MEDIUMTEXT、および LONGTEXT 列をターゲットに移行しません。
BLOB、TINYBLOB、TEXT、および TINYTEXT 列は影響を受けず、ターゲットに移行されます。
-
一時データテーブルまたはシステムでバージョン管理されたテーブルは、MariaDB ソースおよびターゲットデータベースではサポートされていません。
-
2 つの Amazon RDS Aurora MySQL クラスター間で移行する場合、RDS Aurora MySQL ソースエンドポイントは、リードレプリカインスタンスではなく、読み取り/書き込みインスタンスである必要があります。
-
AWS DMS は現在、MySQL 8.0.20 で導入された圧縮されたトランザクションログペイロードをサポートしていません。
のソースとして MySQL を使用する場合の追加の接続属性AWS DMS
追加の接続属性を使用して MySQL ソースを設定できます。これらの設定は、ソースエンドポイントを作成するときに指定します。接続属性の設定が複数ある場合は、空白を追加せずにそれぞれをセミコロンで区切ります
(例: oneSetting;thenAnother
).
次の表に、Amazon RDS MySQL を AWS DMS のソースとして使用するときに使用できる追加の接続属性を示します。
名前 | 説明 |
---|---|
eventsPollInterval |
データベースがアイドル状態のとき、バイナリログで新しい変更/イベントをチェックする頻度を指定します。 デフォルト値: 5 有効な値: 1 – 60 例: この例では、AWS DMS はバイナリログの変更を 5 秒ごと確認します。 |
serverTimezone |
ソース MySQL データベースのタイムゾーンを指定します。 例: タイムゾーンデータを一重引用符で囲まないでください。 |
afterConnectScript |
AWS DMS がエンドポイントに接続した直後に実行するスクリプトを指定します。移行タスクは、SQL ステートメントが成功するか失敗するかにかかわらず、引き続き実行されます。 有効な値: セミコロンで区切られた 1 つ以上の有効な SQL ステートメント。 例: |
CleanSrcMetadataOnMismatch
|
不一致が発生すると、レプリケーションインスタンスのテーブルメタデータ情報をクリーンアップして再作成します。たとえば、テーブルの DDL を変更すると、レプリケーションインスタンスにキャッシュされているテーブルに関する情報が変更される場合があります。Boolean. デフォルト値: 例: |
のソースデータ型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 |
場合によっては、値が「ゼロ」(つまり、0000-00-00) の DATETIME データ型と TIMESTAMP データ型を指定できます。その場合は、レプリケーションタスクのターゲットデータベースが DATETIME および TIMESTAMP データ型の「ゼロ」値をサポートしていることを確認します。サポートされていない場合、これらの値はターゲットで NULL として記録されます。
AWS DMS は、バージョン 3.3.1 以降の JSON データ型をサポートしています。
以下の MySQL データ型は全ロードでのみサポートされています。
MySQL のデータ型 |
AWS DMS データ型 |
---|---|
ENUM |
STRING |
SET |
STRING |