

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用適用於 Amazon RDS for Db2 的複本
<a name="db2-replication"></a>

RDS for Db2 支援建立複本資料庫，以提供讀取擴展和災難復原功能。您可以透過兩種模式建立複本：用於卸載讀取工作負載的唯讀複本，以及用於跨區域災難復原的待命複本。RDS for Db2 使用 IBM Db2 高可用性災難復原 (HADR) 技術進行複寫。如需詳細資訊，請參閱 IBM Db2 文件中的[高可用性災難復原 (HADR)](https://www.ibm.com/docs/en/db2/11.5?topic=server-high-availability-disaster-recovery-hadr)。

*Db2 複本*資料庫是主要資料庫的實體複本。唯讀模式中的 Db2 複本稱為*僅供讀取複本*。待命模式中的 Db2 複本稱為*待命複本*。Db2 不允許在複本中寫入，但是您可以升級複本以使其可寫入。提升的複本會將複製的資料置於提升請求提出的時機。如需詳細資訊，請參閱[提升僅供讀取複本為獨立的資料庫執行個體](USER_ReadRepl.Promote.md)。

如需 RDS for Db2 複本的功能和行為摘要，請參閱 [資料庫引擎的僅供讀取複本之間的差異](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)。  
如需套用至所有資料庫引擎之僅供讀取複本的一般資訊，請參閱[使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。如需有關 Db2 HADR 的詳細資訊，請參閱 IBM Db2 文件中的[高可用性災難復原 (HADR)](https://www.ibm.com/docs/en/db2/11.5?topic=server-high-availability-disaster-recovery-hadr)。

 **待命**  
對於待命複本，Db2 環境變數 `DB2_HADR_ROS` 設定為 `OFF`，使複本資料庫不接受使用者連線。待命複本的主要用途是跨區域災難復原。  
待命複本無法提供唯讀工作負載。待命複本沒有任何封存日誌。

單一來源資料庫執行個體可建立至多三個複本。您可以為相同的來源資料庫執行個體建立唯讀和待命資料庫複本的組合。建立複本之後，您可以變更複本模式。如需詳細資訊，請參閱 [修改 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 是在資料庫層級設定。建立複本之後，會為所有 Db2 資料庫設定 HADR，包括 RDS 完全管理的 `rdsadmin`。建立 Db2 複本之前，您必須明確啟用所有資料庫。否則，複本建立會失敗，Amazon RDS 會發出事件。資料庫執行個體有一或多個複本之後，您就無法使用 `rdsadmin.activate_database` 或 `rdsadmin.deactivate_database` 預存程序來啟用或停用資料庫執行個體上的任何資料庫。如需詳細資訊，請參閱[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 會從主要資料庫執行個體清除日誌：
+ 日誌至少已有兩個小時。
+ 已超過封存日誌保留時數的設定。
+ 封存日誌已成功複寫至所有複本資料庫執行個體。此條件同時適用於相同 中的資料庫執行個體 AWS 區域 和跨區域資料庫執行個體。

如需設定封存記錄保留時數的相關資訊，請參閱[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 會對來源資料庫執行個體建立資料庫快照，接著開始複寫。當資料庫快照作業開始時，來源資料庫執行個體會經歷非常短暫的 I/O 暫停。I/O 暫停通常持續約一秒。不過，如果來源資料庫執行個體是多可用區域部署，則來源資料庫執行個體不會遇到任何 I/O 暫停。這是因為使用多可用區域部署時，會從次要資料庫執行個體擷取快照。

資料庫快照會成為 Db2 複本。Amazon RDS 會為來源資料庫和複本設定必要的參數和權限，而不會發生任何服務中斷。同樣地，如果您刪除複本，也不會發生中斷。