AWS DMS를 사용하여 SQL Server를 실행하는 Amazon RDS DB 인스턴스에서 마이그레이션하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 9월 26일

AWS Database Migration Service(AWS DMS)를 사용하여 SQL Server를 실행하는 Amazon Relational Database Service(Amazon RDS) DB 인스턴스에서 마이그레이션하려면 어떻게 해야 합니까?

간략한 설명

AWS DMS를 사용하여 하나 이상의 SQL Server DB 인스턴스에서 지원되는 대상 DB 엔진으로 데이터를 마이그레이션할 수 있습니다.

먼저 RDS SQL Server 인스턴스의 마스터 사용자를 사용하여 데이터베이스와 테이블을 구성해야 합니다. 그런 다음 AWS DMS 콘솔을 사용하거나 AWS 명령줄 인터페이스(AWS CLI)를 사용하여 소스 엔드포인트를 생성합니다 .

SQL Server에서 변경 데이터 캡처(CDC)를 사용하는 방법과 SQL Server DB 인스턴스에서 지속적 복제를 사용하기 위한 사전 조건 및 요구 사항에 대한 자세한 내용은 SQL Server 원본에서 지속적 복제(CDC) 사용을 참조하십시오.

해결 방법

AWS DMS는 지속적 변경 사항을 캡처하는 두 가지 방법, 즉 MS-Replication과 MS-CDC를 제공합니다.

참고: SQL Server를 원본으로 실행하는 Amazon RDS 인스턴스는 MS-CDC를 사용해야 합니다. Amazon RDS는 시스템 관리자 권한을 지원하지 않기 때문입니다.

마스터 사용자를 통해 다음 명령을 실행하여 데이터베이스 수준에서 MS-CDC를 활성화합니다.

EXEC msdb.dbo.rds_cdc_enable_db 'DBName';
GO

그런 다음 각 테이블에 대해 다음 명령을 실행하여 테이블 수준에서 CDC를 활성화합니다.

EXECUTE sys.sp_cdc_enable_table @source_schema = N'SchemaName', @source_name =N'TableName', @role_name = NULL;
GO

그리고 다음 명령을 실행하여 T-Log의 트랜잭션에 대한 보존 기간을 늘립니다.

EXEC sys.sp_cdc_change_job @job_type = 'capture' ,@pollinginterval = 3599;
GO

SQL Server 인스턴스에 대한 지속적 복제를 구성할 때는, 하루(86,400초) 동안 변경 사항을 보존하도록 pollinginterval 을 설정하는 것이 좋습니다. 하지만 SQL Server의 일부 버전에는 알려진 문제가 있습니다. 따라서 pollinginterval 값이 3,599초 이상으로 설정된 경우 값이 기본값(5초)으로 재설정됩니다. 이 경우 AWS DMS가 읽기 전에 T-Log 항목이 제거됩니다. 이 문제가 영향을 주는 버전을 보려면 SQL Server의 sys.sp_cdc_scan에서 "pollinginterval" 파라미터를 초에서 시간으로 변환할 때 발생하는 잘못된 결과에 대한 Microsoft 설명서를 참조하십시오.

AWS DMS 작업을 생성한마이그레이션 작업의 상태를 모니터링할 수 있습니다. 한 시간 후에 작업을 중지하고 재개하는 경우 이전에 언급한 문제로 인해 T-Log가 잘렸고 AWS DMS에 필요한 LSNs(로그 시퀀스 번호)가 없기 때문에 실패할 수 있습니다. 이를 방지하려면 다음 단계를 따르십시오.

1.    캡처 작업을 중지합니다.

use [DBName]
exec sys.sp_cdc_stop_job;

2.    AWS DMS 작업을 중지하고 나머지 모든 활동이 중지될 때까지 기다립니다.

3.    DMS 작업을 재개하고 AWS DMS 작업의 소스 지연 시간을 모니터링하여 동기화를 기다립니다.

4.    캡처 작업을 다시 시작합니다.

use [DBName]
exec sys.sp_cdc_start_job;

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?