Amazon RDS Custom for SQL Server DB 인스턴스 백업 및 복원 - Amazon Relational Database Service

Amazon RDS Custom for SQL Server DB 인스턴스 백업 및 복원

Amazon RDS와 마찬가지로 RDS Custom은 백업 보존이 실행되면 RDS Custom for SQL Server DB 인스턴스의 자동 백업을 생성하고 저장합니다. 또한, 수동으로 DB 인스턴스를 백업할 수도 있습니다. 자동 백업은 스냅샷 백업과 트랜잭션 로그 백업으로 구성됩니다. 스냅샷 백업은 지정된 백업 기간 동안 DB 인스턴스의 전체 스토리지 볼륨에 대해 수행됩니다. PITR 대상 데이터베이스의 트랜잭션 로그 백업은 정기적으로 수행됩니다. RDS Custom은 지정한 백업 보존 기간에 따라 DB 인스턴스의 자동 백업을 저장합니다. 자동 백업을 사용하여 DB 인스턴스를 백업 보존 기간 내의 특정 시점으로 복구할 수 있습니다.

스냅샷을 수동으로 백업할 수도 있습니다. 언제든지 이러한 스냅샷 백업에서 새 DB 인스턴스를 생성할 수 있습니다. DB 스냅샷 수동 생성에 대한 자세한 내용은 RDS Custom for SQL Server 스냅샷 생성 섹션을 참조하세요.

스냅샷 백업은 운영상 전체 백업으로 제공되지만, 증분 스토리지 사용에 대해서만 요금이 청구됩니다. RDS Custom DB 인스턴스의 첫 번째 스냅샷에는 전체 DB 인스턴스의 데이터가 포함되며, 동일한 데이터베이스의 후속 스냅샷은 증분식이며, 마지막 스냅샷 이후 변경된 데이터만 저장됩니다.

RDS Custom for SQL Server 스냅샷 생성

RDS Custom for SQL Server는 DB 인스턴스의 스토리지 볼륨 스냅샷을 생성하여 개별 데이터베이스뿐만 아니라 전체 DB 인스턴스를 백업합니다. 스냅샷을 생성할 때 백업할 RDS Custom for SQL Server DB 인스턴스를 지정하고, 나중에 복원할 수 있도록 스냅샷에 이름을 지정합니다.

스냅샷을 생성할 때 RDS Custom for SQL Server는 (D:) 볼륨에 대한 Amazon EBS 스냅샷을 생성하며, 이는 DB 인스턴스에 연결된 데이터베이스 볼륨입니다. 스냅샷을 특정 DB 인스턴스에 쉽게 연결할 수 있도록 DBSnapshotIdentifier, DbiResourceIdVolumeType으로 태그가 지정됩니다.

DB 스냅샷을 생성하면 I/O가 잠시 중단됩니다. 이러한 일시 중단은 DB 인스턴스의 크기와 클래스에 따라 몇 초에서 몇 분까지 지속될 수 있습니다. 스냅샷 생성 시간은 데이터베이스의 총 수와 크기에 따라 달라집니다. 시점 복구(PITR) 작업에 사용할 수 있는 데이터베이스 수에 대한 자세한 내용은 인스턴스 클래스 유형별 PITR 대상 데이터베이스 수 섹션을 참조하세요.

스냅샷에는 전체 스토리지 볼륨이 포함되므로 임시 파일과 같은 파일의 크기도 스냅샷 생성 시간에 영향을 미칩니다. 스냅샷을 생성하는 방법에 대한 자세한 내용은 단일 AZ DB 인스턴스용 DB 스냅샷 생성 섹션을 참조하세요.

콘솔 또는 AWS CLI를 사용하여 RDS Custom for SQL Server 스냅샷을 생성할 수 있습니다.

RDS Custom 스냅샷을 생성하는 방법
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 Databases(데이터베이스)를 선택합니다.

  3. RDS Custom DB 인스턴스 목록에서 스냅샷을 생성할 인스턴스를 선택합니다.

  4. 작업에서 스냅샷 만들기를 선택합니다.

    [DB 스냅샷 생성(Take DB Snapshot)] 창이 나타납니다.

  5. 스냅샷 이름(Snapshot name)에 스냅샷 이름을 입력합니다.

  6. [스냅샷 생성(Take Snapshot)]을 선택합니다.

create-db-snapshot AWS CLI 명령을 사용하여 RDS Custom DB 인스턴스의 스냅샷을 생성합니다.

다음과 같은 옵션을 지정할 수 있습니다.

  • --db-instance-identifier - 백업할 RDS Custom DB 인스턴스를 식별합니다.

  • --db-snapshot-identifier - 나중에 복원할 수 있도록 RDS Custom 스냅샷의 이름을 지정합니다.

이 예제에서는 my-custom-instance라는 RDS Custom DB 인스턴스에 대해 my-custom-snapshot이라는 DB 스냅샷을 생성합니다.

Linux, macOS, Unix:

aws rds create-db-snapshot \ --db-instance-identifier my-custom-instance \ --db-snapshot-identifier my-custom-snapshot

Windows의 경우:

aws rds create-db-snapshot ^ --db-instance-identifier my-custom-instance ^ --db-snapshot-identifier my-custom-snapshot

RDS Custom for SQL Server DB 스냅샷에서 복원

RDS Custom for SQL Server DB 인스턴스를 복원하는 경우 DB 스냅샷의 이름과 새로운 인스턴스의 이름을 입력합니다. 스냅샷에서 기존 RDS Custom DB 인스턴스로 복원할 수 없습니다. 복원 시 새로운 RDS Custom for SQL Server DB 인스턴스가 생성됩니다.

스냅샷에서 복원하면 스토리지 볼륨이 스냅샷을 생성한 시점으로 복원됩니다. 여기에는 (D:) 볼륨에 있던 모든 데이터베이스와 기타 파일이 포함됩니다.

DB 스냅샷에서 RDS Custom DB 인스턴스를 복원하는 방법
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 [Snapshots]를 선택합니다.

  3. 복원 원본으로 사용할 DB 스냅샷을 선택합니다.

  4. 작업에서 스냅샷 복원을 선택합니다.

  5. DB 인스턴스 복원(Restore DB instance) 페이지의 DB 인스턴스 식별자(DB instance identifier)에 복원된 RDS Custom DB 인스턴스의 이름을 입력합니다.

  6. DB 인스턴스 복원을 선택합니다.

restore-db-instance-from-db-snapshot AWS CLI 명령을 사용하여 RDS Custom DB 스냅샷을 복원합니다.

복원하려는 스냅샷이 프라이빗 DB 인스턴스용인 경우 db-subnet-group-nameno-publicly-accessible을 모두 올바르게 지정해야 합니다. 그렇지 않으면 DB 인스턴스의 기본값에 공개적으로 액세스할 수 있게 됩니다. 다음 옵션이 필요합니다.

  • db-snapshot-identifier - 복구할 스냅샷을 식별합니다.

  • db-instance-identifier - DB 스냅샷에서 생성할 RDS Custom DB 인스턴스의 이름을 지정합니다.

  • custom-iam-instance-profile - RDS Custom for Oracle DB 인스턴스의 기본 Amazon EC2 인스턴스와 연결된 인스턴스 프로필을 지정합니다.

다음 코드는 my-custom-instance에 대한 my-custom-snapshot이라는 스냅샷을 복원합니다.

Linux, macOS, Unix:

aws rds restore-db-instance-from-db-snapshot \ --db-snapshot-identifier my-custom-snapshot \ --db-instance-identifier my-custom-instance \ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \ --no-publicly-accessible

Windows의 경우:

aws rds restore-db-instance-from-db-snapshot ^ --db-snapshot-identifier my-custom-snapshot ^ --db-instance-identifier my-custom-instance ^ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^ --no-publicly-accessible

RDS Custom for SQL Server 인스턴스를 특정 시점으로 복원

DB 인스턴스를 특정 시점(PITR)으로 복원하여 새로운 DB 인스턴스를 생성할 수 있습니다. PITR을 지원하려면 DB 인스턴스에 백업 보존 기능이 활성화되어 있어야 합니다.

RDS Custom for SQL Server DB 인스턴스의 가장 빠른 복원 가능 시간은 여러 요소에 따라 달라지지만, 일반적으로 현재 시간에서 5분 이내입니다. DB 인스턴스의 최근 복원 가능 시간을 확인하려면 AWS CLIdescribe-db-instances 명령을 사용한 후 DB 인스턴스의 LatestRestorableTime 필드에 반환되는 값을 살펴봅니다. Amazon RDS 콘솔에서 각 DB 인스턴스의 복원 가능한 최신 시간을 보려면 [ 자동 백업을 선택합니다.

백업 보존 기간 중 어느 특정 시점으로든 복원할 수 있습니다. 각 DB 인스턴스의 복원 가능한 가장 빠른 시간을 보려면 Amazon RDS 콘솔에서 자동 백업을 선택합니다.

PITR에 대한 일반적인 정보는 DB 인스턴스를 지정된 시간으로 복원 섹션을 참조하세요.

RDS Custom for SQL Server에 대한 PITR 고려 사항

RDS Custom for SQL Server에서 PITR은 다음과 같은 중요한 면에서 Amazon RDS의 PITR과 다릅니다.

  • PITR은 DB 인스턴스의 데이터베이스만 복원합니다. C: 드라이브의 운영 체제 또는 파일은 복원되지 않습니다.

  • RDS Custom for SQL Server DB 인스턴스의 경우 데이터베이스가 자동으로 백업되며 다음 조건에서만 PITR을 사용할 수 있습니다.

    • 데이터베이스가 온라인 상태입니다.

    • 복구 모델이 FULL로 설정되어 있습니다.

    • 쓰기가 가능합니다.

    • D: 드라이브에 실존 파일이 있습니다.

    • rds_pitr_blocked_databases 테이블에 등록되어 있지 않습니다. 자세한 내용은 데이터베이스를 PITR에 포함되지 않도록 설정 섹션을 참조하세요.

  • PITR 대상 데이터베이스는 데이터베이스 ID의 순서에 따라 결정됩니다. RDS Custom for SQL Server는 DB 인스턴스당 최대 5,000개의 데이터베이스를 허용합니다. 그러나 RDS Custom for SQL Server DB 인스턴스에 대해 PITR 작업을 통해 복원되는 최대 데이터베이스 수는 인스턴스 클래스 유형에 따라 달라집니다. 자세한 내용은 인스턴스 클래스 유형별 PITR 대상 데이터베이스 수 섹션을 참조하세요.

    PITR에 포함되지 않는 다른 데이터베이스는 PITR에 사용되는 자동 스냅샷 백업을 비롯하여 DB 스냅샷에서 복원할 수 있습니다.

  • 새로운 데이터베이스를 추가하거나, 데이터베이스 이름을 바꾸거나, PITR 대상 데이터베이스를 복원하면 DB 인스턴스의 스냅샷이 시작됩니다.

  • PITR 대상인 최대 데이터베이스 수는 데이터베이스 인스턴스가 규모 조정 컴퓨팅 작업을 거칠 때 대상 인스턴스 클래스 유형에 따라 달라집니다. 인스턴스의 더 많은 데이터베이스가 PITR에 적합하도록 인스턴스를 확장하면 새 스냅샷이 생성됩니다.

  • 복원된 데이터베이스의 이름은 소스 DB 인스턴스와 동일합니다. 다른 이름을 지정할 수 없습니다.

  • AWSRDSCustomSQLServerIamRolePolicy는 다른 AWS 서비스에 대한 액세스가 필요합니다. 자세한 내용은 AWSRDSCustomSQLServerInstanceRole에 액세스 정책 추가 섹션을 참조하세요.

  • RDS Custom for SQL Server에는 표준 시간대 변경이 지원되지 않습니다. 운영 체제 또는 DB 인스턴스 시간대를 변경하면 PITR(및 기타 자동화)이 작동하지 않습니다.

인스턴스 클래스 유형별 PITR 대상 데이터베이스 수

다음 표에는 인스턴스 클래스 유형에 따라 PITR에 사용할 수 있는 최대 데이터베이스 수가 나와 있습니다.

인스턴스 클래스 유형 PITR에 사용할 수 있는 최대 데이터베이스 수
db.*.large 100
db.*.xlarge to db.*.2xlarge 150
db.*.4xlarge to db.*.8xlarge 300
db.*.12xlarge to db.*.16xlarge 600
db.*.24xlarge, db.*32xlarge 1000

* 서로 다른 인스턴스 클래스 유형을 나타냅니다.

DB 인스턴스에서 PITR에 사용할 수 있는 최대 데이터베이스 수는 인스턴스 클래스 유형에 따라 다릅니다. RDS Custom for SQL Server에서 지원하는 최대 인스턴스 클래스 유형의 경우 100개부터 1,000개까지 다양합니다. SQL 서버 시스템 데이터베이스(master, model, msdb, tempdb)는 이 제한에 포함되지 않습니다. 대상 인스턴스 클래스 유형에 따라 DB 인스턴스를 확장하거나 축소할 때 RDS Custom은 PITR에 사용할 수 있는 데이터베이스 수를 자동으로 업데이트합니다. RDS Custom for SQL Server는 DB 인스턴스에서 PITR에 사용할 수 있는 최대 데이터베이스 수가 변경될 때 RDS-EVENT-0352를 전송합니다. 자세한 내용은 사용자 지정 엔진 버전 이벤트 섹션을 참조하세요.

참고

100개 이상의 데이터베이스에 대한 PITR 지원은 2023년 8월 26일 이후에 생성된 DB 인스턴스에서만 사용할 수 있습니다. 2023년 8월 26일 이전에 생성된 인스턴스의 경우 PITR에 사용할 수 있는 최대 데이터베이스 수는 인스턴스 클래스에 관계없이 100개입니다. 2023년 8월 26일 이전에 생성된 DB 인스턴스의 데이터베이스 100개 이상에 대해 PITR 지원을 활성화하려면 다음 작업을 수행할 수 있습니다.

  • DB 엔진 버전을 15.00.4322.2.v1 이상으로 업그레이드

PITR 작업 중에 RDS Custom은 복원 시 소스 DB 인스턴스에서 PITR에 속했던 모든 데이터베이스를 복원합니다. 대상 DB 인스턴스가 복원 작업을 완료하고 백업 보존을 활성화하면 대상 DB 인스턴스에서 PITR에 사용할 수 있는 최대 데이터베이스 수를 기준으로 DB 인스턴스가 백업을 시작합니다.

예를 들어, DB 인스턴스가 200개의 데이터베이스가 있는 db.*.xlarge에서 실행되는 경우는 다음과 같습니다.

  1. RDS Custom for SQL Server는 PITR 백업을 위해 데이터베이스 ID를 기준으로 정렬된 처음 150개의 데이터베이스를 선택합니다.

  2. db.*.4xlarge까지 확장하도록 인스턴스를 수정합니다.

  3. 컴퓨팅 확장 작업이 완료되면 RDS Custom for SQL Server는 데이터베이스 ID를 기준으로 정렬된 처음 300개의 데이터베이스를 PITR 백업용으로 선택합니다. 이제 PITR 요구 사항 조건을 충족하는 200개 데이터베이스 각각이 PITR을 사용할 수 있습니다.

  4. 이제 다시 db.*.xlarge로 인스턴스 규모를 축소합니다.

  5. 컴퓨팅 축소 작업이 완료되면 RDS Custom for SQL Server는 데이터베이스 ID를 기준으로 정렬된 처음 150개의 데이터베이스를 PITR 백업용으로 다시 선택합니다.

데이터베이스를 PITR에 포함되지 않도록 설정

PITR에서 개별 데이터베이스를 제외하도록 선택할 수 있습니다. 이렇게 하려면 database_id 값을 rds_pitr_blocked_databases 테이블에 넣으면 됩니다. 다음 SQL 스크립트를 사용하여 테이블을 생성합니다.

rds_pitr_blocked_databases 테이블을 생성하는 방법
  • 다음 SQL 스크립트를 실행합니다.

    create table msdb..rds_pitr_blocked_databases ( database_id INT NOT NULL, database_name SYSNAME NOT NULL, db_entry_updated_date datetime NOT NULL DEFAULT GETDATE(), db_entry_updated_by SYSNAME NOT NULL DEFAULT CURRENT_USER, PRIMARY KEY (database_id) );

대상 데이터베이스 및 대상이 아닌 데이터베이스 목록은 Amazon S3 버킷 do-not-delete-rds-custom-$ACCOUNT_ID-$REGION-unique_identifierRDSCustomForSQLServer/Instances/DB_instance_resource_ID/TransactionLogMetadata 디렉터리에 있는 RI.End 파일을 참조하세요. RI.End 파일에 대한 자세한 내용은 Amazon S3의 트랜잭션 로그를 참조하세요.

다음 SQL 스크립트를 사용하여 PITR 대상인 데이터베이스 목록을 확인할 수도 있습니다. @limit 변수를 인스턴스 클래스의 PITR에 사용할 수 있는 최대 데이터베이스 수로 설정합니다. 자세한 내용은 인스턴스 클래스 유형별 PITR 대상 데이터베이스 수 섹션을 참조하세요.

DB 인스턴스 클래스의 PITR 대상인 데이터베이스 목록을 확인하려면
  • 다음 SQL 스크립트를 실행합니다.

    DECLARE @Limit INT; SET @Limit = (insert-database-instance-limit-here); USE msdb; IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'rds_pitr_blocked_databases')) WITH TABLE0 AS ( SELECT hdrs.database_id as DatabaseId, sdb.name as DatabaseName, 'ALWAYS_ON_NOT_WRITABLE_REPLICA' as Reason, NULL as DatabaseNameOnPitrTable FROM sys.dm_hadr_database_replica_states hdrs INNER JOIN sys.databases sdb ON sdb.database_id = hdrs.database_id WHERE (hdrs.is_local = 1 AND hdrs.is_primary_replica = 0) OR (sys.fn_hadr_is_primary_replica (sdb.name) = 1 AND DATABASEPROPERTYEX (sdb.name, 'Updateability') = 'READ_ONLY') ), TABLE1 as ( SELECT dbs.database_id as DatabaseId, sysdbs.name as DatabaseName, 'OPTOUT' as Reason, CASE WHEN dbs.database_name = sysdbs.name THEN NULL ELSE dbs.database_name END AS DatabaseNameOnPitrTable FROM msdb.dbo.rds_pitr_blocked_databases dbs INNER JOIN sys.databases sysdbs ON dbs.database_id = sysdbs.database_id WHERE sysdbs.database_id > 4 ), TABLE2 as ( SELECT db.name AS DatabaseName, db.create_date AS CreateDate, db.state_desc AS DatabaseState, db.database_id AS DatabaseId, rs.database_guid AS DatabaseGuid, rs.last_log_backup_lsn AS LastLogBackupLSN, rs.recovery_fork_guid RecoveryForkGuid, rs.first_recovery_fork_guid AS FirstRecoveryForkGuid, db.recovery_model_desc AS RecoveryModel, db.is_auto_close_on AS IsAutoClose, db.is_read_only as IsReadOnly, NEWID() as FileName, CASE WHEN(db.state_desc = 'ONLINE' AND db.recovery_model_desc != 'SIMPLE' AND((db.is_auto_close_on = 0 and db.collation_name IS NOT NULL) OR db.is_auto_close_on = 1)) AND db.is_read_only != 1 AND db.user_access = 0 AND db.source_database_id IS NULL AND db.is_in_standby != 1 THEN 1 ELSE 0 END AS IsPartOfSnapshot, CASE WHEN db.source_database_id IS NULL THEN 0 ELSE 1 END AS IsDatabaseSnapshot FROM sys.databases db INNER JOIN sys.database_recovery_status rs ON db.database_id = rs.database_id WHERE DB_NAME(db.database_id) NOT IN('tempdb') AND db.database_id NOT IN (SELECT DISTINCT DatabaseId FROM TABLE1) AND db.database_id NOT IN (SELECT DISTINCT DatabaseId FROM TABLE0) ), TABLE3 as( Select @Limit+count(DatabaseName) as TotalNumberOfDatabases from TABLE2 where TABLE2.IsPartOfSnapshot=1 and DatabaseName in ('master','model','msdb') ) SELECT TOP(SELECT TotalNumberOfDatabases from TABLE3) DatabaseName,CreateDate,DatabaseState,DatabaseId from TABLE2 where TABLE2.IsPartOfSnapshot=1 ORDER BY TABLE2.DatabaseID ASC ELSE WITH TABLE0 AS ( SELECT hdrs.database_id as DatabaseId, sdb.name as DatabaseName, 'ALWAYS_ON_NOT_WRITABLE_REPLICA' as Reason, NULL as DatabaseNameOnPitrTable FROM sys.dm_hadr_database_replica_states hdrs INNER JOIN sys.databases sdb ON sdb.database_id = hdrs.database_id WHERE (hdrs.is_local = 1 AND hdrs.is_primary_replica = 0) OR (sys.fn_hadr_is_primary_replica (sdb.name) = 1 AND DATABASEPROPERTYEX (sdb.name, 'Updateability') = 'READ_ONLY') ), TABLE1 as ( SELECT db.name AS DatabaseName, db.create_date AS CreateDate, db.state_desc AS DatabaseState, db.database_id AS DatabaseId, rs.database_guid AS DatabaseGuid, rs.last_log_backup_lsn AS LastLogBackupLSN, rs.recovery_fork_guid RecoveryForkGuid, rs.first_recovery_fork_guid AS FirstRecoveryForkGuid, db.recovery_model_desc AS RecoveryModel, db.is_auto_close_on AS IsAutoClose, db.is_read_only as IsReadOnly, NEWID() as FileName, CASE WHEN(db.state_desc = 'ONLINE' AND db.recovery_model_desc != 'SIMPLE' AND((db.is_auto_close_on = 0 and db.collation_name IS NOT NULL) OR db.is_auto_close_on = 1)) AND db.is_read_only != 1 AND db.user_access = 0 AND db.source_database_id IS NULL AND db.is_in_standby != 1 THEN 1 ELSE 0 END AS IsPartOfSnapshot, CASE WHEN db.source_database_id IS NULL THEN 0 ELSE 1 END AS IsDatabaseSnapshot FROM sys.databases db INNER JOIN sys.database_recovery_status rs ON db.database_id = rs.database_id WHERE DB_NAME(db.database_id) NOT IN('tempdb') AND db.database_id NOT IN (SELECT DISTINCT DatabaseId FROM TABLE0) ), TABLE2 as( SELECT @Limit+count(DatabaseName) as TotalNumberOfDatabases from TABLE1 where TABLE1.IsPartOfSnapshot=1 and DatabaseName in ('master','model','msdb') ) select top(select TotalNumberOfDatabases from TABLE2) DatabaseName,CreateDate,DatabaseState,DatabaseId from TABLE1 where TABLE1.IsPartOfSnapshot=1 ORDER BY TABLE1.DatabaseID ASC
참고

심볼 링크만 있는 데이터베이스도 PITR 작업 대상인 데이터베이스에서 제외됩니다. 위 쿼리는 이 기준에 따라 필터링되지 않습니다.

Amazon S3의 트랜잭션 로그

백업 보존 기간에 따라 RDS Custom for SQL Server DB 인스턴스에 대한 트랜잭션 로그가 자동으로 추출되어 Amazon S3에 업로드되는지 여부가 결정됩니다. 0이 아닌 값은 자동 백업이 생성되고 RDS Custom 에이전트가 트랜잭션 로그를 5분마다 S3에 업로드함을 의미합니다.

S3의 트랜잭션 로그 파일은 DB 인스턴스를 생성할 때 입력한 AWS KMS key를 사용하여 유후 상태로 암호화됩니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서서버 측 암호화를 사용하여 데이터 보호를 참조하세요.

각 데이터베이스의 트랜잭션 로그는 do-not-delete-rds-custom-$ACCOUNT_ID-$REGION-unique_identifier라는 이름이 지정된 S3 버킷에 업로드됩니다. S3 버킷의 RDSCustomForSQLServer/Instances/DB_instance_resource_ID 디렉터리에는 다음 두 개의 하위 디렉터리가 있습니다.

  • TransactionLogs - 각 데이터베이스 및 해당 메타데이터에 대한 트랜잭션 로그를 포함합니다.

    트랜잭션 로그 파일 이름은 yyyyMMddHHmm.database_id.timestamp와 같은 패턴을 따릅니다.

    202110202230.11.1634769287

    _metadata라는 접미사가 있는 동일한 파일 이름에는 로그 시퀀스 번호, 데이터베이스 이름 및 RdsChunkCount와 같은 트랜잭션 로그에 대한 정보가 포함되어 있습니다. RdsChunkCount는 단일 트랜잭션 로그 파일을 나타내는 실제 파일 수를 결정합니다. 트랜잭션 로그 파일의 물리적 청크를 의미하는 접미사 _0001, _0002 등이 있는 파일이 표시될 수 있습니다. 청크된 트랜잭션 로그 파일을 사용하려면 청크를 다운로드한 후 병합해야 합니다.

    다음과 같은 파일이 있는 경우를 생각해 봅니다.

    • 202110202230.11.1634769287

    • 202110202230.11.1634769287_0001

    • 202110202230.11.1634769287_0002

    • 202110202230.11.1634769287_metadata

    RdsChunkCount3입니다. 파일 병합 순서는 202110202230.11.1634769287, 202110202230.11.1634769287_0001, 202110202230.11.1634769287_0002입니다.

  • TransactionLogMetadata - 트랜잭션 로그 추출의 각 반복에 대한 메타데이터 정보를 포함합니다.

    RI.End 파일에는 트랜잭션 로그가 추출된 모든 데이터베이스 및 존재하지만 트랜잭션 로그가 추출되지 않은 모든 데이터베이스에 대한 정보가 들어 있습니다. 예를 들어, RI.End 파일 이름은 yyyyMMddHHmm.RI.End.timestamp 패턴을 따릅니다.

    202110202230.RI.End.1634769281

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 PITR 복원합니다.

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 RDS Custom for SQL Server DB 인스턴스를 특정 시점으로 복원할 수 있습니다.

RDS Custom DB 인스턴스를 지정된 시간으로 복원하는 방법
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 자동 백업(Automated backups)을 선택합니다.

  3. 복원하려는 RDS Custom DB 인스턴스를 선택합니다.

  4. 작업에서 특정 시점으로 복구를 선택합니다.

    특정 시점으로 복구 창이 나타납니다.

  5. 최근 복원 가능 시간을 선택하여 가능한 최근 시간으로 복원하거나, 사용자 지정을 선택하여 시간을 선택합니다.

    사용자 지정(Custom)을 선택한 경우 인스턴스를 복원하려는 날짜와 시간을 입력합니다.

    시간은 현지 시간대로 표시됩니다. 즉, 협정 세계시(UTC)에서 오프셋으로 표시됩니다. 예를 들어 UTC-5는 동부 표준시/하절기 중부 표준시입니다.

  6. DB 인스턴스 식별자(DB instance identifier)에는 복원된 대상 RDS Custom DB 인스턴스의 이름을 입력합니다. 이름은 고유해야 합니다.

  7. 필요에 따라 DB 인스턴스 클래스와 같은 기타 옵션을 선택합니다.

  8. 특정 시점으로 복구를 선택합니다.

새로운 RDS Custom DB 인스턴스를 생성하려면 restore-db-instance-to-point-in-time AWS CLI 명령을 사용하여 DB 인스턴스를 지정된 시간으로 복원합니다.

다음 옵션 중 하나를 사용하여 복원 원본으로 사용할 백업을 지정합니다.

  • --source-db-instance-identifier mysourcedbinstance

  • --source-dbi-resource-id dbinstanceresourceID

  • --source-db-instance-automated-backups-arn backupARN

custom-iam-instance-profile 옵션은 필수입니다.

다음 예제는 지정된 시간을 기준으로 my-custom-db-instancemy-restored-custom-db-instance라는 새로운 DB 인스턴스로 복원합니다.

Linux, macOS, Unix:

aws rds restore-db-instance-to-point-in-time \ --source-db-instance-identifier my-custom-db-instance\ --target-db-instance-identifier my-restored-custom-db-instance \ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \ --restore-time 2022-10-14T23:45:00.000Z

Windows의 경우:

aws rds restore-db-instance-to-point-in-time ^ --source-db-instance-identifier my-custom-db-instance ^ --target-db-instance-identifier my-restored-custom-db-instance ^ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^ --restore-time 2022-10-14T23:45:00.000Z

RDS Custom for SQL Server 스냅샷 삭제

RDS Custom for SQL Server에서 관리하는 DB 스냅샷이 더 이상 필요하지 않으면 삭제할 수 있습니다. Amazon RDS와 RDS Custom DB 인스턴스의 삭제 절차는 동일합니다.

바이너리 및 루트 볼륨에 대한 Amazon EBS 스냅샷은 계정에서 실행 중인 일부 인스턴스 또는 다른 RDS Custom for SQL Server 스냅샷에 연결될 수 있어 계정에 더 오래 남아 있습니다. 이러한 EBS 스냅샷은 기존 RDS Custom for SQL Server 리소스(DB 인스턴스 또는 백업)와 더 이상 관련이 없는 경우 자동으로 삭제됩니다.

RDS Custom DB 인스턴스의 스냅샷을 삭제하는 방법
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 [Snapshots]를 선택합니다.

  3. 삭제하고 싶은 DB 스냅샷을 선택합니다.

  4. 작업(Actions)에서 스냅샷 삭제(Delete snapshot)를 선택합니다.

  5. 확인 페이지에서 삭제를 선택합니다.

RDS Custom 스냅샷을 삭제하려면 AWS CLI 명령 delete-db-snapshot을 사용합니다.

다음 옵션이 필요합니다.

  • --db-snapshot-identifier - 삭제할 스냅샷입니다.

다음 예제에서는 my-custom-snapshot DB 스냅샷을 삭제합니다.

Linux, macOS, Unix:

aws rds delete-db-snapshot \ --db-snapshot-identifier my-custom-snapshot

Windows의 경우:

aws rds delete-db-snapshot ^ --db-snapshot-identifier my-custom-snapshot

RDS Custom for SQL Server 자동 백업 삭제

보관된 RDS Custom for SQL Server 자동 백업이 더 이상 필요하지 않으면 삭제할 수 있습니다. 절차는 Amazon RDS 백업을 삭제하는 절차와 동일합니다.

보관된 자동 백업을 삭제하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 자동 백업(Automated backups)을 선택합니다.

  3. Retained(보관됨)를 선택합니다.

  4. 삭제하려는 보관된 자동 백업을 선택합니다.

  5. [ Actions]에 대해 [Delete]를 선택합니다.

  6. 확인 페이지에서 delete me를 입력하고 삭제를 선택합니다.

delete-db-instance-automated-backup이라는 AWS CLI 명령을 사용하여 보관된 자동 백업을 삭제할 수 있습니다.

다음 옵션을 사용하여 보관된 자동 백업을 삭제할 수 있습니다.

  • --dbi-resource-id - 소스 RDS Custom DB 인스턴스의 리소스 식별자입니다.

    보관된 자동 백업의 소스 DB 인스턴스에 대한 리소스 식별자는 AWS CLI 명령 describe-db-instance-automated-backups를 사용하여 찾을 수 있습니다.

다음 예시에서는 소스 DB 인스턴스 리소스 식별자가 custom-db-123ABCEXAMPLE인 보관된 자동 백업을 삭제합니다.

Linux, macOS, Unix:

aws rds delete-db-instance-automated-backup \ --dbi-resource-id custom-db-123ABCEXAMPLE

Windows의 경우:

aws rds delete-db-instance-automated-backup ^ --dbi-resource-id custom-db-123ABCEXAMPLE