のターゲットとしての MySQL 互換データベースの使用AWS Database Migration Service - AWS Database Migration Service

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

のターゲットとしての MySQL 互換データベースの使用AWS Database Migration Service

を使用して、MySQL がサポートするソースデータエンジンのいずれかから、AWS DMS 互換のデータベースにデータを移行できます。AWS DMSオンプレミスの MySQL 互換データベースに移行する場合、AWS DMS では、ソースエンジンが AWS エコシステム内に存在することが必要です。エンジンは、Amazon RDS、Amazon Aurora、Amazon S3 などの AWS マネージド型サービス上に存在できます。または、エンジンは Amazon EC2 の自己管理型データベース上に存在していてもかまいません。

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

AWS DMS は、バージョン 5.5、5.6、5.7、8.0 の MySQL と Aurora MySQL をサポートしています。さらに、AWS DMS は MariaDB バージョン 10.0.24 から 10.0.28、10.1、10.2、10.3、0.4 をサポートしています。

注記

ターゲットとして MySQL 8.0 のサポートは、AWS DMS バージョン 3.3.1 以降で使用できます。

次の MySQL 互換データベースを AWS DMS のターゲットとして使用できます。

  • MySQL Community Edition

  • MySQL Standard Edition

  • MySQL Enterprise Edition

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

  • MariaDB Community Edition

  • MariaDB Enterprise Edition

  • MariaDB 列ストア

  • Amazon Aurora MySQL

注記

ソースストレージエンジン (MyISAM、MEMORY など) にかかわらず、AWS DMS はデフォルトで MySQL テーブルとして InnoDB 互換のターゲットテーブルを作成します。

以外のストレージエンジンのテーブルが必要な場合は、InnoDB 互換のターゲットでテーブルを手動で作成し、[MySQL何もしない] オプションを使用してテーブルを移行できます。詳細については、「全ロードタスク設定」を参照してください。

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

のターゲットとしての MySQL 互換データベースの使用AWS Database Migration Service

のターゲットとして MySQL 互換データベースの使用を開始する前に、次の前提条件を満たしていることを確認してください。AWS DMS

  • 互換データベースに対して読み取り/書き込み権限を持つユーザーアカウントを AWS DMS に指定します。MySQL必要なアクセス権限を作成するには、以下のコマンドを実行します。

    CREATE USER '<user acct>'@'%' IDENTIFIED BY '<user password>'; GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON <schema>.* TO '<user acct>'@'%'; GRANT ALL PRIVILEGES ON awsdms_control.* TO '<user acct>'@'%';
  • 全ロード移行フェーズ中、ターゲットテーブルで外部キーを無効にする必要があります。全ロード中に MySQL 互換データベースで外部キーチェックを無効にするには、ターゲットエンドポイントの [Advanced (詳細)] セクションで [Extra Connection Attributes (追加の接続属性)] に次のコマンドを追加します。

    initstmt=SET FOREIGN_KEY_CHECKS=0
  • データベースパラメータ local_infile = 1 を設定して、AWS DMS がターゲットデータベースにデータをロードできるようにします。

のターゲットとして MySQL 互換データベースを使用する場合の制限AWS Database Migration Service

データベースをターゲットとして使用する場合、MySQL では以下のものがサポートされません。AWS DMS

  • データ定義言語 (DDL) ステートメント: TRUNCATE PARTITION、DROP TABLE、RENAME TABLE。

  • ALTER TABLE table_name ADD COLUMN column_name ステートメントを使用して、テーブルの先頭または中間に列を追加します。

  • ソーステーブルの LOB 列のみが更新されると、AWS DMS は対応するターゲット列を更新しません。ターゲット LOB は、少なくとも他の 1 つの列が同じトランザクションで更新された場合にのみ更新されます。

  • 全ロードタスク時に MySQL 互換ターゲットにデータをロードする場合、AWS DMS はタスクログで重複するキーエラーを報告しません。

  • 列の値を既存の値に更新すると、MySQL 互換データベースにより 0 rows affected 警告が返されます。この動作は技術的にはエラーではありませんが、他のデータベースエンジンによって状況が処理される方法とは異なります。たとえば、Oracle は 1 行の更新を実行します。互換データベースの場合、MySQL は awsdms_apply_exceptions 制御テーブルにエントリを生成し、以下の警告をログに記録します。AWS DMS

    Some changes from the source database had no impact when applied to the target database. See awsdms_apply_exceptions table for details.
  • Aurora サーバーレスは、Amazon Aurora バージョン 5.6 と互換性のある MySQL バージョン 1 のターゲットとして使用できます。Auroraサーバーレスは、Amazon Aurora バージョン 2 のターゲットとして MySQL バージョン 5.7 との互換性があります。(Aurora 5.7 との互換性で MySQL サーバーレスを使用できるようにするには、Aurora MySQL バージョン 2.07.1 を選択します)。 サーバーレスの詳細については、Aurora の「Amazon Aurora サーバーレスの使用」を参照してください。Amazon Aurora ユーザーガイド

のターゲットとして MySQL 互換データベースを使用する場合の追加の接続属性AWS DMS

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

次の表に、MySQL の AWS DMS 互換ターゲットを作成するときに使用できる、追加の構成設定を示します。

名前 説明

targetDbType

ソーステーブルを移行するターゲット上の場所 (1 つのデータベースか複数のデータベースか) を指定します。

デフォルト値: MULTIPLE_DATABASES

有効な値: {SPECIFIC_DATABASEMULTIPLE_DATABASES}

例: targetDbType=MULTIPLE_DATABASES

parallelLoadThreads

互換ターゲットデータベースにデータをロードする際のパフォーマンスが向上します。MySQL互換ターゲットデータベースにデータをロードするために使用するスレッドの数を指定します。MySQLスレッドごとに別個の接続が必要になるため、スレッド数を大きく設定するとデータベースのパフォーマンスに悪影響を生じる場合があります。

デフォルト値: 1

有効な値: 1–5

例: parallelLoadThreads=1

initstmt=SET FOREIGN_KEY_CHECKS=0

外部キーチェックを無効にします。

initstmt=SET time_zone

ターゲット MySQL 互換データベースのタイムゾーンを指定します。

デフォルト値: UTC

有効な値: 使用するタイムゾーンの 3〜4 文字の省略形。有効な値は、ターゲット MySQL 互換データベースをホストしているオペレーティングシステムにおけるタイムゾーンの標準の省略形です。

例: initstmt=SET time_zone=UTC

afterConnectScript=SET character_set_connection='latin1'

互換ターゲットが受信したステートメントを latin1 文字セット (データベースのデフォルトでコンパイルされる文字セット) に変換することを指定します。MySQLこのパラメータでは通常、UTF8 クライアントからの変換時にパフォーマンスが向上します。

maxFileSize

互換データベースへのデータ転送に使用される .csv ファイルの最大サイズ (KB 単位) を指定します。MySQL

デフォルト値: 32,768 KB (32 MB)

有効な値: 1–1,048,576

例: maxFileSize=512

CleanSrcMetadataOnMismatch

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

デフォルト値: false

例: CleanSrcMetadataOnMismatch=false

MySQL のターゲットデータ型

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

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

AWS DMS データ型

MySQL データ型

BOOLEAN

BOOLEAN

BYTES

長さが 1 〜 65,535 の場合、VARBINARY (長さ) を使用します。

長さが 65,536 〜 2,147,483,647 の場合、LONGLOB を使用します。

DATE

DATE

TIME

TIME

TIMESTAMP

"スケールが 0 以上、6 以下の場合: DATETIME (スケール)

スケールが 7 以上、9 以下の場合 VARCHAR(37)"

INT1

TINYINT

INT2

SMALLINT

INT4

INTEGER

INT8

BIGINT

NUMERIC

DECIMAL (p,s)

REAL4

FLOAT

REAL8

DOUBLE PRECISION

STRING

長さが 1 ~ 21,845 の場合、VARCHAR (長さ) を使用します。

長さが 21,846 ~ 2,147,483,647 の場合、LONGTEXT を使用します。

UINT1

UNSIGNED TINYINT

UINT2

UNSIGNED SMALLINT

UINT4

UNSIGNED INTEGER

UINT8

UNSIGNED BIGINT

WSTRING

長さが 1 ~ 32,767 の場合、VARCHAR (長さ) を使用します。

長さが 32,768 ~ 2,147,483,647 の場合、LONGTEXT を使用します。

BLOB

長さが 1 ~ 65,535 の場合、BLOB を使用します。

長さが 65,536 ~ 2,147,483,647 の場合、LONGBLOB を使用します。

長さが 0 の場合、LONGBLOB (LOB を完全にサポート) を使用します。

NCLOB

長さが 1 ~ 65,535 の場合、TEXT を使用します。

長さが 65,536 ~ 2,147,483,647 の場合、CHARACTER SET が ucs2 の LONGTEXT を使用します。

長さが 0 の場合、ucs2 が CHARACTER SET の LONGTEXT (LOB を完全にサポート) を使用します。

CLOB

長さが 1 ~ 65,535 の場合、TEXT を使用します。

長さが 65,536 ~ 2147483647 の場合、LONGTEXT を使用します。

長さが 0 の場合、LONGTEXT (LOB を完全にサポート) を使用します。