쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

SQL Server 엔드포인트 문제 해결

포커스 모드
SQL Server 엔드포인트 문제 해결 - AWS 데이터베이스 마이그레이션 서비스

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

이 섹션에는 SQL Server와 관련된 복제 시나리오가 나와 있습니다. SQL Server에서 복제할 변경 사항을 확인하기 위해, AWS DMS는 트랜잭션 로그를 읽고 소스 데이터베이스에서 주기적인 스캔을 실행합니다. 일반적으로 복제 지연 시간이 발생하는 이유는 리소스 제약으로 인해 SQL Server에서 이러한 스캔을 제한해서 그렇습니다. 짧은 시간 내에 트랜잭션 로그에 작성되는 이벤트 수가 크게 증가하기 때문일 수도 있습니다.

인덱스 재구축

SQL Server는 큰 인덱스를 재구축할 때 단일 트랜잭션을 사용합니다. 이로 인해 많은 이벤트가 생성되며, SQL Server가 한 번에 여러 인덱스를 재구축할 경우 많은 양의 로그 공간을 모두 사용하게 될 수 있습니다. 이렇게 되면 일시적인 복제 급증이 발생할 수 있습니다. SQL Server 소스에서 지속적으로 로그 급증이 발생할 경우 다음 사항을 확인하세요.

  • 먼저, CDCLatencySourceCDCLatencySource CloudWatch 지표를 사용하거나 태스크 로그의 처리량 모니터링 메시지를 확인하여 지연 시간이 급증하는 기간을 확인합니다. AWS DMS의 CloudWatch 지표에 대한 자세한 내용은 복제 작업 지표 섹션을 참조하세요.

  • 지연 시간이 급증하는 동안 활성 트랜잭션 로그 또는 로그 백업의 크기가 증가했는지 확인합니다. 해당 기간에 유지 관리 작업이나 재구축이 실행되었는지도 확인합니다. 트랜잭션 로그 크기 확인에 대한 자세한 내용은 SQL Server 기술 설명서Monitor log space use 섹션을 참조하세요.

  • 유지 관리 계획이 SQL Server 모범 사례를 준수하는지 확인합니다. SQL Server 유지 관리 모범 사례에 대한 자세한 내용은 SQL Server 기술 설명서Index maintenance strategy 섹션을 참조하세요.

인덱스 재구축 중 지연 시간 문제를 해결하려면 다음을 수행합니다.

  • 오프라인 재구축에 BULK_LOGGED 복구 모델을 사용하면 태스크가 처리해야 하는 이벤트를 줄일 수 있습니다.

  • 가능한 경우, 인덱스 재구축 중에는 태스크를 중지합니다. 또는 사용량이 많지 않은 시간에 인덱스 재구축을 예약하여 지연 시간 급증으로 인한 영향을 완화하시기 바랍니다.

  • 디스크 지연 시간 또는 I/O 처리량처럼 DMS 읽기 속도를 저하시키는 리소스 병목 현상을 확인하고 이를 해결합니다.

큰 트랜잭션

이벤트가 많은 트랜잭션 또는 장시간 실행 중인 트랜잭션으로 인해 트랜잭션 로그가 커집니다. 이 경우 DMS 읽기 시간이 길어져 지연 시간이 발생합니다. 이는 인덱스 재구축이 복제 성능에 미치는 영향과 유사합니다.

소스 데이터베이스의 일반적인 워크로드에 익숙하지 않다면 이 문제를 확인하기 어려울 수 있습니다. 이 문제를 해결하려면 다음을 수행합니다.

  • 먼저, ReadThroughputWriteThroughput CloudWatch 지표를 사용하거나 태스크 로그의 처리량 모니터링 메시지를 확인하여 지연 시간이 급증한 시간을 파악합니다.

  • 지연 시간이 급증했을 때 소스 데이터베이스에 장시간 실행 중인 쿼리가 있는지 확인합니다. 장시간 실행 중인 쿼리에 대한 자세한 내용은 SQL Server 기술 설명서Troubleshoot slow-running queries in SQL Server 섹션을 참조하세요.

  • 활성 트랜잭션 로그 또는 로그 백업의 크기가 증가했는지 확인합니다. 자세한 내용은 SQL Server 기술 설명서Monitor log space use 섹션을 참조하세요.

이 문제를 해결하려면 다음 중 하나를 수행합니다.

  • 가장 좋은 해결 방법은 애플리케이션 측에서 트랜잭션을 재구성하여 트랜잭션이 빠르게 완료되도록 하는 것입니다.

  • 트랜잭션을 재구성할 수 없는 경우, 단기적인 해결 방법은 디스크 대기 또는 CPU 경합과 같은 리소스 병목 현상이 있는지 확인하는 것입니다. 소스 데이터베이스에서 병목 현상이 발견되면 소스 데이터베이스의 디스크, CPU, 메모리 리소스를 늘려 지연 시간을 줄일 수 있습니다. 이렇게 하면 시스템 리소스 경합이 감소하여 DMS 쿼리를 더 빨리 완료할 수 있습니다.

Amazon RDS SQL 서버의 MS-CDC 폴링 간격이 잘못 구성된 경우

Amazon RDS 인스턴스에서 폴링 간격 설정이 잘못 구성되면 트랜잭션 로그가 증가할 수 있습니다. 복제로 인해 로그 잘림이 방지되기 때문입니다. 실행 중인 태스크를 지연 시간을 최소화하여 계속 복제할 수 있긴 하지만, 태스크를 중지 및 재개하거나 CDC 전용 작업을 시작할 경우 태스크가 실패할 수 있습니다. 대용량 트랜잭션 로그를 스캔하는 동안 시간 초과가 발생하기 때문입니다.

잘못 구성된 폴링 간격 문제를 해결하려면 다음을 수행합니다.

이전 목록의 주제에서 문제가 발견될 경우, MS-CDC 폴링 간격을 튜닝합니다. 폴링 간격 튜닝에 대한 자세한 내용은 RDS for SQL Server를 AWS DMS 소스로 사용 시 권장되는 설정 섹션을 참조하세요.

동일한 소스 데이터베이스에서 복제되는 여러 CDC 태스크

전체 로드 단계에서는 태스크 전체에서 테이블을 분할하여 성능을 개선하고, 종속 테이블을 논리적으로 분리하고, 태스크 실패로 인한 영향을 완화하는 것이 좋습니다. 하지만 CDC 단계에서는 태스크를 통합하여 DMS 스캔을 최소화하는 것이 바람직합니다. CDC 단계에서 각 DMS 태스크는 1분에 여러 번 트랜잭션 로그를 스캔하여 새 이벤트가 있는지 확인합니다. 각 태스크는 독립적으로 실행되므로 모든 태스크는 각각의 트랜잭션 로그를 개별적으로 스캔합니다. 이 경우 소스 SQL Server 데이터베이스의 디스크 및 CPU 사용량이 증가합니다. 따라서 많은 태스크를 동시에 실행하면 SQL Server가 DMS 읽기 속도를 제한할 수 있으므로, 지연 시간이 증가하게 됩니다.

여러 태스크가 점진적으로 시작될 경우, 이 문제를 확인하기 어려울 수 있습니다. 이 문제의 가장 일반적인 증상은 대부분의 태스크 스캔에 소요되는 시간이 더 길어지기 시작한다는 것입니다. 이 경우 이러한 스캔의 지연 시간이 길어집니다. SQL Server는 몇 가지 태스크 스캔의 우선 순위를 지정하므로, 일부 태스크에서는 정상적인 지연 시간이 표시됩니다. 이 문제를 해결하려면 모든 태스크에 대한 CDCLatencySource 지표를 확인합니다. 일부 태스크는 CDCLatencySource가 증가하는 반면, 일부 태스크는 CDCLatencySource가 낮을 경우 SQL Server가 일부 태스크의 DMS 읽기 속도를 제한하고 있을 가능성이 높습니다.

CDC 중에 SQL Server가 태스크 읽기 속도를 제한할 경우, 태스크를 통합하여 DMS 스캔 수를 최소화합니다. 경합을 생성하지 않고 소스 데이터베이스에 연결할 수 있는 최대 태스크 수는 소스 데이터베이스 용량, 트랜잭션 로그 증가율, 테이블 수 등과 같은 여러 요인에 따라 달라집니다. 복제 시나리오에 적합한 태스크 수를 확인하려면 프로덕션 환경과 비슷한 테스트 환경에서 복제를 테스트하세요.

RDS for SQL Server에 대한 트랜잭션 로그 백업 처리

AWS DMS 3.5.3 이상은 RDS for SQL Server 로그 백업에서 복제를 지원합니다. RDS 인스턴스의 백업 로그에서 이벤트를 복제하는 것은 활성 트랜잭션 로그에서 이벤트를 복제하는 것보다 느립니다. 이는 DMS가 트랜잭션 시퀀스를 유지하고 Amazon RDS 인스턴스 스토리지 채우기 위험을 최소화하기 위해 백업에 대한 액세스를 직렬로 요청하기 때문입니다. 또한 Amazon RDS 종료 시 DMS에 백업을 제공하는 데 걸리는 시간은 로그 백업 크기와 RDS for SQL Server 인스턴스의 로드에 따라 달라집니다.

이러한 제약으로 인해 ECA ActivateSafeguardtrue로 설정하는 것이 좋습니다. 이렇게 하면 DMS 작업이 활성 트랜잭션 로그에서 읽는 동안 트랜잭션이 백업되지 않습니다. 또한 이 설정은 DMS가 백업에서 트랜잭션을 읽을 때 활성 로그의 Amazon RDS 아카이빙 트랜잭션을 방지하여 DMS가 활성 로그를 따라잡을 수 없는 가능성을 제거합니다. 이렇게 하면 태스크를 따라잡는 동안 활성 로그 크기가 증가할 수 있습니다. 인스턴스에 공간이 부족하지 않도록 인스턴스에 충분한 스토리지가 있는지 확인합니다.

RDS for SQL Server 소스에서 복제하는 CDC 전용 작업의 경우 가능하면 네이티브 CDC 시작 시간 동안 네이티브 CDC 시작 위치를 사용합니다. 이는 DMS가 기본 시작 시간을 지정할 때 개별 로그 백업을 스캔하는 대신 시스템 테이블에 의존하여 기본 시작 위치의 시작점을 식별하기 때문입니다.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.