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
}