MariaDB の評価 - AWSデータベース移行サービス
server_id がソースデータベースで 1 以上に設定されているかどうかを検証するソースデータベースにバイナリログの自動削除が設定されているかどうかを検証するBatchApplyEnabled が true に設定されている場合、制限付き LOB モードのみを使用していることを検証するバイナリログトランザクション圧縮が無効になっているかどうかを検証するDMS ユーザーにソースデータベースの REPLICATION CLIENT および REPLICATION SLAVE 権限があるかどうかを検証するDMS ユーザーにソースデータベーステーブルの SELECT アクセス許可があるかどうかを検証するDMS ユーザーにターゲットとしての MySQL 互換データベースに必要な権限があるかどうかを検証するテーブルが Innodb以外のストレージエンジンを使用しているかどうかを検証する移行に使用されるテーブルで自動増分が有効になっているかどうかを検証するデータベースのバイナリログ形式が DMS CDC をサポートするように ROW に設定されているかどうかを検証するデータベースのバイナリログイメージが DMS CDC をサポートするように FULL に設定されているかどうかを検証するソースデータベースが MariaDB Read-Replica であるかどうかを検証するテーブルにパーティションがあるかどうかを検証し、フルロードタスク設定の TRUNCATE_BEFORE_LOAD または DO_NOTHING を推奨するDMS がデータベースバージョンをサポートしているかどうかを検証するターゲットデータベースで local_infile が 1 に設定されているかどうかを検証します。ターゲットデータベースに外部キーを持つテーブルがあるかどうかを検証するタスクの範囲にあるソーステーブルにカスケード制約があるかどうかを検証するタスクの範囲にあるソーステーブルに生成された列があるかどうかを検証するタイムアウト値が MariaDB ソースに適しているかどうかを検証するタイムアウト値が MariaDB ターゲットに適しているかどうかを検証するmax_statement_time データベースパラメータの検証プライマリキーまたは一意のインデックスがバッチ適用のターゲットに存在するかどうかを検証するプライマリキーと一意のインデックスの両方がバッチ適用のターゲットに存在するかどうかを検証するフルロード中にターゲットデータベースでセカンダリインデックスが有効になっているかどうかを検証するDMS 検証が有効になっている場合にテーブルにプライマリキーまたは一意のインデックスがあるかどうかを検証するMaxFullLoadSubTasks 設定の使用に関する推奨事項数字ランダム化の変換ルールを確認する数字マスクの変換ルールを確認するハッシュマスクの変換ルールを確認するデータ検証タスク設定とデータマスキングの数字ランダム化が同時に有効になっていないことを確認するデータ検証タスク設定とデータマスキングのハッシュマスクが同時に有効になっていないことを確認するデータ検証タスク設定とデータマスキングの数字マスクが同時に有効になっていないことを確認するバイナリログの保持時間が正しく設定されているかどうかを確認するソーステーブルに非表示の列がないかどうかを確認する選択したオブジェクトが少なくとも 1 つソースデータベースに存在することを検証します。パーティションテーブルで skipTableSuspensionForPartitionDdlが有効になっていることを検証するセカンダリ制約とインデックス (非プライマリ) がソースデータベースに存在することを確認する

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

MariaDB の評価

このセクションでは、MariaDB のソースエンドポイントを使用する移行タスクの個別の移行前評価について説明します。

AWS DMSAPI を使用して個々の移行前評価を作成するには、StartReplicationTaskAssessmentRun アクションの Includeパラメータにリストされている API キーを使用します。

トピック

server_id がソースデータベースで 1 以上に設定されているかどうかを検証する

API キー: mariadb-check-server-id

この移行前評価では、CDC 移行タイプのソースデータベースで server_id サーバー変数が 1 以上に設定されているかどうかを検証します。

MariaDB エンドポイントの制限事項に関する詳細については、「Using a self-managed MySQL-compatible database as a source for AWS DMS」を参照してください。

ソースデータベースにバイナリログの自動削除が設定されているかどうかを検証する

API キー: mariadb-check-expire-logs-days

この移行前評価では、データベースがバイナリログを自動的に削除するように設定されているかどうかを検証します。移行中ディスク容量の使いすぎを防ぐには、EXPIRE_LOGS_DAYS または BINLOG_EXPIRE_LOGS_SECONDS グローバルシステム変数の値が 0 より大きい必要があります。

MariaDB エンドポイントの制限事項に関する詳細については、「Using a self-managed MySQL-compatible database as a source for AWS DMS」を参照してください。

BatchApplyEnabled が true に設定されている場合、制限付き LOB モードのみを使用していることを検証する

API キー: mariadb-batch-apply-lob-mode

LOB 列がレプリケーションに含まれる場合、制限付き LOB モードのみで BatchApplyEnabled を使用できます。LOB モードの他のオプションを使用すると、バッチは失敗し、 AWS DMSは変更を 1 つずつ処理します。これらのテーブルを独自のタスクに移動し、代わりにトランザクション適用モードを使用することをお勧めします。

BatchApplyEnabled 設定に関する詳細については、「DMS バッチ適用機能を使用して CDC レプリケーションパフォーマンスを向上させるにはどうすればよいですか?」を参照してください。

バイナリログトランザクション圧縮が無効になっているかどうかを検証する

API キー: mariadb-check-binlog-compression

この移行前評価では、バイナリログトランザクション圧縮が無効になっているかどうかを検証します。バイナリログトランザクション圧縮AWS DMSはサポートされていません。

詳細については、「Limitations on using a MySQL database as a source for AWS DMS」を参照してください。

DMS ユーザーにソースデータベースの REPLICATION CLIENT および REPLICATION SLAVE 権限があるかどうかを検証する

API キー: mariadb-check-replication-privileges

この移行前評価では、DMS タスクの移行タイプが CDC またはフルロード + CDC の場合、ソースエンドポイント接続設定で指定された DMS ユーザーにソースデータベースの REPLICATION CLIENT および REPLICATION SLAVE の権限があるかどうかを検証します。

詳細については、「Using any MySQL-compatible database as a source for AWS DMS」を参照してください。

DMS ユーザーにソースデータベーステーブルの SELECT アクセス許可があるかどうかを検証する

API キー: mariadb-check-select-privileges

この移行前評価では、ソースエンドポイント接続設定で指定された DMS ユーザーにソースデータベーステーブルの SELECT アクセス許可があるかどうかを検証します。

詳細については、「Using any MySQL-compatible database as a source for AWS DMS」を参照してください。

DMS ユーザーにターゲットとしての MySQL 互換データベースに必要な権限があるかどうかを検証する

API キー: mariadb-check-target-privileges

この移行前評価では、ターゲットエンドポイント接続設定で指定された DMS ユーザーにターゲットとしての MySQL 互換データベースに必要な権限があるかどうかを検証します。

詳細については、「Using any MySQL-compatible database as a source for AWS DMS」を参照してください。

テーブルが Innodb以外のストレージエンジンを使用しているかどうかを検証する

API キー: mariadb-check-table-storage-engine

この移行前評価では、ソースの MariaDB データベース内のテーブルで使用されるストレージエンジンが Innodb 以外のエンジンであるかどうかを検証します。DMS は、デフォルトで InnoDB ストレージエンジンを使用してターゲットテーブルを作成します。InnoDB 以外のストレージエンジンを使用する必要がある場合、手動でターゲットデータベースにテーブルを作成し、TRUNCATE_BEFORE_LOAD または DO_NOTHING をフルロードタスク設定として使用するように DMS タスクを設定する必要があります。フルロードタスクの設定の詳細については、「全ロードタスク設定」を参照してください。

MariaDB エンドポイントの制限事項の詳細については、「のソースとしての MySQL データベースの使用に関する制限AWS DMS」を参照してください。

移行に使用されるテーブルで自動増分が有効になっているかどうかを検証する

API キー: mariadb-check-auto-increment

この移行前評価では、タスクで使用されるソーステーブルで自動増分が有効になっているかどうかを検証します。列の AUTO_INCREMENT 属性は、ターゲットデータベースに移行されません。

MariaDB エンドポイントの制限事項の詳細については、「のソースとしての MySQL データベースの使用に関する制限AWS DMS」を参照してください。MariaDB での ID 列の処理については、パート 2 の「IDENTITY 列の処理AWS DMS」を参照してください。

データベースのバイナリログ形式が DMS CDC をサポートするように ROW に設定されているかどうかを検証する

API キー: mariadb-check-binlog-format

この移行前評価では、ソースデータベースのバイナリログ形式が DMS 変更データキャプチャ (CDC) をサポートするよう ROW に設定されているかどうかを検証します。

バイナリログ形式を ROW に設定するには、以下の操作を行います。

  • Amazon RDS の場合、データベースのパラメータグループを使用します。RDS パラメータグループの使用に関する詳細については、「Amazon RDS ユーザーガイド」の「MySQL バイナリログの設定」を参照してください。

  • オンプレミスまたは Amazon EC2 でホストされるデータベースの場合、my.ini (Microsoft Windows) または my.cnf (UNIX) の binlog_format 値を設定します。

この評価は、フルロードと CDC の移行、CDC のみの移行の場合にのみ利用できます。この評価は、フルロードのみの移行では有効ではありません。

セルフホスト型 MariaDB サーバーの詳細については、「のソースとしてのセルフマネージド MySQL 互換データベースの使用AWS DMS」を参照してください。

データベースのバイナリログイメージが DMS CDC をサポートするように FULL に設定されているかどうかを検証する

API キー: mariadb-check-binlog-image

この移行前評価では、ソースデータベースのバイナリログイメージが FULL に設定されているかどうかを確認します。MariaDB では、binlog_row_image 変数が、ROW 形式を使用するときにバイナリログイベントが書き込まれる方法を決定します。DMS との互換性を確保し、CDC をサポートするには、binlog_row_image 変数を FULL に設定します。この設定により、DMS は十分な情報を受信して、移行中にターゲットデータベースの完全なデータ操作言語 (DML) を構築することができます。

バイナリログイメージを FULL に設定するには、以下の操作を行います。

  • Amazon RDS の場合、この値はデフォルトで FULL になります。

  • オンプレミスまたは Amazon EC2 でホストされるデータベースの場合、my.ini (Microsoft Windows) または my.cnf (UNIX) の binlog_row_image 値を設定します。

この評価は、フルロードと CDC の移行、CDC のみの移行の場合にのみ利用できます。この評価は、フルロードのみの移行では有効ではありません。

セルフホスト型 MariaDB サーバーの詳細については、「のソースとしてのセルフマネージド MySQL 互換データベースの使用AWS DMS」を参照してください。

ソースデータベースが MariaDB Read-Replica であるかどうかを検証する

API キー: mariadb-check-database-role

この移行前評価では、ソースデータベースがリードレプリカかどうかを検証します。リードレプリカに接続されているときに DMS の CDC サポートを有効にするには、log_slave_updates パラメータを True に設定します。セルフマネージド型 MySQL データベースを使用する方法の詳細については、「のソースとしてのセルフマネージド MySQL 互換データベースの使用AWS DMS」を参照してください。

log_slave_updates 値を True に設定するには、以下の操作を行います。

  • Amazon RDS の場合、データベースのパラメータグループを使用します。RDS データベースパラメータグループの使用に関する詳細については、「Amazon RDS ユーザーガイド」の「Working with parameter groups」を参照してください。

  • オンプレミスまたは Amazon EC2 でホストされるデータベースの場合、my.ini (Microsoft Windows) または my.cnf (UNIX) の log_slave_updates 値を設定します。

この評価は、フルロードと CDC の移行、CDC のみの移行の場合にのみ利用できます。この評価は、フルロードのみの移行では有効ではありません。

テーブルにパーティションがあるかどうかを検証し、フルロードタスク設定の TRUNCATE_BEFORE_LOAD または DO_NOTHING を推奨する

API キー: mariadb-check-table-partition

この移行前評価では、ソースデータベースにパーティションを持つテーブルがあるかどうかを確認します。DMS は MariaDB ターゲットにパーティションのないテーブルを作成します。パーティションテーブルをターゲットのパーティションテーブルに移行するには、以下を実行する必要があります。

  • ターゲット MariaDB データベースにパーティションテーブルを事前に作成します。

  • TRUNCATE_BEFORE_LOAD または DO_NOTHING をフルロードタスク設定として使用するように DMS タスクを設定します。

MariaDB エンドポイントの制限事項の詳細については、「のソースとしての MySQL データベースの使用に関する制限AWS DMS」を参照してください。

DMS がデータベースバージョンをサポートしているかどうかを検証する

API キー: mariadb-check-supported-version

この移行前評価では、ソースデータベースバージョンが DMS と互換性があるかどうかを検証します。CDC は、Amazon RDS MariaDB バージョン 10.4 以前、または 10.11 以降の MySQL バージョンではサポートされていません。サポートされている MariaDB のバージョンの詳細については、「データ移行のソースエンドポイント」を参照してください。

ターゲットデータベースで local_infile が 1 に設定されているかどうかを検証します。

API キー: mariadb-check-target-localinfile-set

この移行前評価では、ターゲットデータベースの local_infile パラメータが 1 に設定されているかどうかを確認します。DMS では、ターゲットデータベースへのフルロード中に「local_infile」パラメータを 1 に設定する必要があります。詳細については、「AWS DMS を使用して MySQL から MySQL へ移行します。」を参照してください。

この評価は、フルロードタスクにのみ有効です。

ターゲットデータベースに外部キーを持つテーブルがあるかどうかを検証する

API キー: mariadb-check-fk-target

この移行前評価では、MariaDB データベースに移行するフルロードまたはフルおよび CDC タスクに外部キーを持つテーブルがあるかどうかを確認します。DMS のデフォルト設定では、テーブルをアルファベット順にロードします。親テーブルと子テーブルを同時にロードできない可能性があるため、外部キーと参照整合性制約があるテーブルはロードに失敗する可能性があります。

DMS の参照整合性の詳細については、「AWS DMS 移行のパフォーマンスの向上」トピックの「Working with indexes, triggers, and referential integrity constraints」を参照してください。

タスクの範囲にあるソーステーブルにカスケード制約があるかどうかを検証する

API キー: mariadb-check-cascade-constraints

この移行前評価では、MariaDB ソーステーブルにカスケード制約があるかどうかを確認します。MariaDB はこれらのイベントの変更をバイナリログに記録しないため、カスケード制約は DMS タスクによって移行またはレプリケートされません。AWS DMSはこれらの制約をサポートしていませんが、リレーショナルデータベースターゲットの回避策を使用できます。

カスケード制約やその他の制約のサポートについては、「Troubleshooting migration tasks in AWS DMS」トピックの「インデックス、外部キー、カスケード更新、または削除が移行されない」を参照してください。

タスクの範囲にあるソーステーブルに生成された列があるかどうかを検証する

API キー: mariadb-check-generated-columns

この移行前評価では、MariaDB ソーステーブルに生成された列があるかどうかを確認します。DMS タスクは、生成された列の移行またはレプリケートを行いません。

生成された列を移行する方法については、「ターゲット MySQL のインスタンスへの接続は、タスクの実行中に接続が切断されます」を参照してください。

タイムアウト値が MariaDB ソースに適しているかどうかを検証する

API キー: mariadb-check-source-network-parameter

この移行前評価では、タスクの MariaDB ソースエンドポイントの net_read_timeoutnet_write_timeoutwait_timeout の設定が少なくとも 300 秒に設定されているかどうかを確認します。これは、移行中の切断を防止するために必要です。

詳細については、「ターゲット MySQL のインスタンスへの接続は、タスクの実行中に接続が切断されます」を参照してください。

タイムアウト値が MariaDB ターゲットに適しているかどうかを検証する

API キー: mariadb-check-target-network-parameter

この移行前評価では、タスクの MariaDB ターゲットエンドポイントの net_read_timeoutnet_write_timeoutwait_timeout の設定が少なくとも 300 秒に設定されているかどうかを確認します。これは、移行中の切断を防止するために必要です。

詳細については、「ターゲット MySQL のインスタンスへの接続は、タスクの実行中に接続が切断されます」を参照してください。

max_statement_time データベースパラメータの検証

API キー:mariadb-check-max-statement-time

AWS DMSは、データベースソースパラメータmax_statement_timeが 0 以外の値に設定されていることを確認します。DMS フルロードプロセスに対応するには、このパラメータを 0 に設定する必要があります。フルロードの完了後にこのパラメータ値の変更を検討することをお勧めします。このパラメータを 0 以外の値に設定するとデータが失われる可能性があるからです。

プライマリキーまたは一意のインデックスがバッチ適用のターゲットに存在するかどうかを検証する

API キー: mariadb-check-batch-apply-target-pk-ui-absence

バッチ適用は、ターゲットテーブルでプライマリキーまたは一意のインデックスを持つテーブルでのみサポートされます。プライマリキーまたは一意のインデックスがないテーブルはバッチが失敗し、変更は一つずつ処理されます。このようなテーブルは独自のタスクに移動し、代わりにトランザクション適用モードを活用することをお勧めします。または、ターゲットテーブルに一意のキーを作成することができます。

詳細については、「MySQL 互換データベースの AWS Database Migration Service のターゲットとしての使用」を参照してください。

プライマリキーと一意のインデックスの両方がバッチ適用のターゲットに存在するかどうかを検証する

API キー: mariadb-check-batch-apply-target-pk-ui-simultaneously

バッチ適用は、ターゲットテーブルでプライマリキーまたは一意のインデックスを持つテーブルでのみサポートされます。プライマリキーまたは一意のインデックスが同時に存在するテーブルはバッチが失敗し、変更は一つずつ処理されます。このようなテーブルは独自のタスクに移動し、代わりにトランザクション適用モードを活用することをお勧めします。または、移行を実行している場合は、ターゲットテーブルの一意のキーまたはプライマリキーを削除してから、ターゲットテーブルを再構築することもできます。

詳細については、「MySQL 互換データベースの AWS Database Migration Service のターゲットとしての使用」を参照してください。

フルロード中にターゲットデータベースでセカンダリインデックスが有効になっているかどうかを検証する

API キー: mariadb-check-secondary-indexes

ターゲットデータベースのセカンダリインデックスを無効化または削除することを検討してください。セカンダリインデックスは、フルロード中の移行パフォーマンスに影響を与える可能性があります。キャッシュされた変更を適用する前にセカンダリインデックスを有効にすることをお勧めします。

詳細については、「 のベストプラクティスAWS Database Migration Service」を参照してください。

DMS 検証が有効になっている場合にテーブルにプライマリキーまたは一意のインデックスがあるかどうかを検証する

API キー: mariadb-check-pk-validity

データ検証では、ソースとターゲットの両方のテーブルにプライマリキーまたは一意のインデックスがなければなりません。

詳細については、「AWSDMS データ検証」を参照してください。

MaxFullLoadSubTasks 設定の使用に関する推奨事項

この評価では、タスクに含まれるテーブルの数を確認し、フルロードプロセス中に最適なパフォーマンスが得られるように MaxFullLoadSubTasks パラメータの値を大きくすることを推奨します。デフォルトでは、 は 8 つのテーブルを同時にAWS DMS移行します。MaxFullLoadSubTasks パラメータをより大きな値に変更すると、フルロードのパフォーマンスが向上します。

詳細については、「全ロードタスク設定」を参照してください。

数字ランダム化の変換ルールを確認する

API キー: mariadb-datamasking-digits-randomize

この評価では、テーブルマッピングで使用される列が数字ランダム化の変換ルールに適合しているかどうかを検証します。さらに、変換対象として選択された列がプライマリキー、一意の制約、または外部キーの一部であるかどうかも確認します。これは、数字ランダム化の変換を適用しても一意性は保証されないためです。

数字マスクの変換ルールを確認する

API キー: mariadb-datamasking-digits-mask

この評価では、テーブルマッピングで使用される列が数字マスクの変換ルールでサポートされていないかどうかを検証します。さらに、変換対象として選択された列がプライマリキー、一意の制約、または外部キーの一部であるかどうかも確認します。これは、一意性が保証されないために、このような列に数字マスクの変換を適用すると、DMS タスクが失敗する可能性があるからです。

ハッシュマスクの変換ルールを確認する

API キー: mariadb-datamasking-hash-mask

この評価では、テーブルマッピングで使用される列がハッシュマスクの変換ルールでサポートされていないかどうかを検証します。また、ソース列の長さが 64 文字を超えているかどうかも確認します。ハッシュマスキングをサポートするには、ターゲット列の長さが 64 文字を超えていることが理想的です。さらに、変換対象として選択された列がプライマリキー、一意の制約、または外部キーの一部であるかどうかも確認します。これは、数字ランダム化の変換を適用しても一意性は保証されないためです。

データ検証タスク設定とデータマスキングの数字ランダム化が同時に有効になっていないことを確認する

API キー: all-to-all-validation-with-datamasking-digits-randomize

この移行前評価では、データ検証設定とデータマスキングの数字ランダム化が同時に有効になっていないことを確認します。これらの機能には互換性はありません。

データ検証タスク設定とデータマスキングのハッシュマスクが同時に有効になっていないことを確認する

API キー: all-to-all-validation-with-datamasking-hash-mask

この移行前評価では、データ検証設定とデータマスキングのハッシュマスクが同時に有効になっていないことを確認します。これらの機能には互換性はありません。

データ検証タスク設定とデータマスキングの数字マスクが同時に有効になっていないことを確認する

API キー: all-to-all-validation-with-digit-mask

この移行前評価では、データ検証設定とデータマスキングの数字マスクが同時に有効になっていないことを確認します。これらの機能には互換性はありません。

バイナリログの保持時間が正しく設定されているかどうかを確認する

API キー: mariadb-check-binlog-retention-time

この移行前評価では、「binlog retention hours」の値が 24 時間を超えているかどうかを検証します。

ソーステーブルに非表示の列がないかどうかを確認する

API キー: mariadb-check-invisible-columns

この移行前評価では、ソーステーブルに非表示の列がないかどうかを検証します。 AWS DMSは、ソースデータベースの非表示の列からデータを移行しません。

選択したオブジェクトが少なくとも 1 つソースデータベースに存在することを検証します。

API キー: all-check-source-selection-rules

この移行前評価では、ワイルドカードベースのルールのパターンマッチングなど、選択ルールで指定された少なくとも 1 つのオブジェクトがソースデータベースに存在することを確認します。

パーティションテーブルで skipTableSuspensionForPartitionDdlが有効になっていることを検証する

API キー: mariadb-check-skip-table-suspension-partition-ddl

この移行前評価では、ソースデータベース内のパーティションテーブルを検出し、skipTableSuspensionForPartitionDdlパラメータ設定を検証します。このパラメータを設定しないと、移行中に不要なテーブルの停止が発生する可能性があります。

詳細については、「のソースとしての MySQL データベースの使用に関する制限AWS DMS」を参照してください。

セカンダリ制約とインデックス (非プライマリ) がソースデータベースに存在することを確認する

API キー: all-check-secondary-constraints

この移行前評価では、セカンダリ制約とインデックス (外部キー、チェック制約、クラスター化されていないインデックス) がソースデータベースに存在することを確認します。