LOB 데이터가 있는 AWS DMS 작업의 속도를 개선하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 6월 1일

내 AWS DMS(AWS Database Migration Service) 마이그레이션 작업이 느립니다. 대용량 객체(LOB) 데이터가 있는 AWS DMS 작업의 속도를 개선하려면 어떻게 해야 합니까?

간략한 설명

AWS DMS는 LOB 데이터를 마이그레이션할 때 다음과 같은 옵션을 제공합니다.

  • 전체 LOB 모드
  • 제한적 LOB 모드
  • 인라인 LOB 모드

​해결 방법

전체 LOB 모드

전체 LOB 모드를 사용하는 경우 AWS DMS는 LOB를 크기에 상관없이 마이그레이션합니다. AWS DMS는 마이그레이션해야 하는 LOB 데이터의 크기를 알지 못하기 때문에 AWS DMS는 LOB를 한 번에 하나씩 마이그레이션합니다. 이렇게 하면 작업 속도가 느려질 수 있습니다. 마이그레이션 속도는 더 느리지만 장점은 데이터가 잘리지 않는다는 것입니다. 여러 테이블에 전체 LOB 모드를 사용하는 작업의 성능을 개선하려면 먼저 데이터베이스에서 가장 큰 LOB의 크기를 식별합니다. 그러면 가장 큰 LOB의 크기가 수 MB 이하인 경우 제한적 LOB 모드를 사용할 수 있습니다.

수 메가바이트보다 큰 LOB가 있는 경우 전체 LOB 모드를 사용하여 별도의 AWS DMS 작업을 생성할 수 있습니다. 새 복제 인스턴스에서 별도의 작업을 생성하여 이러한 테이블만 마이그레이션하는 것이 모범 사례입니다.

제한적 LOB 모드

제한적 LOB 모드를 사용하는 경우 LOB 열 데이터의 최대 크기를 지정합니다. 이를 통해 AWS DMS는 리소스를 사전 할당하고 LOB를 대량으로 적용할 수 있습니다. LOB 열의 크기가 작업에 지정된 크기를 초과하면 AWS DMS가 데이터를 자릅니다. 그러면 AWS DMS가 AWS DMS 로그 파일에 경고를 보냅니다. 제한적 LOB 모드를 사용하면 성능이 개선될 수 있지만, 작업을 실행하기 전에 원본에 있는 데이터의 최대 LOB 크기를 식별해야 합니다. 그런 다음 제한적 LOB 모드를 사용할 때 [최대 LOB 크기] 파라미터를 지정해야 합니다. 작업을 처리하기에 충분한 메모리가 복제 인스턴스에 할당되어 있는지 확인하는 것이 모범 사례입니다.

인라인 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
  }