기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
이 섹션에는 대상 지연 시간에 영향을 미칠 수 있는 시나리오가 나와 있습니다.
인덱싱 문제
CDC 단계에서 타겟에서 AWS DMS는 DML 문(삽입, 업데이트, 삭제)을 실행하여 소스의 변경 사항을 복제합니다. DMS를 사용하는 이기종 마이그레이션의 경우, 소스와 대상의 인덱스 최적화 차이로 인해 대상에 쓰기 작업을 수행하는 데 더 오랜 시간이 걸릴 수 있습니다. 이 경우 대상 지연 시간 및 성능 문제가 발생합니다.
인덱싱 문제를 해결하려면 다음을 수행합니다. 이러한 단계의 절차는 데이터베이스 엔진마다 다릅니다.
대상 데이터베이스의 쿼리 시간을 모니터링합니다. 대상과 소스의 쿼리 실행 시간을 비교하면 최적화가 필요한 인덱스를 나타낼 수 있습니다.
느리게 실행 중인 쿼리에 대한 로깅을 활성화합니다.
장시간 실행 중인 복제의 인덱싱 문제를 해결하려면 다음을 수행합니다.
소스 및 대상 데이터베이스의 인덱스를 튜닝하여 소스와 대상의 쿼리 실행 시간이 비슷해지도록 조정합니다.
소스와 대상의 DML 쿼리에 사용된 보조 인덱스를 비교합니다. 대상의 DML 성능이 소스 DML 성능과 비슷하거나 더 나은지 확인합니다.
참고로, 인덱스를 최적화하는 절차는 데이터베이스 엔진에 따라 다릅니다. 소스 및 대상 인덱스를 튜닝할 수 있는 DMS 기능은 없습니다.
태스크 로그의 SORTER 메시지
대상 엔드포인트가 AWS DMS가 대상 엔드포인트에 쓰는 변경 사항의 볼륨을 따라가지 못할 경우, 태스크는 복제 인스턴스의 변경 사항을 캐시합니다. 캐시가 내부 임계값보다 커지면 태스크는 소스에서 추가 변경 사항을 읽는 것을 중단합니다. DMS는 복제 인스턴스의 스토리지가 부족해지거나, 대기 중인 대량의 이벤트를 읽는 동안 태스크가 중단되는 것을 방지하기 위해 이러한 조치를 수행합니다.
이 문제를 해결하려면 CloudWatch 로그에서 다음 중 하나와 유사한 메시지가 있는지 확인합니다.
[SORTER ]I: Reading from source is paused. Total disk usage exceeded the limit 90% (sorter_transaction.c:110)
[SORTER ]I: Reading from source is paused. Total storage used by swap files exceeded the limit 1048576000 bytes (sorter_transaction.c:110)
로그에 첫 번째 메시지와 유사한 메시지가 있는 경우, 태스크에 대한 모든 추적 로깅을 비활성화하고 복제 인스턴스 스토리지를 늘립니다. 복제 인스턴스 스토리지 증가에 대한 자세한 내용은 복제 인스턴스 수정 섹션을 참조하세요.
두 번째 메시지와 유사한 메시지가 로그에 있는 경우 다음을 수행합니다.
트랜잭션이 많거나 장시간 실행 중인 DML 작업이 있는 테이블이 태스크의 다른 테이블에 종속되지 않을 경우, 해당 테이블을 별도의 태스크로 이동합니다.
MemoryLimitTotal
및MemoryKeepTime
설정을 늘려 트랜잭션을 메모리에 보관하는 기간을 늘립니다. 이렇게 하면 지연 시간이 지속될 경우에는 도움이 되지 않지만, 트랜잭션 볼륨이 단기간에 급증하는 동안에는 지연 시간을 줄이는 데 도움이 될 수 있습니다. 이러한 태스크 설정에 대한 내용은 변경 처리 튜닝 설정 섹션을 참조하세요.BatchApplyEnabled
를true
로 설정하여 트랜잭션에 일괄 적용을 사용할 수 있는지 평가합니다.BatchApplyEnabled
설정에 대한 내용은 대상 메타데이터 작업 설정 섹션을 참조하세요.
데이터베이스 잠금
AWS DMS가 복제 대상으로 사용 중인 데이터베이스에 애플리케이션이 액세스할 경우, 해당 애플리케이션 때문에 DMS가 액세스하려는 테이블을 잠길 수 있습니다. 이 경우 잠금 경합이 발생합니다. DMS는 소스에서 발생한 순서대로 대상 데이터베이스에 변경 사항을 작성하므로, 잠금 경합으로 인해 한 테이블에 대한 쓰기 지연이 발생할 경우 모든 테이블에 대한 쓰기 작업이 지연됩니다.
이 문제를 해결하려면 대상 데이터베이스를 쿼리하여 잠금 경합 때문에 DMS 쓰기 트랜잭션이 차단되고 있는 것인지 확인합니다. 대상 데이터베이스가 DMS 쓰기 트랜잭션을 차단하고 있는 경우, 다음 중 하나 이상의 작업을 수행합니다.
변경 사항을 더 자주 커밋하도록 쿼리를 재구성합니다.
잠금 제한 시간 설정을 수정합니다.
테이블을 분할하여 잠금 경합을 최소화합니다.
참고로, 잠금 경합을 최적화하는 절차는 데이터베이스 엔진에 따라 다릅니다. 잠금 경합을 튜닝할 수 있는 DMS 기능은 없습니다.
느린 LOB 조회
AWS DMS는 대용량 객체(LOB) 열을 복제할 때 대상에 변경 사항을 기록하기 직전에 소스에 대한 조회를 수행합니다. 보통 이러한 조회로 인해 대상에 지연 시간이 발생하지는 않지만, 잠금으로 인해 소스 데이터베이스에서 조회가 지연되면 대상 지연 시간이 급증할 수 있습니다.
이 문제는 일반적으로 진단하기 어렵습니다. 이 문제를 해결하려면 태스크 로그에서 세부 디버깅을 활성화하고, DMS LOB 조회 호출의 타임스탬프를 비교합니다. 세부 디버깅 활성화에 대한 자세한 내용은 AWS DMS 작업 로그 보기 및 관리 섹션을 참조하세요.
이 문제를 해결하려면 다음 작업을 수행합니다.
소스 데이터베이스에 대한 SELECT 쿼리 성능을 개선합니다.
DMS LOB 설정을 튜닝합니다. LOB 설정에 대한 자세한 내용은 대용량 이진 객체(LOB) 마이그레이션 섹션을 참조하세요.
다중 AZ, 감사 로깅, 백업
Amazon RDS 대상의 경우, 다음 작업을 수행하는 동안 대상 지연 시간이 증가할 수 있습니다.
백업
다중 가용 영역(다중 AZ)을 활성화한 후
감사 또는 느린 쿼리 로그 등의 데이터베이스 로깅을 활성화한 후
이러한 문제는 일반적으로 진단하기 어렵습니다. 이러한 문제를 해결하려면 Amazon RDS 유지 관리 기간 또는 데이터베이스 부하가 과중한 기간에 주기적인 급증이 발생하는 지연 시간을 모니터링합니다.
이러한 문제를 해결하려면 다음 작업을 수행합니다.
가능하다면 단기 마이그레이션 중에는 다중 AZ, 백업 또는 로깅을 비활성화합니다.
유지 관리 기간을 활동이 적은 기간으로 다시 예약합니다.