본문 바로가기

Database/SQL Server

Amazon RDS for SQL Server를 S3에 백업 복원

Amazon RDS (Relational Database Service) for SQL Server는 관리형 관계형 데이터베이스 서비스로 SQL Server 자체 백업 기능을 통해 S3에 백업 복원할 수 있으며, 이 과정을 소개합니다.

 

사전 구성 조건

S3 버킷을 생성하고, S3버킷에 RDS가 접근할 수 있도록 옵션 그룹에 SQL_SERVER_BACKUP_RESTORE 옵션을 추가하고, 해당 그룹과 RDS 인스턴스를 연결합니다.

예) DB이름: testdb, S3 버킷 이름: test-dp01/backup

Amazon RDS for SQL Server를 S3에 백업 복원

 

백업 쿼리 예시

아래 쿼리를 사용해서 testdb를 test-dp01 버킷의 backup 디렉터리에 백업을 합니다.

exec msdb.dbo.rds_backup_database
@source_db_name='testdb',
@s3_arn_to_backup_to='arn:aws:s3:::test-dp01/test-dp01_20231225_full.bak',
@overwrite_s3_backup_file=1,
@type='FULL';

 

백업 진행율과 백업 결과를 아래의 쿼리를 이용해서 확인이 가능합니다.

-- 작업 상태 확인/ 위 쿼리 실행 후 생성된 task_id를 이용해서 조회
exec msdb.dbo.rds_task_status @task_id=5;

 

복원 쿼리 예시

아래 쿼리를 사용해서 test-dp01/backup 버킷에 있는 test-dp01_20231225_full.bak 백업 파일을 이용해서 testdb 이름으로 복원합니다. 복원할 때는 기존에 같은 이름의 DB가 있을 경우 replace옵션을 사용하거나, 기존 DB를 삭제 후 진행합니다.

-- 필요시
-- drop database testdb

exec msdb.dbo.rds_restore_database
@restore_db_name='testdb',
@s3_arn_to_backup_from='arn:aws:s3:::test-dp01/test-dp01_20231225_full.bak',

 

복원 진행율과 복원 결과를 아래의 쿼리를 이용해서 확인이 가능합니다.

-- 작업 상태 확인/ 위 쿼리 실행 후 생성된 task_id를 이용해서 조회
exec msdb.dbo.rds_task_status @task_id=6;

 

 

작업이 끝난 후 SQL Server Management Studio(SSMS)에서 데이터베이스 부분을 Refresh하면 해당 데이터베이스가 복원된 것을 확인할 수 있습니다.