AWS DMS 마이그레이션 중에 언제 대상 데이터베이스에 보조 객체를 추가할 수 있나요?

최종 업데이트 날짜: 2022년 8월 19일

어떤 마이그레이션 단계에서 AWS Database Migration Service(AWS DMS)를 사용하여 대상 데이터베이스에 보조 객체를 추가할 수 있습니까? 또한 대상 데이터베이스에 보조 객체를 만들려면 어떤 태스크 설정을 사용해야 하나요?

간략한 설명

AWS DMS는 TargetTablePrepMode 옵션을 사용하여 대상 데이터베이스에 테이블을 생성합니다. AWS DMS는 대상 테이블을 생성할 때 대상에 데이터를 효과적으로 마이그레이션하는 데 필요한 객체만 마이그레이션합니다. 예를 들어 AWS DMS는 테이블, 프라이머리 키 및 경우에 따라 고유 인덱스를 생성합니다. 그러나 보조 인덱스, 프라이머리가 아닌 키 제약 조건, 데이터 기본값 또는 사용자 계정을 생성하지는 않습니다. 자세한 내용은 외래 키 및 보조 인덱스가 누락됨을 참조하세요.

마이그레이션 전에 대상에서 테이블을 수동으로 생성하는 경우 마이그레이션을 시작하기 전에 보조 인덱스와 같은 보조 객체를 삭제하는 것이 좋습니다.

참고: 변경 데이터 캡처(CDC) 전용 태스크에는 적용되지 않습니다.

따라서 마이그레이션이 성공했는지 확인하고 태스크 성능을 향상시키려면 보조 객체를 언제 만들어야 하는지 이해하는 것이 중요합니다. 그 시기는 태스크가 사용하는 마이그레이션 방법에 따라 다릅니다.

  • 전체 로드 전용(기존 데이터 마이그레이션)
  • 전체 로드 및 CDC(기존 데이터 마이그레이션 및 지속적인 변경 복제)
  • CDC(데이터 변경 사항만 복제)

해결 방법

전체 로드 전용

전체 로드 전용 태스크의 경우 마이그레이션을 시작하기 전에 프라이머리 키와 모든 보조 객체를 삭제하는 것이 좋습니다. 전체 로드가 완료될 때까지 이러한 객체를 생성하지 마세요. 전체 로드 중에 대상 데이터베이스에 보조 객체가 있는 경우 추가 유지 관리 오버헤드가 발생할 수 있습니다.

대상에 외래 키가 있으면 태스크가 실패할 수 있습니다. 이는 테이블 매핑에서 수동으로 지정하지 않은 한 태스크가 테이블 그룹을 특정 순서 없이 함께 로드하기 때문입니다.

마찬가지로 대상 데이터베이스에 삽입, 업데이트 또는 삭제 트리거가 있는 경우 트리거가 오류를 발생시킬 수 있습니다. 예를 들어 이전에 로드한 테이블의 삽입 트리거에 의해 트리거되는 행 삽입은 중복 행을 유발할 수 있습니다. 다른 유형의 트리거도 추가 처리를 유발하기 때문에 성능에 영향을 미칩니다.

전체 로드 및 CDC

전체 로드 및 CDC 태스크의 경우 마이그레이션을 시작하기 전에 모든 보조 객체를 삭제하는 것이 좋습니다. 그러나 다른 마이그레이션 단계에서 대상 데이터베이스에 보조 객체를 적용해야 합니다.

전체 로드 및 CDC 태스크 마이그레이션 단계와, 특정 보조 객체를 적용할 단계를 검토합니다.

  • 기존 데이터의 전체 로드 - 태스크가 전체 로드를 완료한 후 캡처된 캐시된 변경 내용을 적용하기 전에 보조 인덱스를 추가합니다.
  • 캐시된 변경 내용 적용 - 태스크가 캐시된 변경 내용을 적용한 후 외래 키(참조 무결성 제약 조건)를 추가합니다.
  • 지속적인 복제 - 마이그레이션이 완료된 후 애플리케이션 전환 전에 트리거를 생성합니다.

전체 로드가 진행되는 동안 로드되는 테이블의 변경 사항은 캐시됩니다. 이렇게 캐시된 변경 사항은 테이블에 대한 전체 로드가 완료될 때 적용됩니다. 전체 로드가 완료되고 캐시된 변경 사항이 적용된 후에는 대상 테이블의 트랜잭션 내용이 일관됩니다. 그런 다음 AWS DMS가 지속적인 복제 단계를 시작합니다. 자세한 내용은 AWS DMS의 상위 수준 보기를 참조하세요.

마이그레이션 중에 태스크를 중지하려면 다음 태스크 설정을 사용합니다.

  • 캐시된 변경 내용을 적용하기 전에 태스크를 중지하려면 StopTaskCachedChangesNotApplied를 사용합니다.
  • 캐시된 변경 내용을 적용한 후 태스크를 중지하려면 StopTaskCachedChangesApplied를 사용합니다.

참고: AWS Command Line Interface(AWS CLI)를 사용하여 StopTaskCachedChangesNotApplied와 StopTaskCachedChangesApplied를 모두 설정할 수 있습니다. AWS CLI 명령을 실행할 때 오류가 발생하는 경우 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

CDC 전용 태스크

CDC 전용 태스크의 경우 마이그레이션 전에 대상 데이터베이스에 보조 인덱스와 외래 키를 만들 수 있습니다. 그런 다음 마이그레이션이 완료된 후 애플리케이션 전환 전에 대상에서 트리거를 생성합니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?