AWS Database Migration Service (AWS DMS) の移行タスクが遅いです。LOB データを含む AWS DMS タスクの速度を向上させたいと考えています。
解決策
完全 LOB モード
完全 LOB モードを使用する場合、AWS DMS はサイズに関係なく LOB を移行します。AWS DMS は移行する LOB データのサイズを認識しないため、AWS DMS は LOB を 1 つずつ移行します。これにより、タスクの速度が低下する可能性があります。移行の速度は低下するものの、AWS DMS はデータを切り捨てません。複数のテーブルを持つ完全 LOB モードを使用するタスクのパフォーマンスを向上させるには、まずデータベース内の最大 LOB のサイズを特定します。最大 LOB サイズが数メガバイトを超えない場合は、制限付き LOB モードを使用します。
数メガバイトを超える LOB がある場合は、完全 LOB モードで別の AWS DMS タスクを作成します。これらのテーブルを移行するには、新しいレプリケーションインスタンスに個別のタスクを作成することをお勧めします。
制限付き LOB モード
制限付き LOB モードを使用する場合は、LOB 列データの最大サイズを指定します。これにより、AWS DMS はリソースを事前に割り当て、LOB を一括適用できます。LOB 列のサイズがタスクで指定したサイズを超える場合、AWS DMS はデータを切り捨てます。その後、AWS DMS は AWS DMS ログファイルに警告を送信します。制限付き LOB モードを使用するとパフォーマンスは向上しますが、タスクを実行する前に、ソース上のデータの最大 LOB サイズを特定する必要があります。そのため、制限付き LOB モードを使用する場合は、Max LOB size パラメーターを指定します。タスクを処理するのに十分なメモリがレプリケーションインスタンスに割り当てられていることを確認することをお勧めします。
インライン LOB モード
インライン LOB モードを使用すると、小さい LOB と大きい LOB の両方がレプリケートされます。これにより、データを切り捨てたり、タスクのパフォーマンスを低下させたりすることなく、LOB を移行できます。まず、InlineLobMaxSize パラメーターの値を指定します。これは、完全 LOB モード が true に設定されている場合にのみ使用できます。AWS DMS タスクは小さな LOB をインラインで転送するため、タスクはより効率的になります。次に、AWS DMS は、ソーステーブルからルックアップを実行して、完全 LOB モードで指定されたサイズを超える LOB を移行します。ただし、インライン LOB モードは完全ロードフェーズでのみ機能します。
重要:InlineLobMaxSize パラメーターを、タスク設定を指定するときに設定する必要があります。
{ "TargetMetadata": {
"TargetSchema": "abc",
"SupportLobs": true,
"FullLobMode": true,
"LobChunkSize": 64,
"LimitedSizeLobMode": false,
"LobMaxSize": 0,
"InlineLobMaxSize": 32,
"LoadMaxFileSize": 0,
"ParallelLoadThreads": 0,
"ParallelLoadBufferSize": 0,
"BatchApplyEnabled": false,
"TaskRecoveryTableEnabled": false,
"ParallelLoadQueuesPerThread": 0,
"ParallelApplyThreads": 0,
"ParallelApplyBufferSize": 0,
"ParallelApplyQueuesPerThread": 0
}
関連情報
ラージバイナリオブジェクト (LOB) の移行
ターゲットメタデータのタスク設定
AWS Database Migration Service のベストプラクティス