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

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

Amazon RDS와 마찬가지로 RDS Custom은 DB 인스턴스의 백업 기간 동안 RDS Custom for Oracle DB 인스턴스의 자동 백업을 생성하고 저장합니다. 또한, 수동으로 DB 인스턴스를 백업할 수도 있습니다.

절차는 Amazon RDS DB 인스턴스의 스냅샷을 생성하는 것과 동일합니다. RDS Custom DB 인스턴스의 첫 번째 스냅샷에는 전체 DB 인스턴스의 데이터가 포함되며, 후속 스냅샷은 증분적입니다.

AWS Management Console 또는 AWS CLI를 사용하여 DB 스냅샷을 복원할 수 있습니다.

RDS Custom for Oracle 스냅샷 생성

RDS Custom for Oracle은 DB 인스턴스의 스토리지 볼륨 스냅샷을 생성하여 개별 데이터베이스뿐만 아니라 전체 DB 인스턴스를 백업합니다. DB 인스턴스에 컨테이너 데이터베이스(CDB) 가 포함된 경우, 인스턴스의 스냅샷에는 루트 CDB와 모든 PDB가 포함됩니다.

RDS Custom for Oracle 스냅샷을 생성할 때 백업할 RDS Custom DB 인스턴스를 지정하고, 나중에 복원할 수 있도록 스냅샷에 이름을 지정합니다.

스냅샷을 생성할 때 RDS Custom for Oracle은 DB 인스턴스에 연결된 모든 볼륨에 대해 Amazon EBS 스냅샷을 생성합니다. RDS Custom for Oracle은 루트 볼륨의 EBS 스냅샷을 사용하여 새로운 Amazon Machine Image(AMI)를 등록합니다. 스냅샷을 특정 DB 인스턴스에 쉽게 연결할 수 있도록 DBSnapshotIdentifier, DbiResourceIdVolumeType으로 태그가 지정됩니다.

DB 스냅샷을 생성하면 I/O가 잠시 중단됩니다. 이러한 일시 중단은 DB 인스턴스의 크기와 클래스에 따라 몇 초에서 몇 분까지 지속될 수 있습니다. 스냅샷 생성에 걸리는 시간은 데이터베이스 크기에 따라 다릅니다. 스냅샷에는 전체 스토리지 볼륨이 포함되므로 임시 파일과 같은 파일의 크기도 스냅샷 생성 시간에 영향을 미칩니다. 스냅샷을 생성하는 방법에 대한 자세한 내용은 단일 AZ DB 인스턴스용 DB 스냅샷 생성 섹션을 참조하세요.

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

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 스냅샷을 생성합니다.

대상 LinuxmacOS, 또는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 Oracle DB 스냅샷에서 복원

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

복원 프로세스는 다음과 같은 면에서 Amazon RDS의 복원과 다릅니다.

  • 스냅샷을 복원하기 전에 RDS Custom for Oracle은 기존 구성 파일을 백업합니다. 이러한 파일은 디렉터리 /rdsdbdata/config/backup의 복원된 인스턴스에서 사용할 수 있습니다. RDS Custom for Oracle은 기본 파라미터로 DB 스냅샷을 복원하고 이전 데이터베이스 구성 파일을 기존 데이터베이스 구성 파일로 덮어씁니다. 따라서 복원된 인스턴스는 사용자 지정 파라미터 및 데이터베이스 구성 파일의 변경 사항을 보존하지 않습니다.

  • 복원된 데이터베이스의 이름은 스냅샷과 동일하며, 다른 이름을 지정할 수 없습니다. (RDS Custom for Oracle의 경우 기본값은 ORCL입니다.)

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이라는 스냅샷을 복원합니다.

대상 LinuxmacOS, 또는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 Oracle 인스턴스를 특정 시점으로 복원

DB 인스턴스를 특정 시점(PITR)으로 복원하여 새로운 DB 인스턴스를 생성할 수 있습니다. PITR을 지원하려면 DB 인스턴스의 백업 보존이 0이 아닌 값으로 설정되어 있어야 합니다.

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

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

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

RDS Custom for Oracle에 대한 PITR 고려 사항

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

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

  • AWSRDSCustomIamRolePolicy는 새 권한이 필요합니다. 자세한 내용은 2단계: AWSRDSCustomInstanceRoleForRdsCustomInstance에 액세스 정책 추가 단원을 참조하세요.

  • Oracle DB 인스턴스용 모든 RDS Custom에는 백업 보존이 0이 아닌 값으로 설정되어 있어야 합니다.

  • 운영 체제 또는 DB 인스턴스 시간대를 변경하면 PITR이 작동하지 않을 수 있습니다. 시간대 변경에 대한 내용은 Oracle 시간대 섹션을 참조하세요.

  • 자동화를 ALL_PAUSED로 설정한 경우 RDS Custom은 복원 가능한 최근 시간(LRT) 이전에 생성된 로그를 포함하여 아카이브된 다시 실행 로그 파일의 업로드를 일시 중지합니다. 잠시 동안 자동화를 일시 중지하는 것이 좋습니다.

    예를 들어, LRT가 10분 전이라고 가정해 봅니다. 자동화를 일시 중지하면 일시 중지한 동안 RDS Custom은 아카이브된 다시 실행 로그를 업로드하지 않습니다. DB 인스턴스가 충돌하는 경우 일시 중지할 때 존재했던 LRT 이전 시간으로만 복구할 수 있습니다. 자동화를 재개하면 RDS Custom은 로그 업로드를 다시 시작합니다. LRT가 변경되며, 일반적인 PITR 규칙이 적용됩니다.

  • RDS Custom에서는 업로드 후 RDS Custom에서 삭제하기 전에 아카이브된 다시 실행 로그를 보존할 시간을 수동으로 지정할 수 있습니다. 다음과 같이 시간을 지정합니다.

    1. /opt/aws/rdscustomagent/config/redo_logs_custom_configuration.json라는 이름의 텍스트 파일을 만듭니다.

    2. {"archivedLogRetentionHours" : "num_of_hours"} 형식의 JSON 객체를 추가합니다. 번호는 1~840 범위의 정수여야 합니다.

  • CDB가 아닌 항목을 컨테이너 데이터베이스(CDB)에 PDB로 연결한 다음 PITR을 시도한다고 가정하겠습니다. 이전에 PDB를 백업한 경우에만 작업이 성공합니다. PDB를 만들거나 수정한 후에는 항상 백업하는 것이 좋습니다.

  • 데이터베이스 초기화 파라미터를 사용자 지정하지 않는 것이 좋습니다. 예를 들어, 다음 파라미터를 수정하면 PITR에 영향을 줍니다.

    • CONTROL_FILE_RECORD_KEEP_TIME은 로그 업로드 및 삭제 규칙에 영향을 줍니다.

    • LOG_ARCHIVE_DEST_n는 여러 대상을 지원하지 않습니다.

    • ARCHIVE_LAG_TARGET은 최신 복원 가능 시간에 영향을 줍니다. Recovery Point Objective(RPO)가 5분이기 때문에 ARCHIVE_LAG_TARGET300으로 설정됩니다. 이 목표를 달성하기 위해 RDS는 5분마다 온라인 다시 실행 로그를 전환하여 Amazon S3 버킷에 저장합니다. 로그 전환 빈도로 인해 RDS Custom for Oracle 데이터베이스의 성능 문제가 발생하는 경우, DB 인스턴스와 스토리지를 IOPS와 처리량이 더 높은 곳으로 확장할 수 있습니다. 복구 계획에 필요한 경우 ARCHIVE_LAG_TARGET 초기화 파라미터 설정을 60~7,200 사이의 값으로 조정할 수 있습니다.

  • 데이터베이스 초기화 파라미터를 사용자 지정하는 경우 다음 항목만 사용자 지정하는 것이 좋습니다.

    • COMPATIBLE

    • MAX_STRING_SIZE

    • DB_FILES

    • UNDO_TABLESPACE

    • ENABLE_PLUGGABLE_DATABASE

    • CONTROL_FILES

    • AUDIT_TRAIL

    • AUDIT_TRAIL_DEST

    다른 모든 초기화 파라미터의 경우 RDS Custom은 기본값을 복원합니다. 이전 목록에 없는 파라미터를 수정하면 PITR에 악영향을 미치고 예측할 수 없는 결과가 발생할 수 있습니다. 예를 들어, CONTROL_FILE_RECORD_KEEP_TIME은 로그 업로드 및 삭제 규칙에 영향을 줍니다.

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

RDS Custom DB 인스턴스를 지정된 시간으로 복원하는 방법
  1. https://console.aws.amazon.com/rds/에서 AWS Management Console에 로그인한 후 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 인스턴스로 복원합니다.

대상 LinuxmacOS, 또는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 Oracle 스냅샷 삭제

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

바이너리 및 루트 볼륨에 대한 Amazon EBS 스냅샷은 계정에서 실행 중인 일부 인스턴스 또는 다른 RDS Custom for Oracle 스냅샷에 연결될 수 있어 계정에 더 오래 남아 있습니다. 이러한 EBS 스냅샷은 기존 RDS Custom for Oracle 리소스(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 스냅샷을 삭제합니다.

대상 LinuxmacOS, 또는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 Oracle 자동 백업 삭제

보관된 RDS Custom for Oracle 자동 백업이 더 이상 필요하지 않으면 삭제할 수 있습니다. 절차는 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인 보관된 자동 백업을 삭제합니다.

대상 LinuxmacOS, 또는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