本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用具 RDS for PostgreSQL 的階層式僅供讀取複本
從 14.1 版開始,RDS for PostgreSQL 支援階層式僅供讀取複本。利用階層式僅供讀取複本,您可以擴展讀取,無須增加來源 RDS for PostgreSQL 資料庫執行個體的額外負荷。來源資料庫執行個體不會將 WAL 日誌的更新傳送至每個僅供讀取複本。反之,階層式系列中的每個僅供讀取複本都會將 WAL 日誌更新傳送至系列中的下一個僅供讀取複本。此會減少來源資料庫執行個體的負擔。
利用階層式僅供讀取複本,您的 RDS for PostgreSQL 資料庫執行個體會將 WAL 資料傳送至鏈結中的第一個僅供讀取複本。之後,該僅供讀取複本會將 WAL 資料傳送至鏈結中的第二個複本,依此類推。最終結果是鏈結中的所有僅供讀取複本皆具有來自 RDS for PostgreSQL 資料庫執行個體的變更,但並無僅在來源資料庫執行個體上的額外負荷。
您可從來源 RDS for PostgreSQL 資料庫執行個體的鏈結中建立一系列最多三個僅供讀取複本。例如,假設您有一個 RDS for PostgreSQL 14.1 資料庫執行個體 rpg-db-main。您可以執行下列作業:
-
從
rpg-db-main開始,建立鏈結中的第一個僅供讀取複本read-replica-1。 -
接下來,從
read-replica-1,建立鏈結中的下一個僅供讀取複本read-replica-2。 -
最後,從
read-replica-2,建立鏈結中的第三個僅供讀取複本read-replica-3。
除了 rpg-db-main 系列中的第三個階層式僅供讀取複本之外,您無法建立另一個僅供讀取複本。從 RDS for PostgreSQL 來源資料庫執行個體至一系列階層式僅供讀取複本尾端的完整執行個體系列最多可包含四個資料庫執行個體。
若要使階層式僅供讀取複本正常運作,請開啟 RDS for PostgreSQL 上的自動備份。首先建立僅供讀取複本,然後開啟 RDS for PostgreSQL 資料庫執行個體上的自動備份。此程序與其他 Amazon RDS 資料庫引擎相同。如需詳細資訊,請參閱建立僅供讀取複本。
與任何僅供讀取複本一樣,您可提升作為階層式一部分的僅供讀取複本。從僅供讀取複本鏈結中提升僅供讀取複本將會從鏈結中移除該僅供讀取複本。例如,假設您想要將部分工作負載從 rpg-db-main 資料庫執行個體移至新的執行個體,僅供會計部門使用。假設範例中的三個僅供讀取複本鏈結,您決定提升 read-replica-2。該鏈或受到下列影響:
-
提升
read-replica-2會將其從複寫鏈結中移除。-
其現在是一個完整的讀取/寫入資料庫執行個體。
-
這會持續複寫至
read-replica-3,就像在提升之前所做的一樣。
-
-
您的
rpg-db-main會持續複寫至read-replica-1。
如需提升僅供讀取複本的相關詳細資訊,請參閱 提升僅供讀取複本為獨立的資料庫執行個體。
注意
-
RDS for PostgreSQL 不支援階層式複本的主要版本升級。在執行主要版本升級之前,必須先移除階層式複本。在來源資料庫執行個體和第一層複本上完成升級後,您可以重新建立複本。
-
對於階層式僅供讀取複本,RDS for PostgreSQL 在第一個複寫層支援每個來源資料庫執行個體 15 個僅供讀取複本,而在第二和第三複寫層支援每個來源資料庫執行個體 5 個僅供讀取複本。