메뉴
Amazon Relational Database Service
사용 설명서 (API Version 2014-10-31)

SQL Server 데이터베이스 가져오기 및 내보내기

Amazon Relational Database Service(Amazon RDS)는 전체 백업 파일(.bak 파일)을 사용하여 Microsoft SQL Server 데이터베이스에 기본 백업 및 복원을 할 수 있도록 지원합니다. 이동하기 쉬운 파일 하나로 SQL Server 데이터베이스를 가져오고 내보낼 수 있습니다. 온프레미스 데이터베이스의 전체 백업을 만들어서 Amazon Simple Storage Service(Amazon S3)에 저장한 다음, SQL Server를 실행하는 기존의 Amazon RDS DB 인스턴스에 백업 파일을 복원할 수 있습니다. Amazon RDS SQL Server 데이터베이스를 백업하여 Amazon S3에 저장하고, 그 백업 파일을 온프레미스 서버에 복원하거나 SQL Server를 실행하는 다른 Amazon RDS DB 인스턴스에 복원할 수 있습니다.

다음 다이어그램은 지원되는 시나리오를 보여 줍니다.

 기본 백업 및 복원 아키텍처

.bak 파일을 사용하여 데이터베이스를 백업 및 복원하는 과정은 철저히 최적화되어 있으며, 대개의 경우 데이터베이스를 가장 빨리 백업하고 복원할 수 있는 방법입니다. 또한 기본 백업 및 복원을 이용하는 것보다 장점이 더 많습니다. 다음을 수행할 수 있습니다.

  • 데이터베이스를 Amazon RDS로 마이그레이션합니다.

  • Amazon RDS SQL Server DB 인스턴스 간에 데이터베이스를 이동합니다.

  • 데이터를 가져오고 내보냅니다.

  • 스키마, 저장 프로시저, 트리거 및 기타 데이터베이스 코드를 마이그레이션합니다.

  • 스토리지 유형 또는 스토리지 용량을 변경합니다.

  • DB 인스턴스 전체가 아닌 데이터베이스 하나를 백업 및 복원합니다.

  • 테스트, 교육, 데모를 위해 데이터베이스 사본을 만듭니다.

  • Amazon S3를 통해 Amazon RDS에 백업 파일을 저장하거나 전송할 수 있어 재해 복구를 위한 보호 단계가 늘어납니다.

모든 리전에서 단일 AZ 및 다중 AZ DB 인스턴스에 대해 기본 백업 및 복원을 할 수 있습니다. Amazon RDS에서 지원하는 모든 Microsoft SQL Server 버전과 라이선스 포함 모델과 기존 보유 라이선스 사용 모델 모두에 대해 기본 백업 및 복원을 할 수 있습니다.

다음은 기본 백업 및 복원을 사용할 때 적용되는 몇 가지 제한 사항입니다.

  • db.t1.micro DB 인스턴스 클래스에서는 SQL Server에 대한 기본 백업 및 복원이 지원되지 않습니다. 인스턴스 클래스에 대한 자세한 내용은 모든 사용 가능한 DB 인스턴스 클래스에 대한 사양을(를) 참조하십시오.

  • Amazon RDS DB 인스턴스와 다른 리전에서는 Amazon S3 버킷으로 백업하거나 복원할 수 없습니다.

  • 한 표준 시간대의 백업 파일을 다른 표준 시간대로 복원하지 않는 것이 좋습니다. 한 표준 시간대의 백업 파일을 다른 표준 시간대로 복원하는 경우 쿼리와 애플리케이션을 감사하여 표준 시간대 변경의 영향을 확인해야 합니다.

  • 백업 파일을 만들 때 사용한 DB 인스턴스로 해당 백업 파일을 복원할 수 없습니다. 그 대신 새 DB 인스턴스로 백업 파일을 복원해야 합니다. 데이터베이스의 이름을 바꿔도 이 제약을 피할 수 없습니다.

  • 동일한 백업 파일을 하나의 DB 인스턴스로 여러 번 복원할 수 없습니다. 다시 말해 복원 중인 데이터베이스를 이미 포함하고 있는 DB 인스턴스에는 백업 파일을 복원할 수 없습니다. 데이터베이스의 이름을 바꿔도 이 제약을 피할 수 없습니다.

  • 크기가 1TB를 초과하는 데이터베이스는 백업할 수 없습니다.

  • 크기가 4TB를 초과하는 데이터베이스는 복원할 수 없습니다.

  • 유지 관리 기간 또는 Amazon RDS에서 데이터베이스 스냅샷을 만드는 동안에는 데이터베이스를 백업할 수 없습니다.

  • 다중 AZ DB 인스턴스에 백업 파일을 복원할 때는 미러링이 종료된 다음에 재구성됩니다. 복원하는 것뿐만 아니라 DB 인스턴스의 모든 데이터베이스에 대해 미러링이 종료되고 재구성됩니다. RDS가 미러링을 재구성하는 사이에 DB 인스턴스가 장애 조치를 할 수 없습니다. 미러링 재구성 시간은 복원 크기에 따라 30분 이상이 걸릴 수도 있습니다. 자세한 내용은 데이터베이스 미러링 기능을 이용한 Microsoft SQL Server의 다중 AZ 배포을(를) 참조하십시오.

백업 파일을 만들고, 복사하고, 복원하는 동안 데이터베이스를 오프라인 상태로 둘 수 있다면 Amazon RDS로 데이터베이스를 마이그레이션할 때 기본 백업 및 복원을 사용하는 것이 좋습니다. 온프레미스 데이터베이스를 오프라인으로 전환할 수 없다면 AWS Database Migration Service를 사용하여 데이터베이스를 Amazon RDS로 마이그레이션하는 것이 좋습니다. 자세한 내용은 AWS Database Migration Service란 무엇입니까? 단원을 참조하십시오.

기본 백업 및 복원은 리전 간 스냅샷 복사 기능의 데이터 복구 대신 사용하기 위한 기능이 아닙니다. Amazon RDS에서 리전 간 재해 복구를 위해 데이터베이스 스냅샷을 다른 리전으로 복사할 때는 스냅샷 복사를 이용하는 것이 좋습니다. 자세한 내용은 DB 스냅샷 또는 DB 클러스터 스냅샷 복사을(를) 참조하십시오.

기본 백업 및 복원 설정

기본 백업 및 복원을 설정하려면 다음 세 가지 구성 요소가 필요합니다.

  • 백업 파일을 저장할 Amazon S3 버킷.

  • 버킷에 액세스하기 위한 AWS Identity and Access Management(IAM) 역할.

  • DB 인스턴스의 옵션 그룹에 SQLSERVER_BACKUP_RESTORE 옵션 추가.

이미 Amazon S3 버킷이 있으면 그 버킷을 사용하면 됩니다. Amazon S3 버킷이 없는 경우에는 수동으로 새 버킷을 만들 수 있습니다. 또는 AWS Management Console을 사용하여 SQLSERVER_BACKUP_RESTORE 옵션을 추가할 때 새 버킷이 생성되도록 할 수도 있습니다. 수동으로 새 버킷을 만드는 방법은 버킷 생성을(를) 참조하십시오.

이미 IAM 역할이 있으면 그 역할을 사용하면 됩니다. IAM 역할이 없는 경우에는 수동으로 새 역할을 만들 수 있습니다. 또는 AWS Management Console을 사용하여 SQLSERVER_BACKUP_RESTORE 옵션을 추가할 때 새 IAM 역할이 생성되도록 할 수도 있습니다. 수동으로 새 IAM 역할을 만들거나 기존의 IAM 역할에 신뢰 및 권한 정책을 연결하려면 다음 단원에서 설명하는 접근 방식을 취하십시오.

DB 인스턴스에서 기본 백업 및 복원을 활성화하려면 DB 인스턴스의 옵션 그룹에 SQLSERVER_BACKUP_RESTORE 옵션을 추가합니다. 자세한 정보와 지침은 Microsoft SQL Server 기본 백업 및 복원 지원을(를) 참조하십시오.

기본 백업 및 복원을 위한 IAM 역할 수동으로 만들기

기본 백업 및 복원에 사용할 새 IAM 역할을 수동으로 만들려면 먼저 Amazon RDS 서비스에서 Amazon S3 버킷으로 권한을 위임하기 위한 역할을 만들어야 합니다. IAM 역할을 만들 때 신뢰 및 권한 정책을 연결합니다. 기본 백업 및 복원 기능의 경우, 다음 예제와 비슷한 신뢰 및 권한 정책을 사용합니다. 역할을 만드는 방법에 대한 자세한 내용은 AWS 서비스에 대한 권한을 위임할 역할 생성을(를) 참조하십시오.

신뢰 및 권한 정책에 따라 ARN(Amazon 리소스 이름)을 제공해야 합니다. ARN 형식에 대한 자세한 내용은 ARN(Amazon 리소스 이름) 및 AWS 서비스 네임스페이스을(를) 참조하십시오.

예 기본 백업 및 복원을 위한 신뢰 정책

Copy
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Service": "rds.amazonaws.com"}, "Action": "sts:AssumeRole" }] }

예 암호화 지원 없는 기본 백업 및 복원을 위한 권한 정책

Copy
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::bucket_name" }, { "Effect": "Allow", "Action": [ "s3:GetObjectMetaData", "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::bucket_name/*" } ] }

예 암호화 지원 있는 기본 백업 및 복원을 위한 권한 정책

백업 파일을 암호화하려면 권한 정책에 암호화 키를 포함시켜야 합니다. 암호화 키에 대한 자세한 내용은 AWS Key Management Service(AWS KMS) 문서의 시작하기을(를) 참조하십시오.

Copy
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Encrypt", "kms:Decrypt" ], "Resource": "arn:aws:kms:region:account-id:key/key-id" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::bucket_name" }, { "Effect": "Allow", "Action": [ "s3:GetObjectMetaData", "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::bucket_name/*" } ] }

기본 백업 및 복원 사용

기본 백업 및 복원을 활성화하고 구성한 다음에는 사용하기 시작할 수 있습니다. 먼저 Microsoft SQL Server 데이터베이스에 연결한 다음 해당 작업을 위한 Amazon RDS 저장 프로시저를 호출합니다. 데이터베이스 연결 방법에 대한 자세한 내용은 Microsoft SQL Server 데이터베이스 엔진 기반 DB 인스턴스에 연결하기을(를) 참조하십시오.

저장 프로시저 중에는 Amazon S3 버킷과 파일에 ARN(Amazon 리소스 이름)을 제공해야 하는 것도 있습니다. ARN의 형식은 arn:aws:s3:::bucket_name/file_name입니다. Amazon S3에서는 ARN에 계정 번호나 리전을 요구하지 않습니다. 선택적 AWS KMS 암호화 키도 제공하는 경우, ARN 형식은 arn:aws:kms:region:account-id:key/key-id가 됩니다. 자세한 내용은 ARN(Amazon 리소스 이름) 및 AWS 서비스 네임스페이스을(를) 참조하십시오.

데이터베이스를 백업하고, 복원하고, 진행 중인 작업을 취소하고, 백업 및 복원 작업의 상태를 추적하기 위한 저장 프로시저가 있습니다. 각각의 저장 프로시저를 호출하는 방법에 대한 지침은 다음 하위을(를) 참조하십시오.

데이터베이스 백업

데이터베이스를 백업하려면 rds_backup_database 저장 프로시저를 호출해야 합니다.

참고

유지 관리 기간 또는 Amazon RDS에서 데이터베이스 스냅샷을 만드는 동안에는 데이터베이스를 백업할 수 없습니다.

다음 파라미터는 필수 파라미터입니다.

  • @source_db_name – 백업을 만들 데이터베이스의 이름입니다.

  • @s3_arn_to_backup_to – 백업 파일을 저장할 Amazon S3 버킷이자 파일의 이름입니다. 파일 확장자는 .bak 또는 사용자가 원하는 확장자입니다.

다음 파라미터는 선택적입니다.

  • @kms_master_key_arn – 백업 파일을 암호화하려는 경우 파일 암호화에 사용할 키입니다. 암호화 키에 대한 자세한 내용은 AWS Key Management Service(AWS KMS) 문서의 시작하기을(를) 참조하십시오.

  • @overwrite_S3_backup_file – Amazon S3 버킷에 백업 파일이 이미 있는 경우 덮어쓰거나 덮어쓰지 않습니다. 기존 파일을 덮어쓰려면 1을 지정합니다. 이렇게 하면 버킷의 파일이 백업 파일이든 아니면 다른 유형의 파일이든 간에 지정된 이름으로 덮어씁니다. 파일이 이미 있는 경우 기존 파일을 덮어쓰지 않고 대신에 오류 메시지를 반환하도록 하려면 0을 지정합니다. 기본값은 0입니다.

예 암호화 없음

Copy
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;

예 암호화 있음

Copy
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;

데이터베이스 복원

데이터베이스를 복원하려면 rds_restore_database 저장 프로시저를 호출해야 합니다.

다음 파라미터는 필수 파라미터입니다.

  • @restore_db_name – 복원할 데이터베이스의 이름입니다.

  • @s3_arn_to_restore_from – 백업 파일이 들어 있는 Amazon S3 버킷이자 파일의 이름입니다.

다음 파라미터는 선택적입니다.

  • @kms_master_key_arn – 백업 파일을 암호화한 경우 파일 해독에 사용할 키입니다.

예 암호화 없음

Copy
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';

예 암호화 있음

Copy
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';

작업 취소

백업 또는 복원 작업을 취소하려면 rds_cancel_task 저장 프로시저를 호출합니다.

다음 파라미터는 선택적입니다.

  • @db_name – 작업을 취소할 데이터베이스의 이름입니다.

  • @task_id – 취소할 작업의 ID입니다. 작업 ID는 rds_task_status를 호출하여 확인할 수 있습니다.

Copy
exec msdb.dbo.rds_cancel_task @task_id=1234;

작업 상태 추적

백업 및 복원 작업의 상태를 추적하려면 rds_task_status 저장 프로시저를 호출합니다. 파라미터를 제공하지 않으면 이 저장 프로시저는 모든 작업의 상태를 반환합니다. 작업 상태는 약 2분마다 업데이트됩니다.

다음 파라미터는 선택적입니다.

  • @db_name – 작업 상태를 표시할 데이터베이스의 이름입니다.

  • @task_id – 작업 상태를 표시할 작업의 ID입니다.

Copy
exec msdb.dbo.rds_task_status @db_name='database_name';

rds_task_status 저장 프로시저는 다음과 같은 열을 반환합니다.

설명

task_id

작업의 ID입니다.

task_type

백업 작업에 대한 BACKUP_DB 또는 복원 작업에 대한 RESTORE_DB 중 하나입니다.

database_name

작업이 연결되어 있는 데이터베이스의 이름입니다.

% complete

백분율로 나타낸 작업의 진행률입니다.

duration (mins)

작업에 소요된 시간입니다(분).

lifecycle

작업의 상태입니다. 가능한 작업 상태는 다음과 같습니다.

  • CREATEDrds_backup_database 또는 rds_restore_database를 호출하는 즉시 작업이 생성되고 상태는 CREATED로 설정됩니다.

  • IN_PROGRESS – 백업 또는 복원 작업이 시작된 후 상태가 IN_PROGRESS로 설정됩니다. CREATED에서 IN_PROGRESS로 상태가 변경되려면 최대 5분이 걸릴 수 있습니다.

  • SUCCESS – 백업 또는 복원 작업이 완료된 후 상태가 SUCCESS로 설정됩니다.

  • ERROR – 백업 또는 복원 작업이 실패한 후 상태가 ERROR로 설정됩니다. 오류에 대한 자세한 내용은 task_info 열을(를) 참조하십시오.

  • CANCEL_REQUESTEDrds_cancel_task를 호출하는 즉시 작업의 상태가 CANCEL_REQUESTED로 설정됩니다.

  • CANCELLED – 작업이 성공적으로 취소된 뒤에는 작업 상태가 CANCELLED로 설정됩니다.

task_info

작업에 대한 추가 정보입니다.

데이터베이스를 백업하거나 복원하는 동안 오류가 발생하면 이 열에 오류에 대한 정보가 포함됩니다. 가능한 오류 목록 및 완화 전략은 문제 해결을(를) 참조하십시오.

last_updated

작업 상태를 마지막으로 업데이트한 날짜와 시간입니다. 상태는 5% 진행 후마다 업데이트됩니다.

created_at

작업을 생성한 날짜와 시간입니다.

overwrite_S3_backup_file

백업 작업을 호출할 때 지정된 @overwrite_S3_backup_file 파라미터의 값입니다. 자세한 내용은 데이터베이스 백업을(를) 참조하십시오.

백업 파일 압축

Amazon S3 버킷 용량 절약을 위해 백업 파일을 압축할 수 있습니다. 백업 파일 압축에 대한 자세한 내용은 Microsoft 설명서의 Backup Compression을 참조하십시오.

백업 파일 압축은 다음 데이터베이스 에디션에 지원됩니다.

  • Microsoft SQL Server Enterprise Edition

  • Microsoft SQL Server Standard Edition

백업 파일 압축을 설정하려면 다음 코드를 실행하십시오.

Copy
exec rdsadmin..rds_set_configuration 'S3 backup compression', 'true';

백업 파일 압축을 해제하려면 다음 코드를 실행하십시오.

Copy
exec rdsadmin..rds_set_configuration 'S3 backup compression', 'false';

기본 백업 및 복원을 사용하여 Amazon RDS로 마이그레이션

기업 데이터 센터에서 Amazon RDS로 데이터베이스를 마이그레이션하려면 이 주제의 절차에 따라야 합니다. 그러나 다음 단계에 따라 다음을 준비할 수 있습니다.

  1. Amazon S3 버킷 생성. 자세한 내용은 버킷 생성을(를) 참조하십시오.

  2. 데이터베이스 백업 파일을 Amazon S3 버킷에 업로드합니다. 자세한 내용은 Amazon S3 에 객체 업로드 단원을 참조하십시오.

문제 해결

다음은 기본 백업 및 복원을 사용할 때 생길 수 있는 문제들입니다.

문제 문제 해결 제안

Access Denied

올바른 버킷을 올바른 형식으로 제공했는지 확인하십시오. ARN에는 파일 이름이 포함되어야 합니다.

자세한 내용은 기본 백업 및 복원 사용을(를) 참조하십시오.

BACKUP DATABASE WITH COMPRESSION is not supported on <edition_name> Edition

백업 파일 압축은 Microsoft SQL Server Enterprise Edition과 Standard Edition에서만 지원됩니다.

자세한 내용은 백업 파일 압축을(를) 참조하십시오.

Database <database_name> cannot be restored because there is already an existing database with the same family_guid on the instance

백업 파일을 만들 때 사용한 DB 인스턴스로 해당 백업 파일을 복원할 수 없습니다. 그 대신 새 DB 인스턴스로 백업 파일을 복원해야 합니다.

또한 동일한 백업 파일을 하나의 DB 인스턴스로 여러 번 복원할 수 없습니다. 다시 말해 복원 중인 데이터베이스를 이미 포함하고 있는 DB 인스턴스에는 백업 파일을 복원할 수 없습니다. 그 대신 새 DB 인스턴스로 백업 파일을 복원해야 합니다.

Key <ARN> does not exist

암호화된 백업을 복원하려고 시도했으나 유효한 암호화 키를 제공하지 않았습니다. 암호화 키를 확인한 후 다시 시도하십시오.

자세한 내용은 데이터베이스 복원을(를) 참조하십시오.

Please reissue task with correct type and overwrite property

데이터베이스 백업을 시도할 때 이미 존재하는 파일 이름을 입력하고 덮어쓰기 속성을 false로 설정하면 저장 작업이 실패합니다. 이 오류를 해결하려면 존재하지 않는 파일 이름을 입력하거나 덮어쓰기 속성을 true로 설정하십시오.

자세한 내용은 데이터베이스 백업을(를) 참조하십시오.

데이터베이스를 복원할 때 잘못하여 rds_backup_database 저장 프로시저를 호출했을 수도 있습니다. 이 경우 대신 rds_restore_database 저장 프로시저를 호출하십시오.

자세한 내용은 데이터베이스 복원을(를) 참조하십시오.

데이터베이스를 복원할 때 rds_restore_database 저장 프로시저를 호출한 경우, 유효한 백업 파일 이름을 입력했는지 확인하십시오.

자세한 내용은 기본 백업 및 복원 사용을(를) 참조하십시오.

Please specify a bucket that is in the same region as RDS instance

Amazon RDS DB 인스턴스와 다른 리전에서는 Amazon S3 버킷으로 백업하거나 복원할 수 없습니다. Amazon S3 복제를 사용하여 백업 파일을 올바른 리전에 복사할 수 있습니다.

자세한 내용은 Amazon S3 설명서의 리전 간 복제을(를) 참조하십시오.

The specified bucket does not exist

버킷 및 파일에 대해 올바른 ARN을 올바른 형식으로 입력했는지 확인하십시오.

자세한 내용은 기본 백업 및 복원 사용을(를) 참조하십시오.

User <ARN> is not authorized to perform <kms action> on resource <ARN>

암호화된 작업을 요청했으나 올바른 AWS KMS 권한을 제공하지 않았습니다. 올바른 권한이 있는지 확인하거나 올바른 권한을 추가하십시오.

자세한 내용은 기본 백업 및 복원 설정을(를) 참조하십시오.

관련 주제