Azure Cosmos DB for PostgreSQL 中的讀取複本
適用於: Azure Cosmos DB for PostgreSQL (由 Citus 資料庫延伸模組支援 PostgreSQL)
讀取複本功能可讓您將某個叢集的資料複寫到唯讀叢集。 複本會使用 PostgreSQL 實體複寫技術以非同步方式更新。 您可以從主要伺服器複寫到最多五個複本。
複本是全新的叢集,管理方式與一般叢集類似。 針對每個讀取複本,系統會針對在虛擬核心中所佈建的計算量,以及在儲存體中所佈建的容量 (以每月 GB 為單位) 向您收費。 複本叢集的計算和儲存體成本與一般叢集相同。
了解如何建立及管理複本。
何時應該使用讀取複本
讀取複本功能可針對需大量讀取的工作負載,協助改善效能及調整能力。 讀取工作負載可隔離至複本,而寫入工作負載可以導向到主要伺服器。
常見的案例是讓 BI 與分析工作負載使用讀取複本做為報告的資料來源。
由於複本是唯讀狀態,因此不會直接降低主要伺服器上的寫入容量負擔。
考量
此功能適用於可接受複寫延遲且用於卸載查詢的案例。 這不適用於預期複本資料為最新狀態的同步複寫案例。 主要伺服器和複本之間會有顯著的延遲情形。 視工作負載和主要伺服器與複本之間的延遲而定,延遲可能需要幾分鐘或甚至數小時的時間。 複本上的資料,最終仍會與主要伺服器上的資料保持一致。 請針對可接受此延遲的工作負載使用此功能。
建立複本
當您開始建立複本的工作流程時,系統會建立空白的叢集。 新的叢集會有主要叢集上的資料。 建立時間取決於主要伺服器上的資料量,以及距離上次執行每週完整備份所經過的時間。 時間的範圍可能介於數分鐘到數小時。
讀取複本功能會使用 PostgreSQL 的實體複寫,而非邏輯複寫。 預設模式是使用複寫位置串流複寫。 必要時,系統會使用記錄傳送來跟上進度。
了解如何在 Azure 入口網站中建立讀取複本。
連線到複本
當您建立複本時,其不會繼承主要叢集的防火牆規則。 您必須個別針對複本設定這些規則。
此複本會繼承主要叢集的系統管理員 (citus
) 帳戶。
系統會將所有使用者帳戶複寫至讀取複本。 您只能使用主要伺服器上可用的使用者帳戶,來連線到讀取複本。
您可以使用複本的主機名稱和有效使用者帳戶,來連線到該複本的協調器節點,如同連線到一般叢集。 例如,指定一個名為 my replica 的伺服器與 citus 的管理員使用者名稱,您就可以使用 psql 連線到複本的協調器節點:
psql -h c-myreplica.12345678901234.postgres.cosmos.azure.com -U citus@myreplica -d postgres
在出現提示時,請輸入使用者帳戶的密碼。
將複本升階為獨立叢集
您可以將複本升階為可讀取和可寫入的獨立叢集。 升階後的複本不會再收到其原始複本的更新,而且一經升階便無法復原。 升階後的複本可以有自己的複本。
複本有兩種常見的升階案例:
災害復原。 如果主要複本或整個區域發生問題,您可以開啟另一個供寫入使用的叢集來作為緊急應變程序。
移轉至另一個區域。 如果您想要移至另一個區域,請在新區域中建立複本,等候資料更新,然後將複本升階。 為了避免在升階期間遺失資料,建議您在複本更新之後停用對原始叢集的寫入。
您可以使用
replication_lag
計量來查看複本的更新進度。 如需詳細資訊,請參閱計量。
考量
本節將摘要說明有關讀取複本功能的考量。
新複本
讀取複本會建立為新的叢集。 現有叢集無法設定為複本。 您無法為另一個讀取複本建立複本。
複本設定
複本會從主要伺服器繼承計算、儲存體和背景工作角色節點設定。 您可以變更複本上的部分設定,但不能變更所有設定。 例如,您可以變更計算、公用存取權防火牆規則,以及私人存取的私人端點。 您無法變更儲存體大小或背景工作角色節點數目。
請記得讓複本強度達到足以跟上從主要伺服器抵達的變更。 例如,如果您在主要伺服器升級計算能力,請務必也在複本中升級計算能力。
建立複本時或以後,複本不會從主要伺服器繼承防火牆規則和參數設定。
跨區域複寫
讀取複本可以建立到主要叢集所在的區域中,也可以建立到 Azure Cosmos DB for PostgreSQL 所支援的任何其他區域。 所有區域都會算在每一叢集五個複本的限制內,也就是說,是所有區域總共五個,而不是每一區域五個。