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

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

のターゲットとしての 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 COLUMN column_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 は、インスタンスが書き込み可能モード、つまり RDSread_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 '{"EndpointSetting": "value", ...}'JSON構文でターゲットエンドポイントを作成するときに設定を指定します。

次の表は、ターゲットとして MySQL で使用できるエンドポイント設定を示しています。

名前 説明

TargetDbType

ソーステーブルを移行するターゲット上の場所 (1 つのデータベースか複数のデータベースか) を指定します。を指定する場合はSPECIFIC_DATABASE、 AWS CLI または を使用するときにデータベース名を指定する必要があります AWS Management Console。

デフォルト値: MULTIPLE_DATABASES

有効な値: {SPECIFIC_DATABASE, MULTIPLE_DATABASES}

例: --my-sql-settings '{"TargetDbType": "MULTIPLE_DATABASES"}'

ParallelLoadThreads

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

デフォルト値: 1

有効な値: 1〜5

例: --my-sql-settings '{"ParallelLoadThreads": 1}'

AfterConnectScript

AWS DMS がエンドポイントに接続した直後に実行するスクリプトを指定します。

例えば、My SQL互換ターゲットが受信したステートメントをデータベースのデフォルトのコンパイル済み文字セットである latin1 文字セットに変換するように指定できます。このパラメータは通常、UTF8クライアントから変換する際のパフォーマンスを向上させます。

例: --my-sql-settings '{"AfterConnectScript": "SET character_set_connection='latin1'"}'

MaxFileSize

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

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

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

--my-sql-settings '{"MaxFileSize": 512}'

追加の接続属性を使用して、My SQL互換ターゲットデータベースを設定することもできます。

次の表は、ターゲットとして MySQL で使用できる追加の接続属性を示しています。

名前 説明

Initstmt=SET FOREIGN_KEY_CHECKS=0;

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

例: --extra-connection-attributes "Initstmt=SET FOREIGN_KEY_CHECKS=0;"

Initstmt=SET time_zone

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

デフォルト値: UTC

有効な値: ターゲット MySQL データベースで使用できるタイムゾーン名。

例: --extra-connection-attributes "Initstmt=SET time_zone=US/Pacific;"

別の方法として、--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サポート)。