

# Amazon RDS for Db2의 복제본 작업
<a name="db2-replication"></a>

RDS for Db2는 읽기 조정 및 재해 복구 기능을 제공하는 복제본 데이터베이스 생성을 지원합니다. 읽기 워크로드를 오프로드하기 위한 읽기 전용 복제본과 리전 간 재해 복구를 위한 대기 복제본의 두 가지 모드로 복제본을 생성할 수 있습니다. RDS for Db2는 복제에 IBM Db2 고가용성 재해 복구(HADR) 기술을 사용합니다. 자세한 내용은 IBM Db2 설명서의 [High availability disaster recovery (HADR)](https://www.ibm.com/docs/en/db2/11.5?topic=server-high-availability-disaster-recovery-hadr)를 참조하세요.

*Db2 복제본* 데이터베이스는 기본 데이터베이스의 물리적 복사본입니다. 읽기 전용 모드의 Db2 복제본을 *읽기 전용 복제본*이라고 합니다. 대기 모드의 Db2 복제본을 *대기 복제본*이라고 합니다. Db2는 복제본에서의 쓰기를 허용하지 않지만, 복제본을 승격하여 쓰기 가능한 상태로 만들 수 있습니다. 승격된 복제본에는 승격 요청이 이루어진 시점까지 복제된 데이터가 있습니다. 자세한 내용은 [읽기 전용 복제본을 독립 DB 인스턴스로 승격](USER_ReadRepl.Promote.md) 섹션을 참조하세요.

RDS for Db2 복제본의 기능 및 동작에 대한 요약은 [DB 엔진별 읽기 전용 복제본의 차이점](USER_ReadRepl.Overview.Differences.md) 섹션을 참조하세요.

## 읽기 전용 및 대기 복제본
<a name="db2-read-replicas.overview.modes"></a>

Db2 복제본을 생성하거나 수정할 때 다음 모드 중 하나로 배치할 수 있습니다.

**읽기 전용**.  
이 값이 기본값입니다. HADR은 원본 데이터베이스의 변경 사항을 모든 읽기 전용 복제본 데이터베이스로 전송하고 적용합니다. 읽기 전용 복제본의 경우 Db2 환경 변수 `DB2_HADR_ROS`는 `ON`으로 설정됩니다. 복제본 데이터베이스의 읽기 쿼리에 대한 격리 수준은 `Uncommitted Read`입니다. 자세한 내용은 IBM Db2 설명서의 [활성 대기 데이터베이스의 격리 수준](https://www.ibm.com/docs/en/db2/11.5?topic=standby-isolation-level-active-database)을 참조하세요.  
모든 DB 엔진에 적용되는 읽기 전용 복제본에 대한 일반적인 정보는 [DB 인스턴스 읽기 전용 복제본 작업](USER_ReadRepl.md) 섹션을 참조하세요. Db2에 대한 자세한 내용은 IBM Db2 설명서의 [고가용성 재해 복구(HADR)](https://www.ibm.com/docs/en/db2/11.5?topic=server-high-availability-disaster-recovery-hadr)를 참조하세요.

 **대기**  
대기 복제본의 경우 복제본 데이터베이스가 사용자 연결을 수락하지 않도록 Db2 환경 변수 `DB2_HADR_ROS`가 `OFF`로 설정됩니다. 대기 복제본의 주된 용도는 교차 리전 재해 복구입니다.  
대기 복제본은 읽기 전용 워크로드를 처리할 수 없습니다. 대기 복제본에는 아카이브 로그가 없습니다.

소스 DB 인스턴스 하나에서 최대 세 개까지 복제본을 생성할 수 있습니다. 동일한 원본 DB 인스턴스에 대해 읽기 전용 DB 복제본과 대기 DB 복제본을 조합하여 생성할 수 있습니다. 복제본을 생성한 후 복제본 모드를 변경할 수 있습니다. 자세한 내용은 [Amazon RDS for Db2 복제본 모드 수정](db2-replicas-changing-replica-mode.md) 섹션을 참조하세요.

복제본을 생성하기 전에 모든 요구 사항을 충족하는지 확인합니다. 자세한 내용은 [RDS for Db2 복제본에 대한 요구 사항 및 고려 사항](db2-read-replicas.limitations.md) 섹션을 참조하세요.

## 데이터베이스 활성화
<a name="db2-read-replicas.overview.database-activations"></a>

Db2 HADR은 데이터베이스 수준에서 구성됩니다. 복제본을 생성하면 `rdsadmin`을 포함해 RDS가 완전히 관리하는 모든 Db2 데이터베이스에 HADR이 설정됩니다. Db2 복제본을 생성하기 전에 모든 데이터베이스를 명시적으로 활성화해야 합니다. 활성화하지 않으면 복제본 생성이 실패하고 Amazon RDS가 이벤트를 내보냅니다. DB 인스턴스에 하나 이상의 복제본이 생긴 후에는 `rdsadmin.activate_database` 또는 `rdsadmin.deactivate_database` 저장 프로시저를 사용하여 DB 인스턴스에서 데이터베이스를 활성화하거나 비활성화할 수 없습니다. 자세한 내용은 [RDS for Db2용 데이터베이스에 대해 저장된 프로시저](db2-sp-managing-databases.md) 섹션을 참조하세요.

## HADR 구성
<a name="db2-read-replicas.overview.hadr-configurations"></a>

데이터베이스에 연결한 다음, `db2 get db cfg`를 실행하여 데이터베이스에 대한 모든 HADR 구성을 볼 수 있습니다.

## 아카이브 로그 보존
<a name="db2-read-replicas.overview.log-retention"></a>

Amazon RDS는 다음 조건이 충족되면 기본 DB 인스턴스에서 로그를 제거합니다.
+ 로그가 최소 2시간 이상 경과됨
+ 아카이브 로그 보존 시간에 대한 설정이 초과됨
+ 아카이브 로그가 모든 복제본 DB 인스턴스에 성공적으로 복제됨 이 조건은 동일한 AWS 리전의 DB 인스턴스와 교차 리전 DB 인스턴스에 적용됩니다.

아카이브 로그 보존 시간 설정에 대한 자세한 내용은 [rdsadmin.set\$1archive\$1log\$1retention](db2-sp-managing-databases.md#db2-sp-set-archive-log-retention) 섹션을 참조하세요.

Amazon RDS는 각 데이터베이스를 개별적으로 확인하고 정리합니다. 데이터베이스의 HADR 연결이 끊어지거나 연결에 대한 정보를 사용할 수 없는 경우 Amazon RDS는 해당 데이터베이스를 건너뛰고 아카이브 로그를 제거하지 않습니다.

## Db2 복제 중 중단
<a name="db2-read-replicas.overview.outages"></a>

복제본을 생성하면 Amazon RDS가 소스 DB 인스턴스의 DB 스냅샷을 캡처하고 복제를 시작합니다. DB 스냅샷 작업이 시작될 때 소스 DB 인스턴스에서 매우 짧은 I/O 보류가 발생합니다. 이러한 I/O 중단은 일반적으로 1초 정도 지속됩니다. 그러나 소스 DB 인스턴스가 다중 AZ 배포인 경우 소스 DB 인스턴스에 I/O 보류가 발생하지 않습니다. 이는 다중 AZ 배포의 경우 보조 DB 인스턴스에서 스냅샷이 생성되기 때문입니다.

DB 스냅샷은 Db2 복제본이 됩니다. Amazon RDS는 서비스 중단 없이 소스 데이터베이스 및 복제본에 필요한 파라미터와 권한을 설정합니다. 마찬가지로 복제본을 삭제해도 중단이 발생하지 않습니다.

# RDS for Db2 복제본에 대한 요구 사항 및 고려 사항
<a name="db2-read-replicas.limitations"></a>

Db2 복제본 요구 사항은 라이선스 및 버전 관리, 백업 및 복원 고려 사항, 복제 동작, 일반적인 운영 고려 사항 등 여러 범주로 나뉩니다. Db2 복제본을 생성하기 전에 다음 요구 사항 및 고려 사항을 숙지하세요.

## Db2 복제본에 대한 버전 및 라이선스 요구 사항
<a name="db2-read-replicas.limitations.versions-and-licenses"></a>

RDS for Db2 복제본을 생성하기 전에 버전 및 라이선싱 모델에 대한 다음 정보를 검토하세요.
+ **지원 버전** – 모든 Db2 11.5 버전은 복제본 DB 인스턴스를 지원합니다.

  원본 및 복제본 DB 인스턴스는 동일한 메이저 버전을 사용해야 합니다. Db2 복제본은 마이너 버전 업그레이드를 지원하지만 메이저 버전 업그레이드는 지원하지 않습니다. DB 인스턴스 업그레이드에 대한 정보는 [DB 인스턴스 엔진 버전 업그레이드](USER_UpgradeDBInstance.Upgrading.md) 섹션을 참조하세요.
**참고**  
소스 DB 인스턴스를 업그레이드할 때 버전 호환성을 유지하기 위해 모든 복제본이 자동으로 업그레이드됩니다.
+ **유효한 라이선싱 모델 및 복제본 모델** – Db2 Advanced Edition(AE)과 Standard Edition(SE) 모두 Bring Your Own License(BYOL) 모델과 AWS Marketplace 모델을 통한 Db2 라이선스 모두에 대해 읽기 전용 또는 대기 모드의 복제본을 생성할 수 있습니다.
+ **사용자 지정 파라미터 그룹** - 복제본에 대한 사용자 지정 파라미터 그룹을 지정해야 합니다.

  BYOL 모델을 사용하는 복제본의 경우 이 사용자 지정 파라미터 그룹에 IBM Site ID 및 IBM Customer ID가 포함되어야 합니다. 자세한 내용은 [Db2용 Bring Your Own License(BYOL)를 위한 IBM ID](db2-licensing.md#db2-prereqs-ibm-info) 섹션을 참조하세요. AWS Management Console, AWS CLI 또는 RDS API를 사용하여 복제본에 대해 이 사용자 지정 파라미터 그룹을 지정할 수 있습니다.
+ **vCPU 수**는 복제본 모드 및 라이선스 모델에 따라 다릅니다.
  + **대기 복제본**은 DB 인스턴스 크기에 관계없이 항상 두 개의 vCPU를 사용합니다.
    + **BYOL 모델** – AWS License Manager 구성은 RDS for Db2 DB 인스턴스가 두 개의 vCPU를 사용함을 보여 줍니다.
    + **AWS Marketplace 모델을 통한 Db2 라이선스** – 청구서에 두 개의 vCPU에 대한 라이선스 비용이 반영됩니다.
  + **읽기 전용 복제본**은 DB 인스턴스 크기와 동일한 vCPU 수를 사용합니다.
    + **BYOL 모델** - AWS License Manager 구성은 RDS for Db2 DB 인스턴스가 DB 인스턴스 크기와 일치하는 동일한 수의 vCPU를 사용함을 보여 줍니다.
    + **AWS Marketplace 모델을 통한 Db2 라이선스** - 청구서에는 DB 인스턴스 크기와 일치하는 동일한 수의 vCPU에 대한 라이선스 비용이 반영됩니다.

## RDS for Db2 복제본에 대한 백업 및 복구 고려 사항
<a name="db2-read-replicas.limitations.backups"></a>

복제본 백업은 기본 데이터베이스 백업과 동작이 다릅니다. 다음 백업 및 복원 요구 사항을 고려하세요.
+ RDS for Db2 복제본의 스냅샷을 생성하거나 자동 백업을 설정하려면 백업 보존 기간을 수동으로 설정해야 합니다. 자동 백업은 기본적으로 켜져 있지 않습니다.
+ 복제본 백업을 복원할 때는 백업이 완료된 시간이 아니라 데이터베이스 시간으로 복원됩니다. 이 데이터베이스 시간이란 백업에 있는 데이터의 가장 최근에 적용된 트랜잭션 시간입니다. 복제본이 기본 데이터베이스보다 몇 분 또는 몇 시간 정도 지연될 수 있기 때문에 이러한 차이는 상당합니다. 여러 데이터베이스가 있는 경우 RDS for Db2는 가장 이른 데이터베이스 시간을 사용합니다.

  차이점을 찾으려면 AWS CLI [describe-db-snapshots](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshots.html) 명령을 실행하거나 RDS API [DescribeDBSnapshots](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshots.html) 작업을 직접 호출합니다. `SnapshotDatabaseTime` 값을 `OriginalSnapshotCreateTime` 값과 비교합니다. `SnapshotDatabaseTime` 값은 복제본 백업의 데이터베이스 시간입니다. `OriginalSnapshotCreateTime` 값은 기본 데이터베이스에 적용된 최신 트랜잭션입니다.

백업 및 백업 복원에 대한 자세한 내용은 [RDS for Db2 복제본 백업 작업](db2-read-replicas.backups.md) 섹션을 참조하세요.

## RDS for Db2 복제본에 대한 복제 고려 사항
<a name="db2-read-replicas.limitations.replication"></a>

Db2 복제본은 특정 제한 및 동작과 함께 HADR 기술을 사용합니다. 다음과 같은 복제 고려 사항을 검토합니다.
+ 복제는 RDS for Db2 DB 인스턴스의 모든 데이터베이스에 Db2 HADR을 사용합니다.
+ 복제는 `LOAD` 명령을 지원하지 않습니다. 소스 DB 인스턴스에서 `LOAD` 명령을 실행하면 일관되지 않은 데이터가 수신됩니다.
+ RDS for Db2는 다음 항목을 복제하지 않습니다.
  + 스토리지 액세스. 스토리지 액세스에 의존하는 외부 테이블과 같은 데이터에 유의하세요.
  + 로깅되지 않은 비 인라인 LOB.
  + 외부 저장 프로시저의 바이너리(C 또는 Java)
+ 대기 복제본의 경우 RDS for Db2는 다음 항목을 복제합니다.
  + 마스터 사용자를 제외한 로컬 사용자
  + 데이터베이스 구성 파라미터
+ 읽기 전용 복제본의 경우 RDS for Db2는 다음 항목을 복제합니다.
  + 마스터 사용자를 제외한 로컬 사용자
  + SID 그룹 매핑

## RDS for Db2 복제본에 대한 기타 고려 사항
<a name="db2-read-replicas.limitations.miscellaneous"></a>

Db2 복제본에는 추가 운영 고려 사항이 적용됩니다. 다음 항목을 검토합니다.
+ RDS for Db2는 데이터베이스 구성을 복제본에 복제합니다. RDS for Db2는 복제본을 승격할 때 각 데이터베이스를 비활성화하고 활성화합니다.
+ RDS for Db2는 마스터 사용자 및 SID 그룹 매핑이 아닌 로컬 사용자를 복제본에 복제합니다. 복제본에서 마스터 사용자를 수정할 수 있습니다. 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요.
+ 모든 데이터베이스는 활성 상태여야 합니다. 데이터베이스 활성화에 대한 자세한 내용은 [RDS for Db2용 데이터베이스에 대해 저장된 프로시저](db2-sp-managing-databases.md) 섹션을 참조하세요.
+ 복제본을 생성하기 전에 데이터베이스 생성, 삭제, 복원 또는 롤링 포워드를 위한 모든 저장 프로시저를 완료해야 합니다. 이러한 저장 프로시저 사용에 대한 자세한 내용은 [RDS for Db2용 데이터베이스에 대해 저장된 프로시저](db2-sp-managing-databases.md) 섹션을 참조하세요.
+ 복제본이 생성되면 Amazon RDS는 소스 DB 인스턴스의 모든 데이터베이스에 대한 데이터베이스 수준 파라미터 `blocknonlogged`를 `YES`로 설정합니다. 소스 복제본이 다시 단독 인스턴스가 되면 Amazon RDS는 값을 다시 `NO`로 설정합니다. 자세한 내용은 IBM Db2 설명서의 [blocknonlogged - Block creation of tables that allow non-logged activity configuration parameter](https://www.ibm.com/docs/en/db2/11.1?topic=dcp-blocknonlogged-block-creation-tables-that-allow-non-logged-activity)를 참조하세요.
+ 복제본이 생성되면 Amazon RDS는 소스 DB 인스턴스의 모든 데이터베이스에 대한 데이터베이스 수준 파라미터 `logindexbuild`를 `YES`로 설정합니다. 소스 복제본이 다시 단독 인스턴스가 되면 Amazon RDS는 값을 다시 `NO`로 설정합니다. 자세한 내용은 IBM Db2 설명서의 [logindexbuild - Log index pages created configuration parameter](https://www.ibm.com/docs/en/db2/11.1?topic=parameters-logindexbuild-log-index-pages-created)를 참조하세요.

# RDS for Db2 복제본 생성 준비
<a name="db2-read-replicas.Configuration"></a>

RDS for Db2 복제본을 생성하기 전에 성공적인 복제를 위해 다음 작업을 완료해야 합니다. 이러한 작업은 일반적인 문제를 방지하고 최적의 성능을 보장하는 데 도움이 됩니다.

## 작업 1: 자동 백업 활성화
<a name="db2-read-replicas.configuration.autobackups"></a>

임의의 DB 인스턴스를 원본 DB 인스턴스로 사용하려면 원본 DB 인스턴스의 자동 백업을 활성화해야 합니다. 이는 모든 복제본 생성 작업에 대한 사전 조건입니다. 이 절차를 수행하는 방법에 대한 자세한 내용은 [자동 백업 활성화](USER_WorkingWithAutomatedBackups.Enabling.md) 섹션을 참조하세요.

Db2 복제본별 백업에 대한 자세한 내용은 [RDS for Db2 복제본 백업 작업](db2-read-replicas.backups.md) 섹션을 참조하세요.

## 작업 2: 컴퓨팅 및 스토리지 리소스 계획
<a name="db2-read-replicas.configuration.planning-resources"></a>

원본 DB 인스턴스와 해당 복제본이 운영 로드에 맞게 컴퓨팅 및 스토리지 면에서 제대로 크기가 조정되었는지 확인합니다. 복제본이 컴퓨팅, 네트워크 또는 스토리지 리소스 용량에 도달하면 복제본은 해당 소스에서 변경 사항을 수신하거나 적용하는 것을 중지합니다. 복제본 성능 및 리소스 사용률 모니터링에 대한 자세한 내용은 [읽기 전용 복제본 모니터링](USER_ReadRepl.Monitoring.md) 섹션을 참조하세요.

RDS for Db2는 개입을 통해 소스 DB 인스턴스와 해당 복제본 간의 긴 복제본 지연 시간을 완화하지 않습니다. 복제 지연이 높은 경우 문제 해결 지침은 [Db2 복제 지연 모니터링](db2-troubleshooting-replicas.md#db2-troubleshooting-replicas-lag) 섹션을 참조하세요.

복제본의 스토리지 및 CPU 리소스를 해당 원본 및 다른 복제본과 별도로 수정할 수 있습니다. 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요.

## 작업 3: 데이터베이스 준비
<a name="db2-read-replicas.configuration.activate-databases"></a>

복제본을 생성하기 전에 다음 사항에 따라 데이터베이스가 준비되었는지 확인합니다.
+ DB 인스턴스에 존재해야 하는 모든 데이터베이스가 DB 인스턴스에 포함되어 있는지 확인합니다. 복제본을 생성한 후에는 DB 인스턴스에서 데이터베이스를 생성, 삭제 또는 기본 복원할 수 없습니다. [rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database), [rdsadmin.drop\$1database](db2-sp-managing-databases.md#db2-sp-drop-database) 또는 [rdsadmin.restore\$1database](db2-sp-managing-databases.md#db2-sp-restore-database) 저장 프로시저에 대한 직접 호출은 모두 실패합니다.
+ DB 인스턴스의 모든 데이터베이스가 활성 상태입니다. 비활성 상태인 데이터베이스가 있으면 복제본 생성이 실패합니다. 데이터베이스 활성화에 대한 자세한 내용은 [RDS for Db2용 데이터베이스에 대해 저장된 프로시저](db2-sp-managing-databases.md) 섹션을 참조하세요.

## 다음 단계
<a name="db2-read-replicas-configuration-next-steps"></a>

모든 준비 작업을 완료한 후 Db2 복제본을 생성할 준비가 되었습니다.
+ 읽기 전용 복제본을 생성하려면 [읽기 전용 복제본 생성](USER_ReadRepl.Create.md) 섹션을 참조하세요.
+ 대기 복제본을 생성하려면 [대기 Db2 복제본 생성](db2-read-replicas.creating-in-standby-mode.md) 섹션을 참조하세요.

# 대기 모드에서 RDS for Db2 복제본 생성
<a name="db2-read-replicas.creating-in-standby-mode"></a>

기본적으로 Db2 복제본은 읽기 전용 모드로 생성됩니다. 재해 복구를 위해 대기 모드에서 복제본을 생성할 수 있습니다. 대기 복제본은 사용자 연결을 수락하지 않지만 리전 간 시나리오에 더 빠른 장애 조치 기능을 제공합니다.

대기 복제본을 생성하기 전에 준비 작업을 완료했는지 확인합니다. 자세한 내용은 [RDS for Db2 복제본 생성 준비](db2-read-replicas.Configuration.md) 섹션을 참조하세요. 대기 복제본을 생성한 후 복제본 모드를 변경할 수 있습니다. 자세한 내용은 [Amazon RDS for Db2 복제본 모드 수정](db2-replicas-changing-replica-mode.md) 섹션을 참조하세요.

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 대기 복제본을 생성할 수 있습니다. 읽기 전용 복제본 생성에 대한 자세한 내용은 [읽기 전용 복제본 생성](USER_ReadRepl.Create.md) 섹션을 참조하세요.

## 콘솔
<a name="db2-read-replicas.creating-in-standby-mode.console"></a>

**소스 RDS for Db2 DB 인스턴스에서 대기 복제본을 생성하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

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

1. 대기 복제본의 소스로 사용할 RDS for Db2 DB 인스턴스를 선택합니다.

1. **작업**에서 **읽기 전용 복제본 만들기**를 선택합니다.

1. **복제본 모드**에서 **대기**를 선택합니다.

1. 사용하려는 설정을 선택합니다. **DB 인스턴스 식별자**에 대기 복제본의 이름을 입력합니다. 필요에 따라 다른 설정을 조정합니다.

1. **리전**에서 대기 복제본을 시작할 AWS 리전을 선택합니다.

1. 인스턴스 크기 및 스토리지 유형을 선택합니다. 대기 복제본의 원본 DB 인스턴스와 동일한 DB 인스턴스 클래스와 스토리지 유형을 사용하는 것이 좋습니다.

1. 대기 복제본에 대한 장애 조치 지원을 위해 다른 가용 영역에 대기 복제본을 생성하려면 **다중 AZ 배포**에서 **대기 인스턴스 생성**을 선택합니다.

1. 사용하고자 하는 기타 설정을 선택합니다.

1. **복제본 생성**을 선택합니다.

**데이터베이스** 페이지에서 대기 복제본에는 **복제본** 역할이 있습니다.

## AWS CLI
<a name="db2-read-replicas.creating-in-standby-mode.cli"></a>

Db2 복제본을 대기 모드로 생성하려면 AWS CLI 명령 [create-db-instance-read-replica](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html)에서 `--replica-mode`를 `mounted`로 설정합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds create-db-instance-read-replica \
    --db-instance-identifier my_standby_replica \
    --source-db-instance-identifier my_db_instance \
    --replica-mode mounted
```
Windows의 경우:  

```
aws rds create-db-instance-read-replica ^
    --db-instance-identifier my_standby_replica ^
    --source-db-instance-identifier my_db_instance ^
    --replica-mode mounted
```

## RDS API
<a name="db2-read-replicas.creating-in-standby-mode.api"></a>

Db2 복제본을 대기 모드로 생성하려면 RDS API 작업 [CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html)에서 `ReplicaMode=mounted`를 지정합니다.

# Amazon RDS for Db2 복제본 모드 수정
<a name="db2-replicas-changing-replica-mode"></a>

기존 Db2 복제본의 복제본 모드를 읽기 전용 모드와 대기 모드 간에 변경할 수 있습니다. 이러한 유연성을 통해 읽기 워크로드 또는 재해 복구 요구 사항에 대한 변화하는 요구 사항에 따라 복제본 구성을 조정할 수 있습니다.

다음 시나리오에서 복제본 모드를 변경할 수 있습니다.
+ **읽기 전용에서 대기로** - 읽기 용량이 더 이상 필요하지 않지만 재해 복구 기능을 유지하려는 경우
+ **대기에서 읽기 전용으로** - 보고 또는 분석 워크로드를 위한 읽기 용량을 추가해야 하는 경우

복제본 모드를 변경하기 전에 다음 조건이 충족되는지 확인합니다.
+ 복제본이 사용 가능한 상태입니다.
+ 복제본에서 실행 중인 활성 유지 관리 작업이 없습니다.
+ DB 인스턴스를 수정하는 데 필요한 권한이 있습니다.

변경 작업은 몇 분 정도 걸릴 수 있습니다. 작업 중에는 DB 인스턴스 상태가 **수정 중**으로 변경됩니다. 상태 변경에 대한 자세한 내용은 [ Amazon RDSDB 인스턴스 상태 보기](accessing-monitoring.md#Overview.DBInstance.Status) 섹션을 참조하세요. 읽기 전용에서 대기 모드로 변경하면 복제본이 모든 활성 연결을 해제합니다.

**중요**  
복제본 모드를 변경하면 서비스가 일시적으로 중단되므로 유지 관리 기간 동안 변경 사항을 계획하여 애플리케이션에 미치는 영향을 최소화합니다.

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 복제본 모드를 수정할 수 있습니다.

## 콘솔
<a name="db2-replicas-changing-replica-mode-console"></a>

**Db2 복제본의 복제본 모드 변경**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

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

1. 수정하려는 복제본 데이터베이스를 선택합니다.

1. **Modify**(수정)를 선택합니다.

1. **복제본 모드**에서 원하는 모드를 선택합니다.
   + **읽기 전용** - 읽기 워크로드의 경우
   + **대기** - 재해 복구의 경우

1. 사용하려는 기타 설정을 선택합니다.

1. [**Continue**]를 선택합니다.

1. **수정 사항 예약**에 대해 **즉시 적용**을 선택합니다.

1. **DB 인스턴스 수정**을 선택합니다.

1. 수정이 완료되면 **데이터베이스** 페이지에서 복제본 모드 변경 사항을 확인합니다. 변경이 완료되면 복제본 상태가 **사용 가능**으로 표시되어야 합니다.

## AWS CLI
<a name="db2-replicas-changing-replica-mode-cli"></a>

Db2 복제본을 읽기 전용 모드에서 대기 모드로 변경하려면 AWS CLI 명령 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)에서 `--replica-mode`를 `mounted`로 설정합니다. Db2 복제본을 대기 모드에서 읽기 전용 모드로 변경하려면 `--replica-mode`를 `open-read-only`로 설정합니다.

다음 예시에서는 복제본을 읽기 전용 모드에서 대기 모드로 변경합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier my_db2_replica \
    --replica-mode mounted
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my_db2_replica ^
    --replica-mode mounted
```

다음 예시에서는 복제본을 대기 모드에서 읽기 전용 모드로 변경합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier my_db2_replica \
    --replica-mode open-read-only
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my_db2_replica ^
    --replica-mode open-read-only
```

## RDS API
<a name="db2-replicas-changing-replica-mode-api"></a>

Db2 복제본을 읽기 전용 모드에서 대기 모드로 변경하려면 [ModifyDBInstance](AmazonRDS/latest/APIReference/API_ModifyDBInstance.html)에서 `ReplicaMode=mounted`를 설정합니다. Db2 복제본을 대기 모드에서 읽기 전용 모드로 변경하려면 `ReplicaMode=open-read-only`를 설정합니다.

다음은 복제본 모드를 읽기 전용에서 대기 모드로 변경하는 API 직접 호출의 예입니다.

```
{
    "DBInstanceIdentifier": "my_db2_replica",
    "ReplicaMode": "mounted",
    "ApplyImmediately": true
}
```

다음은 복제본 모드를 대기 모드에서 읽기 전용으로 변경하는 API 직접 호출의 예입니다.

```
{
    "DBInstanceIdentifier": "my_db2_replica",
    "ReplicaMode": "open-read-only",
    "ApplyImmediately": true
}
```

복제본 모드 간의 차이에 대한 자세한 내용은 [Amazon RDS for Db2의 복제본 작업](db2-replication.md) 섹션을 참조하세요. 복제본 문제 해결은 [RDS for Db2 복제 문제 해결](db2-troubleshooting-replicas.md) 섹션을 참조하세요.

# RDS for Db2 복제본 백업 작업
<a name="db2-read-replicas.backups"></a>

프라이머리 데이터베이스와 마찬가지로 RDS for Db2 복제본의 백업을 만들고 복원할 수 있습니다. 그러나 복제본 백업의 작동 방식, 특히 복원 타이밍 및 백업 보존 설정에는 중요한 차이점이 있습니다.

RDS for Db2는 복제본에 대한 자동 백업과 수동 스냅샷을 모두 지원합니다. RDS for Db2는 특정 시점으로 복원을 지원하지 않습니다. RDS 백업에 대한 자세한 내용은 [데이터 백업, 복원 및 내보내기](CHAP_CommonTasks.BackupRestore.md) 섹션을 참조하세요.

## 복제본 백업의 주요 차이점
<a name="db2-read-replicas-backups-overview"></a>

복제본 백업은 다음과 같은 몇 가지 중요한 측면에서 기본 데이터베이스 백업과 다릅니다.
+ 복제본에는 자동 백업이 기본적으로 활성화되어 있지 않습니다.
+ 복원 작업은 백업 생성 시간 대신 데이터베이스 시간을 사용합니다.
+ 복제본 지연은 복원된 실제 데이터에 영향을 미칠 수 있습니다. 복제본 지연 모니터링에 대한 자세한 내용은 [Db2 복제 지연 모니터링](db2-troubleshooting-replicas.md#db2-troubleshooting-replicas-lag) 섹션을 참조하세요.

## RDS for Db2 복제본에 대한 자동 백업 활성화
<a name="db2-read-replicas.backups.turning-on"></a>

기본 데이터베이스와 달리 RDS for Db2 복제본에는 기본적으로 자동 백업이 활성화되어 있지 않습니다. 자동 백업을 활성화하려면 백업 보존 기간을 수동으로 구성해야 합니다. 백업 보존 기간을 0이 아닌 양수 값으로 설정하여 자동 백업을 활성화합니다.

### 콘솔
<a name="db2-read-replicas.backups.turning-on-console"></a>

**자동 백업을 즉시 활성화**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택한 다음 변경하려는 DB 인스턴스를 선택합니다.

1. **수정**을 선택합니다.

1. **백업 보존 기간**으로 0이 아닌 양수 값(예: 3일)을 선택합니다.

1. [**Continue**]를 선택합니다.

1. **즉시 적용**을 선택합니다.

1. **DB 인스턴스 수정**을 선택하여 변경 내용을 저장하고 자동 백업을 활성화합니다.

### AWS CLI
<a name="db2-read-replicas.backups.turning-on-cli"></a>

자동 백업을 활성화하려면 AWS CLI [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 명령을 사용합니다.

다음 파라미터를 포함합니다.
+ `--db-instance-identifier`
+ `--backup-retention-period`
+ `--apply-immediately` 또는 `--no-apply-immediately`

다음 예에서는 백업 보존 기간을 3일로 설정하여 자동 백업을 활성화합니다. 변경이 바로 적용됩니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier my_db_instance  \
    --backup-retention-period 3 \
    --apply-immediately
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my_db_instance  ^
    --backup-retention-period 3 ^
    --apply-immediately
```

### RDS API
<a name="db2-read-replicas.backups.turning-on-api"></a>

자동 백업을 활성화하려면 RDS API [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 작업을 다음 필수 파라미터와 함께 사용합니다.
+ `DBInstanceIdentifier`
+ `BackupRetentionPeriod`

## RDS for Db2 복제본 백업 복원
<a name="db2-read-replicas.backups.restoring"></a>

기본 데이터베이스의 백업을 복원하는 것과 동일한 방식으로 RDS for Db2 복제본 백업을 복원할 수 있습니다. 자세한 내용은 [DB 인스턴스 복원](USER_RestoreFromSnapshot.md) 섹션을 참조하세요.

복제본 백업을 복원할 때 가장 중요한 고려 사항은 특히 복제본 지연이 있는 경우 데이터베이스 시간과 백업 생성 시간의 차이를 이해하는 것입니다.

복제 지연을 모니터링하고 백업에 예상 데이터가 포함되어 있는지 확인할 수 있습니다. ReplicaLag 지표에 대한 자세한 내용은 [Amazon RDS에 대한 Amazon CloudWatch 지표](rds-metrics.md) 섹션을 참조하세요.

### 타이밍 차이 이해
<a name="db2-read-replicas-backups-restoring-timing"></a>

복제본 백업을 복원할 때 복원할 시점을 결정해야 합니다. 이 데이터베이스 시간이란 백업에 있는 데이터의 가장 최근에 적용된 트랜잭션 시간입니다. 복제본 백업을 복원할 때는 백업이 완료된 시간이 아니라 데이터베이스 시간으로 복원됩니다. 복제본이 기본 데이터베이스보다 몇 분 또는 몇 시간 정도 지연될 수 있기 때문에 이러한 차이는 상당합니다. 따라서 복제본 백업의 데이터베이스 시간은 스냅샷 생성 시간보다 훨씬 빠를 수 있습니다.

데이터베이스 시간과 생성 시간의 차이를 찾으려면 AWS CLI [describe-db-snapshots](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshots.html) 명령을 실행하거나 RDS API [DescribeDBSnapshots](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshots.html) 작업을 직접 호출합니다. `SnapshotDatabaseTime` 값과 `OriginalSnapshotCreateTime` 값을 비교합니다. `SnapshotDatabaseTime` 값은 복제본 백업의 모든 데이터베이스 중에서 가장 이른 데이터베이스 시간입니다. `OriginalSnapshotCreateTime` 값은 기본 데이터베이스에 적용된 최신 트랜잭션입니다. 복제 지연은 여러 데이터베이스에서 다를 수 있으며 데이터베이스 시간은 이 두 번 사이에 있을 수 있습니다.

다음 AWS CLI 예는 두 시간의 차이를 보여줍니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds describe-db-snapshots \
    --db-instance-identifier my_db2_replica \
    --db-snapshot-identifier my_replica_snapshot
```

Windows의 경우:

```
aws rds describe-db-snapshots ^
    --db-instance-identifier my_db2_replica ^
    --db-snapshot-identifier my_replica_snapshot
```

다음 예제와 비슷한 출력이 생성됩니다.

```
{
    "DBSnapshots": [
        {
            "DBSnapshotIdentifier": "my_replica_snapshot",
            "DBInstanceIdentifier": "my_db2_replica", 
            "SnapshotDatabaseTime": "2022-07-26T17:49:44Z",
            ...
            "OriginalSnapshotCreateTime": "2021-07-26T19:49:44Z"
        }
    ]
}
```

# RDS for Db2 복제 문제 해결
<a name="db2-troubleshooting-replicas"></a>

이 주제에서는 일반적인 RDS for Db2 복제 문제를 설명하고 읽기 전용 복제본과 대기 복제본 모두에 대한 문제 해결 지침을 제공합니다. 다음 문제 해결 정보를 검토하는 것 외에도 Db2 복제본을 생성하기 전에 [요구 사항 및 고려 사항](db2-read-replicas.limitations.md)을 따르고 [준비 단계](db2-read-replicas.Configuration.md)를 완료했는지 확인합니다.

## 복제본 생성 실패
<a name="db2-troubleshooting-replicas-creation"></a>



복제본 생성은 다음과 같은 여러 가지 이유로 실패할 수 있습니다.
+ **비활성 데이터베이스** - 복제본을 생성하기 전에 소스 DB 인스턴스의 모든 데이터베이스가 활성 상태여야 합니다.

  데이터베이스 활성화에 대한 자세한 내용은 [RDS for Db2용 데이터베이스에 대해 저장된 프로시저](db2-sp-managing-databases.md) 섹션을 참조하세요.
+ **자동 백업 누락** - 소스 DB 인스턴스에 자동 백업이 활성화되어 있어야 합니다.

  백업 활성화에 대한 자세한 내용은 [RDS for Db2 복제본에 대한 자동 백업 활성화](db2-read-replicas.backups.md#db2-read-replicas.backups.turning-on) 섹션을 참조하세요.
+ **파라미터 그룹 문제** - 복제본에는 사용자 지정 파라미터 그룹이 필요합니다. BYOL 라이선스의 경우 파라미터 그룹에 IBM Site ID 및 IBM Customer ID가 포함되어야 합니다.

  자세한 내용은 [Db2용 Bring Your Own License(BYOL)를 위한 IBM ID](db2-licensing.md#db2-prereqs-ibm-info) 섹션을 참조하세요.

## Db2 복제 지연 모니터링
<a name="db2-troubleshooting-replicas-lag"></a>

Amazon CloudWatch에서 복제 지연 시간을 모니터링하려면 Amazon RDS `ReplicaLag` 지표를 확인합니다. 복제본 지연 시간에 대한 자세한 내용은 [읽기 전용 복제본 모니터링](USER_ReadRepl.Monitoring.md) 및 [Amazon RDS에 대한 Amazon CloudWatch 지표](rds-metrics.md) 섹션을 참조하세요. 복제본 지연에 대한 CloudWatch 경보 설정에 대한 자세한 내용은 [Amazon CloudWatch로 Amazon RDS 지표 모니터링](monitoring-cloudwatch.md) 섹션을 참조하세요.

읽기 전용 복제본의 경우 지연 시간이 너무 길면 `MON_GET_HADR` 테이블에 복제본 DB 인스턴스의 상태를 쿼리합니다.

대기 복제본의 경우 지연 시간이 너무 길면 `MON_GET_HADR` 테이블에 소스 DB 인스턴스의 상태를 쿼리합니다. 복제본 DB 인스턴스는 사용자 연결을 허용하지 않으므로 복제본 DB 인스턴스를 쿼리하지 마세요.

복제 지연이 높은 일반적인 원인은 다음과 같습니다.
+ 복제본의 컴퓨팅 리소스 부족
+ 소스와 복제본 간의 네트워크 연결 문제
+ 소스 데이터베이스에서 높은 쓰기 활동
+ 복제본의 스토리지 성능 제한

높은 복제 지연이 지속되면 복제본 리소스의 규모를 조정하는 것이 좋습니다. 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요.

## Db2 복제 오류
<a name="db2-troubleshooting-replicas-triggers"></a>

Db2 복제는 여러 가지 이유로 오류 상태일 수 있습니다. 다음 조치를 취하세요.
+ 이벤트와 DB 인스턴스 상태를 모니터링하여 DB 인스턴스가 복제 중인지 확인합니다.

  자세한 내용은 [Amazon RDS 이벤트 알림 작업](USER_Events.md) 섹션을 참조하세요.
+ Amazon RDS 콘솔에서 Db2 복제본에 대한 진단 로그를 확인합니다. 로그에서 HADR 메시지의 오류를 찾습니다. 로그 시퀀스 번호와 기본 시퀀스 번호를 비교합니다.

  Db2 진단 로그 액세스 및 해석에 대한 자세한 내용은 [Amazon RDS for Db2 데이터베이스 로그 파일](USER_LogAccess.Concepts.Db2.md) 섹션을 참조하세요. Db2 HADR 구성 및 문제 해결에 대한 자세한 내용은 [Amazon RDS for Db2의 복제본 작업](db2-replication.md) 섹션을 참조하세요.

복제 오류가 지속되면 복제본을 다시 생성해야 할 수 있습니다.

## 연결 문제
<a name="db2-troubleshooting-replicas-connections"></a>

복제본에 연결할 수 없는 경우 복제본 모드에 대한 다음 정보를 검토합니다.
+ **대기 복제본** - 설계상 사용자 연결을 허용하지 않습니다. 읽기 워크로드에는 읽기 전용 복제본을 사용합니다.
+ **읽기 전용 복제본** - 보안 그룹 설정, 네트워크 ACL 및 파라미터 그룹 구성을 확인합니다.

  자세한 내용은 *Amazon VPC 사용 설명서*의 [보안 그룹을 사용하여 AWS 리소스에 대한 트래픽 제어](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html), *Amazon VPC 사용 설명서*의 [네트워크 액세스 제어 목록을 사용하여 서브넷 트래픽 제어](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) 및 [Amazon RDS의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요.

## 성능 문제
<a name="db2-troubleshooting-replicas-performance"></a>

복제본 성능이 좋지 않은 경우 다음 제안을 검토하세요.
+ 복제본에 적절한 컴퓨팅 및 스토리지 리소스가 있는지 확인합니다.
+ Amazon CloudWatch에서 `ReplicaLag` 지표를 모니터링합니다.
+ 복제본 DB 인스턴스 클래스를 스케일 업하는 것이 좋습니다.

리소스 또는 인스턴스 클래스 수정에 대한 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요.

복제본 지연 모니터링에 대한 자세한 내용은 [복제 모니터링 지연 시간](USER_ReadRepl.Monitoring.md#USER_ReadRepl.Monitoring.Lag) 및 [Amazon RDS에 대한 Amazon CloudWatch 지표](rds-metrics.md) 섹션을 참조하세요. 복제본 지연에 대한 CloudWatch 경보 설정에 대한 자세한 내용은 [Amazon CloudWatch로 Amazon RDS 지표 모니터링](monitoring-cloudwatch.md) 섹션을 참조하세요.