LOB データを含む AWS DMS タスクの速度を向上する方法を教えてください。

最終更新日: 2019 年 10 月 1 日

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 ログファイルに警告を出力します。制限付き LOB モードを使用するとパフォーマンスが向上しますが、タスクを実行する前に、ソース上のデータの最大 LOB サイズを特定する必要があります。そのため、制限付き LOB モードを使用する場合、Max LOB size パラメーターを指定する必要があります。タスクを処理するのに十分なメモリがレプリケーションインスタンスに割り当てられていることを確認することをお勧めします。

インライン LOB モード

インライン LOB モードを使用する場合、小規模および大規模な LOB の両方をレプリケートすることで、データを切り捨てたり、タスクのパフォーマンスを低下させたりすることなく、LOB を移行できます。まず、InlineLobMaxSize パラメータの値を指定します。これは完全 LOB モードtrue に設定されている場合にのみ使用できます。AWS DMS タスクは小さな LOB をインラインで転送するため、より効率的です。次に、AWS DMS はソーステーブルからルックアップを実行して、大きな LOB を移行します。インライン LOB モードを選択すると、AWS DMS はインラインで移行する LOB がどれかをチェックします。その後、指定したサイズを超える LOB は完全 LOB モードで移行されます。ただし、インライン LOB モードは、完全ロードフェーズでのみ機能します。

重要: InlineLobMaxSize を、タスクのタスク設定を指定するときに設定する必要があります。

{
"TargetMetadata": {
"TargetSchema": "",
"SupportLobs": true,
"FullLobMode": true,
"LobChunkSize":
    64,
"LimitedSizeLobMode": true,
"LobMaxSize": 32,
"InlineLobMaxSize": 5,
"LoadMaxFileSize": 0,
"ParallelLoadThreads": 0,
"ParallelLoadBufferSize":0,
"BatchApplyEnabled": false,
"TaskRecoveryTableEnabled": false
}