Amazon Relational Database Service(Amazon RDS)로 SQL Server 데이터베이스의 기본 백업을 수행하고 백업 파일을 Amazon Simple Storage Service(Amazon S3)에 저장하려고 합니다. 또한 SQL Server를 실행하는 동일하거나 다른 Amazon RDS 데이터베이스 인스턴스에 백업을 복원하고 싶습니다.
해결 방법
기본 백업을 시작하기 전에 기본 백업 및 복원을 설정했는지 확인하십시오.
참고: Amazon S3 버킷은 Amazon RDS 데이터베이스 인스턴스와 동일한 AWS 리전에 있어야 합니다.
SQL Server 데이터베이스의 기본 백업 설정
다음 단계를 완료하십시오.
- Amazon Aurora 및 RDS 콘솔을 엽니다.
- 탐색 창에서 옵션 그룹을 선택합니다.
- 그룹 생성을 선택하고 서버의 이름, 설명, 엔진, 엔진 버전을 입력합니다.
- 생성을 선택합니다.
- 옵션 그룹을 선택한 다음, 옵션 추가를 선택합니다.
- 옵션 이름에서 SQLSERVER_BACKUP_RESTORE를 선택합니다.
참고: 역할에 필요한 권한이 부여되도록 새 AWS Identity and Access Management(IAM) 역할을 생성하는 것이 가장 좋습니다.
- S3 대상에서 S3 버킷을 선택합니다.
- 예약에서 즉시를 선택합니다.
- 옵션 추가를 선택합니다.
옵션 그룹을 데이터베이스 인스턴스와 연결
다음 단계를 완료하십시오.
- 탐색 창에서 데이터베이스를 선택한 다음, 백업할 인스턴스를 선택합니다.
- 수정을 선택한 다음, 추가 구성을 선택합니다.
- 데이터베이스 옵션에서 옵션 그룹을 선택한 다음, 계속을 선택합니다.
- 수정 사항 요약을 검토합니다.
- 일정 수정에서 즉시 적용을 선택한 다음, DB 인스턴스 수정을 선택합니다.
참고: 이 변경 자체로 인해 가동 중지 시간이 발생하지는 않지만 즉시 적용 옵션을 선택할 때는 주의해야 합니다. 데이터베이스 인스턴스에 가동 중지 시간이 필요한 보류 중인 변경 사항이 있는 경우 즉시 적용 옵션을 사용하면 예기치 않은 가동 중지 시간이 발생할 수 있습니다. 자세한 내용은 수정 예약 설정 사용을 참조하십시오.
- 상태가 수정 중에서 사용 가능으로 변경될 때까지 기다립니다.
SSMS를 통해 데이터베이스 인스턴스에 연결
다음 단계를 완료하십시오.
- Microsoft SQL Server Management Studio(SSMS)에 db_owner 또는 db_backupoperator로 로그인합니다.
- 새 쿼리를 선택하고 데이터베이스 백업을 시작합니다.
- 다음 SQL 문 중 하나를 입력합니다.
데이터베이스의 암호화되지 않은 백업을 시작하려면 다음 명령문을 실행합니다.
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;
백업을 암호화하려면 다음 명령문을 실행합니다.
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',
@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id',
@overwrite_s3_backup_file=1
참고: 이미 존재하는 백업 파일을 덮어쓰려면 @overwrite_s3_backup_file=1을 사용하십시오. 기본값은 0입니다.
참고: 위의 문에서 database_name, bucket_name, file_name_and_extension, region, account-id 및 key-id를 해당 값으로 바꾸십시오. 사용자 데이터베이스를 새 Amazon RDS 데이터베이스 인스턴스로 복원하려면 S3 버킷에서 생성한 백업 파일을 사용하십시오. rds_backup_database 또는 rds_restore_database 프로시저를 직접적으로 호출하면 해당 작업이 작업에 대한 정보를 생성합니다.
작업의 수명 주기 상태가 SUCCESS로 표시되면 작업이 완료된 것입니다. Amazon S3 콘솔을 사용하여 사용자 데이터베이스 백업을 생성한 버킷의 백업 파일을 볼 수 있습니다. 데이터베이스 인스턴스를 복원하려면 S3 버킷에 있는 백업 파일을 다운로드하거나 사용자 데이터베이스 백업 파일을 사용하십시오. 동일한 Amazon RDS for SQL Server 데이터베이스 인스턴스나 새 Amazon RDS 데이터베이스 인스턴스로 복원할 수 있습니다. 또한 이 백업 파일을 온프레미스 서버 또는 SQL Server를 실행하는 다른 Amazon RDS 데이터베이스 인스턴스에 복원할 수 있습니다. 자세한 내용은 Microsoft 웹 사이트에서 Quickstart: Backup and restore a SQL Server database with SSMS를 참조하십시오.
S3 버킷에 있는 백업 파일에서 복원하려면 다음 SQL 문 중 하나를 사용하십시오.
암호화되지 않은 백업을 복원하려면 다음 명령문을 실행합니다.
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';
암호화된 백업을 복원하려면 다음 명령문을 실행합니다.
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',
@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id';
참고: 위의 명령문에서 전체 Amazon 리소스 이름(ARN)을 원하는 값으로 바꾸십시오.
백업 또는 복원 명령문의 진행 상황을 추적하려면 출력에서 작업 ID를 식별하십시오. 또는 다음 명령문을 사용하여 특정 데이터베이스에 대해 완료된 작업과 보류 중인 작업을 모두 식별합니다.
exec msdb.dbo.rds_task_status @db_name='database_name';
참고: database_name을 데이터베이스 이름으로 바꾸십시오.
작업 상태를 추적하려면 다음 SQL 문을 실행하십시오.
exec msdb.dbo.rds_task_status @task_id=Task_id;
참고: 이전 명령문에서 Task_id를 원하는 값으로 바꾸십시오.
발생할 수 있는 오류와 해결 방법에 대한 자세한 내용은 Microsoft SQL Server 엔터프라이즈 워크로드를 Amazon RDS로 마이그레이션을 참조하십시오.
관련 정보
백업 소개
데이터 백업, 복원 및 내보내기
기본 백업과 복원을 사용해 SQL Server 데이터베이스 가져오기 및 내보내기