AWS re:Post을(를) 사용하면 다음에 동의하게 됩니다. AWS re:Post 이용 약관

EC2 인스턴스 또는 온프레미스 VM에서 RDS for SQL Server로 데이터베이스를 마이그레이션하려면 어떻게 해야 하나요?

4분 분량
0

Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 또는 온프레미스 Microsoft SQL Server 인스턴스에서 Microsoft SQL Server 인스턴스용 Amazon Relational Database Service(RDS) 로 데이터베이스를 마이그레이션하려고 합니다. 데이터 마이그레이션에 사용할 수 있는 옵션에는 무엇이 있나요?

해결 방법

데이터 마이그레이션 방법

네이티브 SQL Server 백업 및 복원

네이티브 백업 및 복원을 사용하여 온프레미스 또는 EC2 인스턴스에서 Amazon RDS for SQL Server 인스턴스로 데이터베이스를 마이그레이션할 수 있습니다.

1.    Amazon Simple Storage Service(S3) 버킷을 생성하여 소스 인스턴스로부터 백업을 저장합니다. S3 버킷은 RDS 인스턴스와 동일한 리전에 있어야 합니다.

2.    버킷에 액세스하는 AWS Identity and Access Management(IAM) 역할을 생성합니다.

3.    RDS for SQL Server 인스턴스와 연결된 옵션 그룹에 SQLSERVER_BACKUP_RESTORE 옵션을 추가합니다.

4.    소스 인스턴스(온프레미스 또는 EC2)에서 백업을 생성한 다음 1단계에서 생성한 S3 버킷에 복사합니다.

5.    다음 스크립트를 실행하여 백업을 RDS for SQL Server 인스턴스에 복원합니다.

exec msdb.dbo.rds_restore_database
@restore_db_name='database_name', 
@s3_arn_to_restore_from='arn:aws:s3:::bucket_name file_name_and_extension';

6.    다음 스크립트를 실행하여 RDS 인스턴스 데이터베이스를 S3에 백업합니다.

exec msdb.dbo.rds_backup_database 
@source_db_name='database_name',
@s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension', 
@overwrite_S3_backup_file=1;

참고: 차등 백업을 백업하고 복원할 수도 있습니다.

AWS Database Migration Service(AWS DMS)

1.    SQL Server를 AWS DMS의 소스 또는 대상으로 사용하기 위한 사전 요구 사항 및 제한 사항을 확인합니다.

2.    DMS 복제 인스턴스를 생성합니다.

3.    DMS를 사용하여 소스 및 대상 엔드포인트를 생성합니다.

4.    마이그레이션 태스크를 생성합니다.

트랜잭션 복제(Transactional replication)

온프레미스 또는 EC2 SQL Server 인스턴스에서 RDS for SQL Server 인스턴스로 트랜잭션 복제를 설정할 수 있습니다. RDS for SQL Server 인스턴스는 온프레미스 또는 EC2 SQL Server 인스턴스에서 Publisher-Distributor로 푸시 구독을 사용하는 구독자로만 만들 수 있습니다.

온프레미스 또는 EC2 SQL Server 인스턴스에서 트랜잭션 복제를 설정하기 위한 단계별 지침은 다음을 참조하세요.

백업 패키지(.bacpac) 파일

.bacpac 파일은 복사된 메타데이터와 파일로 압축된 데이터로 구성됩니다. 이 방법은 약 200GB의 데이터베이스에 가장 적합합니다.

내보내기/가져오기를 사용하거나 SQLPackage.exe(명령줄) 유틸리티를 사용하여 .bacpac 파일을 만들 수 있습니다.

.bacpac 파일에 대한 자세한 내용은 .bacpac 방법을 사용하여 Azure SQL 데이터베이스에서 Amazon RDS for SQL Server로 데이터베이스 마이그레이션을 참조하세요.

데이터를 가져오는 방법

스크립트 생성 및 게시 마법사(Generate and Publish Script Wizard)

데이터베이스가 1GB 미만인 경우 스크립트 생성 및 게시 마법사를 사용할 수 있습니다. 대형 데이터베이스의 경우 가져오기 및 내보내기 마법사나 대량 복사 방법을 사용하여 데이터베이스의 스키마를 스크립팅할 수 있습니다.

스크립트 생성 및 게시 마법사에 대한 자세한 내용은 Microsoft SQL Server 설명서에서 방법: 스크립트 생성(SQL Server Management Studio)을 참조하세요.

참고: 스크립팅 옵션 설정(Set Scripting Option) 페이지의 **고급(Advanced)**에서 **특정 위치에 스크립트 저장(Save scripts to specific location)**을 선택했는지 확인하세요. 고급(Advanced) 설정은 가져오기와 내보내기 중에 테이블에 객체를 포함하거나 제외하기 위한 추가 옵션을 제공합니다.

가져오기 및 내보내기 마법사(Import and Export Wizard)

가져오기 및 내보내기 마법사는 통합 패키지를 생성합니다. 통합 패키지는 온프레미스 또는 EC2 SQL Server 데이터베이스에서 RDS for SQL Server 인스턴스로 데이터를 복사하는 데 사용됩니다. RDS 인스턴스에 복사하려는 특정 테이블을 필터링할 수 있습니다.

가져오기 및 내보내기 마법사에 대한 자세한 내용은 Microsoft SQL Server 설명서에서 방법: SQL Server 가져오기 및 내보내기 마법사 실행을 참조하세요.

참고: 가져오기 및 내보내기 마법사를 실행할 때는 대상 RDS for SQL Server 인스턴스에 대해 다음 옵션을 선택해야 합니다.

  • **서버 이름(Server Name)**에는 RDS DB 인스턴스의 엔드포인트 이름을 입력합니다.
  • **인증 모드(Authentication mode)**에는 **SQL Server 인증(SQL Server Authentication)**을 선택합니다.
  • 사용자 이름(User name) 및 **암호(Password)**에는 RDS 인스턴스에서 생성한 마스터 사용자를 입력합니다.

대량 복사 프로그램 유틸리티(Bulk Copy Program utility)

대량 복사 프로그램(bcp)은 SQL Server 인스턴스 간에 데이터를 대량으로 복사하는 데 사용되는 명령줄 유틸리티입니다. bcp 유틸리티를 사용하여 대용량 데이터 세트를 SQL Server 인스턴스로 가져오거나 파일로 내보낼 수 있습니다.

다음은 INOUT 명령의 예입니다.

OUT: 테이블의 레코드를 파일로 내보내거나 덤프하려면 이 명령을 사용하세요.

bcp dbname.schema_name.table_name out C:\table_name.txt -n -S localhost -U username -P     password -b 10000

앞의 코드에는 다음 옵션이 포함되어 있습니다.

  • -n: 대량 복사에서 복사할 데이터의 기본 데이터 유형을 사용하도록 지정합니다.
  • -S: bcp 유틸리티가 연결되는 SQL Server 인스턴스를 지정합니다.
  • -U: SQL Server 인스턴스에 로그인할 계정의 사용자 이름을 지정합니다.
  • -P: -U로 지정된 사용자의 암호를 지정합니다.
  • -b: 가져온 데이터의 배치당 행 수를 지정합니다.

IN: 이 명령을 사용하여 덤프 파일의 모든 레코드를 기존 테이블로 가져옵니다. bcp 명령을 실행하기 전에 테이블을 생성해야 합니다.

bcp dbname.schema_name.table_name in C:\table_name.txt -n -S endpoint,port -U master_user_name -P master_user_password -b 10000

자세한 내용은 Microsoft SQL Server 설명서에서 bcp 유틸리티를 참조하세요.