変更処理のチューニング設定 - AWS Database Migration Service

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

変更処理のチューニング設定

以下の設定により、チェンジデータキャプチャ (CDC) AWS DMS 中にターゲットテーブルの変更を処理する方法が決まります。これらの設定のいくつかは、ターゲットメタデータパラメータ BatchApplyEnabled の値によって異なります。BatchApplyEnabled パラメータの詳細については、「ターゲットメタデータのタスク設定」をご参照ください。タスク設定ファイルを使用してタスク設定を設定する方法については、「タスク設定例」をご参照ください。

変更処理のチューニング設定には、以下のものが含まれます。

以下の設定は、ターゲットメタデータパラメータ BatchApplyEnabledtrue に設定している場合にのみ適用されます。

  • BatchApplyPreserveTransactiontrue に設定すると、トランザクションの整合性が保持され、必ずバッチにはソースからのトランザクション内のすべての変更が含まれます。デフォルト値は、trueです。この設定は、Oracle ターゲットエンドポイントにのみ適用されます。

    false に設定すると、パフォーマンスを向上させるためにトランザクションの整合性が一時的に失われることがあります。ソースからのトランザクション内のすべての変更が 1 バッチでターゲットに適用されるとは限りません。

    デフォルトでは、 AWS DMS トランザクションの整合性が維持されるトランザクションモードで変更が処理されます。トランザクションの完全性を一時的に失効できる場合は、代わりに [最適化バッチ] オプションを使用できます。このオプションでは、効率的にトランザクションがグループ化され、効率化のためにバッチに適用します。バッチ最適化適用オプションを使用すると、ほとんどの場合、参照整合性の制約に違反します。そのため、移行プロセス中にこれらの制約をオフにし、カットオーバー プロセスの一環として再度オンにすることをお勧めします。

  • BatchApplyTimeoutMin— AWS DMS バッチ変更が適用されるたびに待機する最小時間を秒単位で設定します。デフォルト値は 1 です。

  • BatchApplyTimeoutMax— AWS DMS バッチ変更を適用するたびにタイムアウトするまでの最大待機時間を秒単位で設定します。デフォルト値は 30 です。

  • BatchApplyMemoryLimit[Batch optimized apply mode] (最適化バッチ適用モード) での前処理に使用されるメモリの最大量 (MB) を設定します。デフォルト値は 500 です。

  • BatchSplitSize - 1 つのバッチに適用される変更の最大数を設定します。デフォルト値 0 は、適用される制限がないことを意味します。

以下の設定は、ターゲットメタデータパラメータ BatchApplyEnabledfalse に設定している場合にのみ適用されます。

  • MinTransactionSize - 各トランザクションに含める変更の最小数を設定します。デフォルト値は 1000 です。

  • CommitTimeout— AWS DMS タイムアウトを宣言する前にトランザクションをバッチで収集する最大時間を秒単位で設定します。デフォルト値は 1 です。

双方向レプリケーションの場合、次の設定は、ターゲットメタデータパラメータ BatchApplyEnabledfalse に設定している場合にのみ適用されます。

  • LoopbackPreventionSettings – これらの設定により、双方向レプリケーションに関係するタスクのペアで進行中の各レプリケーション タスクのループバックを阻止します。ループバック防止は、双方向レプリケーションの両方向で同一の変更が適用されてデータが破損するのを防ぎます。双方向レプリケーションの詳細については、「双方向レプリケーションの実行」をご参照ください。

AWS DMS トランザクションがソース、ターゲット、またはその両方に完全にコミットされるまで、トランザクションデータをメモリに保持しようとします。ただし、割り当てたメモリより大きいトランザクションや、指定した制限時間内にコミットされないトランザクションは、ディスクに書き込まれます。

以下の設定は、変更処理のモードに関係なく、変更処理のチューニングに適用されます。

  • MemoryLimitTotal - すべてのトランザクションがディスクに書き込まれるまでにメモリで占有可能な最大サイズ (MB) を設定します。デフォルト値は 1024 です。

  • MemoryKeepTime - 各トランザクションがディスクに書き込まれるまでにメモリに保持できる最長時間 (秒) を設定します。この期間は、 AWS DMS トランザクションのキャプチャを開始した時点から計算されます。デフォルト値は 60 です。

  • StatementCacheSize - ターゲットに変更を適用するときに、後で実行するためにサーバーに保存する準備済みステートメントの最大数を設定します。デフォルト値は 50 です。最大値は 200 です。

処理チューニング設定の変更のタスク設定がタスク設定の JSON ファイルでどのように記述されるかを示す例は、次のとおりです。

"ChangeProcessingTuning": { "BatchApplyPreserveTransaction": true, "BatchApplyTimeoutMin": 1, "BatchApplyTimeoutMax": 30, "BatchApplyMemoryLimit": 500, "BatchSplitSize": 0, "MinTransactionSize": 1000, "CommitTimeout": 1, "MemoryLimitTotal": 1024, "MemoryKeepTime": 60, "StatementCacheSize": 50 }

データ レプリケーション タスク中に Amazon S3 ターゲットへの書き込みの頻度を制御するには、cdcMaxBatchIntervalcdcMinFileSize の追加接続属性を設定することができます。これにより、追加のオーバーヘッド オペレーションなしでデータを分析する際のパフォーマンスが向上します。詳細については、「AWS DMS のターゲットとして Amazon S3を使用する場合のエンドポイントの設定」をご参照ください。