翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
のターゲットとしての My SQL互換データベースの使用 AWS Database Migration Service
が AWS DMS サポートするソースデータエンジンから AWS DMS、 を使用して任意の My SQL互換データベースにデータを移行できます。オンプレミスの My SQL互換データベースに移行する場合、 AWS DMS ではソースエンジンが AWS エコシステム内に存在する必要があります。エンジンは、Amazon 、Amazon AuroraRDS、Amazon S3 などの AWSマネージドサービス上に配置できます。または、エンジンは Amazon のセルフマネージド型データベース上にある場合がありますEC2。
を使用してSSL、My SQL互換エンドポイントとレプリケーションインスタンス間の接続を暗号化できます。My 互換エンドポイントSSLで を使用する方法の詳細については、SQL「」を参照してくださいSSL で を使用する AWS Database Migration Service。
がターゲットとして AWS DMS サポートする MySQL のバージョンについては、「」を参照してくださいのターゲット AWS DMS。
次の My SQL互換データベースをターゲットとして使用できます AWS DMS。
-
マイSQLコミュニティエディション
-
StandardSQL Edition
-
EnterpriseSQL Edition
-
MySQL Cluster キャリアグレードエディション
-
MariaDB Community Edition
-
MariaDB Enterprise Edition
-
MariaDB Column Store
-
Amazon Aurora MySQL
注記
ソースストレージエンジン (MyISAM、 など) AWS DMS に関係なくMEMORY、 はデフォルトで InnoDB テーブルとして My SQL互換ターゲットテーブルを作成します。
InnoDB 以外のストレージエンジンにテーブルが必要な場合は、My SQL互換ターゲットにテーブルを手動で作成し、Do nothing オプションを使用してテーブルを移行できます。詳細については、「全ロードタスク設定」を参照してください。
のターゲットとして My SQL互換データベースを使用する方法の詳細については AWS DMS、以下のセクションを参照してください。
トピック
のターゲットとしての My SQL互換データベースの使用 AWS Database Migration Service
のターゲットとして My SQL互換データベースの使用を開始する前に AWS DMS、次の前提条件を満たしていることを確認してください。
-
My SQL互換データベースへの AWS DMS 読み取り/書き込み権限を持つユーザーアカウントを に提供します。必要なアクセス権限を作成するには、以下のコマンドを実行します。
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>'@'%';
-
全ロード移行フェーズ中、ターゲットテーブルで外部キーを無効にする必要があります。全ロード中に My SQL互換データベースの外部キーチェックを無効にするには、ターゲットエンドポイントの AWS DMS コンソールの追加接続属性セクションに次のコマンドを追加します。
Initstmt=SET FOREIGN_KEY_CHECKS=0;
-
データベースパラメータ
local_infile = 1
を設定して、 AWS DMS がターゲットデータベースにデータをロードできるようにします。 -
マイSQL固有の移行前評価を使用する場合は、次の権限を付与します。
grant select on mysql.user to <dms_user>; grant select on mysql.db to <dms_user>; grant select on mysql.tables_priv to <dms_user>; grant select on mysql.role_edges to <dms_user> #only for MySQL version 8.0.11 and higher
のターゲットとして My SQL互換データベースを使用する場合の制限 AWS Database Migration Service
マイSQLデータベースをターゲットとして使用する場合、 AWS DMS は以下をサポートしていません。
-
データ定義言語 (DDL) DROP ステートメント TRUNCATE PARTITION、TABLE、および RENAME TABLE。
-
ALTER TABLE
ステートメントを使用して、テーブルの先頭または中間に列を追加します。table_name
ADD COLUMNcolumn_name
-
全ロードタスクで My SQL互換ターゲットにデータをロードする場合、 AWS DMS はタスクログの制約によって発生したエラーを報告しません。これにより、キーエラーが重複したり、レコード数が一致しない可能性があります。これは、
LOAD DATA
コマンドでローカルSQLデータを処理する方法が原因で発生します。フルロードフェーズ時は、必ず次を実行します。Constraint を無効にする
AWS DMS 検証を使用して、データが一貫していることを確認します。
-
列の値を既存の値に更新すると、My SQL互換データベースは
0 rows affected
警告を返します。この動作は技術的にはエラーではありませんが、他のデータベースエンジンによって状況が処理される方法とは異なります。たとえば、Oracle は 1 行の更新を実行します。My SQL互換データベースの場合、 は 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 Serverless は Amazon Aurora バージョン 2 のターゲットとして利用でき、MySQL バージョン 5.7 と互換性があります。(AuroraSQL Serverless と My 5.7 の互換性を使用するには、Aurora MySQL バージョン 2.07.1 を選択します)。Aurora Serverless の詳細については、「Amazon Aurora ユーザーガイド」の「Aurora Serverless v2 を使用する」を参照してください。
AWS DMS は、インスタンスが書き込み可能モード、つまり RDS
read_only
およびinnodb_read_only
パラメータが0
または に設定されていない限り、Aurora または Amazon のリーダーエンドポイントの使用をサポートしていませんOFF
。Amazon RDSと Aurora をターゲットとして使用する方法の詳細については、以下を参照してください。
のターゲットとして My SQL互換データベースを使用する場合のエンドポイント設定 AWS DMS
エンドポイント設定を使用して、追加の接続属性の使用と同様に、My SQL互換ターゲットデータベースを設定できます。 AWS DMS コンソールを使用するか、 の create-endpoint
コマンドを使用してAWS CLI、 --my-sql-settings '{"
JSON構文でターゲットエンドポイントを作成するときに設定を指定します。EndpointSetting"
: "value"
, ...
}'
次の表は、ターゲットとして MySQL で使用できるエンドポイント設定を示しています。
名前 | 説明 |
---|---|
|
ソーステーブルを移行するターゲット上の場所 (1 つのデータベースか複数のデータベースか) を指定します。を指定する場合は デフォルト値: 有効な値: { 例: |
|
My SQL互換ターゲットデータベースにデータをロードする際のパフォーマンスが向上しました。My SQL互換ターゲットデータベースにデータをロードするために使用するスレッドの数を指定します。スレッドごとに別個の接続が必要になるため、スレッド数を大きく設定するとデータベースのパフォーマンスに悪影響を生じる場合があります。 デフォルト値: 1 有効な値: 1〜5 例: |
|
AWS DMS がエンドポイントに接続した直後に実行するスクリプトを指定します。 例えば、My SQL互換ターゲットが受信したステートメントをデータベースのデフォルトのコンパイル済み文字セットである latin1 文字セットに変換するように指定できます。このパラメータは通常、UTF8クライアントから変換する際のパフォーマンスを向上させます。 例: |
|
My 互換データベースへのデータ転送に使用される .csv ファイルの最大サイズ (KB SQL単位) を指定します。 デフォルト値: 32768 KB (32 MB) 有効な値: 1~1,048,576
|
追加の接続属性を使用して、My SQL互換ターゲットデータベースを設定することもできます。
次の表は、ターゲットとして MySQL で使用できる追加の接続属性を示しています。
名前 | 説明 |
---|---|
|
外部キーチェックを無効にします。 例: |
|
ターゲットの My SQL互換データベースのタイムゾーンを指定します。 デフォルト値: UTC 有効な値: ターゲット MySQL データベースで使用できるタイムゾーン名。 例: |
別の方法として、--my-sql-settings
コマンドの AfterConnectScript
パラメータを使用して外部キーチェックを無効にし、データベースのタイムゾーンを指定することもできる。
My のターゲットデータ型SQL
次の表は、 の使用時にサポートされる MySQL データベースターゲットデータ型 AWS DMS と AWS DMS 、データ型からのデフォルトのマッピングを示しています。
AWS DMS データ型の詳細については、「」を参照してくださいAWS Database Migration Service のデータ型。
AWS DMS データ型 |
データSQL型 |
---|---|
BOOLEAN |
BOOLEAN |
BYTES |
長さが 1~65,535 の場合は、 VARBINARY (長さ) を使用します。 長さが 65,536~2,147,483,647 の場合は、 を使用しますLONGLOB。 |
DATE |
DATE |
TIME |
TIME |
TIMESTAMP |
「スケールが => 0 および =< 6 の場合: DATETIME (スケール) scale が => 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 の場合は、 の ucs2 LONGTEXTで CHARACTER を使用しますSET。 長さが 0 の場合は、 の ucs2 で LONGTEXT (フルLOBサポート) CHARACTER を使用しますSET。 |
CLOB |
長さが 1~65,535 の場合は、 を使用しますTEXT。 長さが 65,536~2147483647 の場合は、 を使用しますLONGTEXT。 長さが 0 の場合は、 を使用します LONGTEXT (フルLOBサポート)。 |