AWS Database Migration Service (AWS DMS) の移行タスクが遅いです。LOB データを含む AWS DMS タスクの速度を向上するにはどうすればよいですか?
簡単な説明
AWS DMS では、LOB データの移行時に以下のオプションを利用できます。
- 完全 LOB モード
- 制限付き LOB モード
- インライン LOB モード
解決方法
完全 LOB モード
完全 LOB モードを使用する場合、AWS DMS はサイズに関係なく LOB を移行します。AWS DMS は移行する必要のある LOB データのサイズを認識しないため、AWS DMS は LOB を 1 つずつ移行します。これにより、タスクの速度が低下する可能性があります。移行の速度は低下しますが、データが切り捨てられないという利点があります。複数のテーブルを持つ完全 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 を移行できます。まず、 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 のベストプラクティス