在 適用於 PostgreSQL 的 Azure 資料庫 中建立和管理讀取複本 - 從 Azure 入口網站、CLI 或 REST API 彈性伺服器
適用於: 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器
在本文中,您將瞭解如何從 Azure 入口網站、CLI 和 REST API 在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中建立和管理讀取複本。 若要深入了解讀取複本,請參閱概觀。
必要條件
要成為主伺服器的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。
注意
為持續大量寫入的主要工作負載部署讀取複本時,復寫延隔時間可能會繼續成長,而且可能永遠不會趕上主要工作負載。 這也可能會增加主要伺服器的儲存體使用量,因為預寫記錄檔 (WAL) 檔案會在複本收到這些檔案後才刪除。
檢閱主要設定
在為 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器設定讀取複本之前,請確定主伺服器已設定為符合必要條件。 主伺服器上的特定設定可能會影響建立複本的能力。
記憶體自動成長:主伺服器上的記憶體自動成長設定及其讀取複本必須遵循特定指導方針,以確保一致性並防止複寫中斷。 如需詳細規則和設定, 請參閱記憶體自動成長 。
進階 SSD v2:目前的版本不支援使用進階 SSD v2 記憶體為主伺服器建立讀取複本。 如果您的工作負載需要讀取複本,請為主伺服器選擇不同的記憶體選項。
在 Azure 入口網站 中,選擇您要複本的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。
在 [概 觀] 對話框中,記下 PostgreSQL 版本 (例如
15.4
)。 此外,請注意,您的主要複本部署至的區域 (例如,East US
)。在伺服器端提要欄位的 [設定] 底下,選取 [計算 + 記憶體]。
檢閱並記下下列設定:
計算層、處理器、大小(例如
Standard_D4ads_v5
)。儲存體
- 記憶體大小 (例如
128GB
) - 自動成長
- 記憶體大小 (例如
高可用性
- Enabled / Disabled
- 可用性區域設定
備份設定
- 保留期限
- 備援選項
在 [設定] 底下,選取 [網路]。
檢閱網路設定。
建立讀取複本
若要建立讀取複本,請遵循下列步驟:
選取現有的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例作為主伺服器。
在伺服器端提要欄位的 [設定] 底下,選取 [複寫]。
選取 [ 建立複本]。
輸入 [基本] 窗體,其中包含下列資訊。
選取 [檢閱 + 建立 ] 以確認複本的建立,或 [下一步:如果您想要新增、刪除或修改任何防火牆規則,網络 功能]。
保留其餘預設值,然後選取頁面底部的 [ 檢閱 + 建立] 按鈕,或繼續進行下一個窗體以新增標記或變更數據加密方法。
檢閱最終確認視窗中的資訊。 當您準備好時,選取 [建立]。 系統會建立新的部署。
在部署期間,您會看到主要狀態
Updating
。
設定複本伺服器名稱。
提示
這是 雲端採用架構 (CAF) 最佳做法,其使用資源命名慣例可讓您輕鬆地判斷您要連線或管理哪些實例,以及其所在位置。
選取與主要區域不同的位置,但請注意,您可以選取相同的區域。
提示
若要深入瞭解您可以在哪些區域中建立複本,請造訪參閱複本概念文章。
將計算和記憶體設定為您從主要複本記錄的內容。 如果顯示的計算不符合,請選取 [設定伺服器 ],然後選取適當的伺服器。
注意
如果您選取小於主要複本的計算大小,部署將會失敗。 另請注意,計算大小可能無法在不同的區域中使用。
重要
請參閱讀取複本概觀的考量章節。
若要避免在升級複本期間發生問題,請先變更複本上的下列伺服器參數,然後再將參數套用至主要複本:max_connections
、、max_prepared_transactions
、max_locks_per_transaction
max_wal_senders
、 max_worker_processes
。
建立虛擬端點
注意
涉及虛擬端點的所有作業,例如新增、編輯或移除,都會在主伺服器的內容中執行。
在 Azure 入口網站 中,選取主伺服器。
在伺服器端提要欄位的 [設定] 底下,選取 [複寫]。
選取 [ 建立端點]。
在對話框中,為您的端點輸入有意義的名稱。 請注意產生的 DNS 端點。
選取 建立。
注意
如果您未建立虛擬端點,您將會在升級複本嘗試上收到錯誤。
列出虛擬端點
若要列出虛擬端點,請使用下列步驟:
修改應用程式以指向虛擬端點
修改任何使用您 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例的應用程式,以使用新的虛擬端點(例如: corp-pg-001.writer.postgres.database.azure.com
和 corp-pg-001.reader.postgres.database.azure.com
)。
升級複本
備妥所有必要的元件後,您就可以執行將複本升階為主要作業。
若要從 Azure 入口網站 升級複本,請遵循下列步驟:
在 Azure 入口網站 中,選取您的主要 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。
在伺服器功能表上的 [設定] 底下,選取 [複寫]。
在 [ 伺服器] 下,選取複本的 [ 升級 ] 圖示。
在對話框中,確定動作為 升級至主伺服器。
針對 [數據同步處理],請確定 已規劃 - 先同步處理數據,再選取升級 。
選取 [ 升階 ] 以開始程式。 完成之後,角色會反轉:複本會變成主要複本,而主要複本會擔任複本的角色。
注意
您升級的複本必須指派讀取器虛擬端點,否則您會收到升級時發生錯誤。
測試應用程式
若要執行某些作業,請重新啟動您的應用程式,然後嘗試這些作業。 您的應用程式應該順暢地運作,而不需修改虛擬端點 連接字串 或 DNS 專案。 讓應用程式這次保持執行狀態。
容錯回復至原始伺服器和區域
重複相同的作業,將原始伺服器升級至主要伺服器。
在 Azure 入口網站 中,選取複本。
在伺服器端邊欄的 [設定] 底下,選取 [複寫]
在 [ 伺服器] 下,選取複本的 [ 升級 ] 圖示。
在對話框中,確定動作為 升級至主伺服器。
針對 [數據同步處理],請確定 已規劃 - 先同步處理數據,再選取升級 。
選取 [ 升階],程序隨即開始。 完成之後,角色會反轉:複本會變成主要複本,而主要複本會擔任複本的角色。
測試應用程式
同樣地,切換至其中一個取用的應用程式。 等候主要和複本狀態變更為 Updating
,然後嘗試執行某些作業。 在復本升級期間,您的應用程式可能會遇到端點的暫時連線問題:
新增次要讀取複本
在個別區域中建立次要讀取複本,以修改讀取器虛擬端點,並允許從第一個複本建立獨立伺服器。
在 Azure 入口網站 中,選擇主要 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。
在伺服器端提要欄位的 [設定] 底下,選取 [複寫]。
選取 [ 建立複本]。
輸入第三個區域中資訊的基本概念表單 (例如
westus
和corp-pg-westus-001
)選取 [檢閱 + 建立 ] 以確認複本的建立,或 [下一步:如果您想要新增、刪除或修改任何防火牆規則,網络 功能]。
確認防火牆設定。 請注意如何自動複製主要設定。
保留其餘預設值,然後選取頁面底部的 [ 檢閱 + 建立 ] 按鈕,或繼續進行下列窗體來設定安全性或新增標籤。
檢閱最終確認視窗中的資訊。 當您準備好時,選取 [建立]。 系統會建立新的部署。
在部署期間,您會看到主要狀態
Updating
。
修改虛擬端點
在 Azure 入口網站 中,選擇主要 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。
在伺服器端提要欄位的 [設定] 底下,選取 [複寫]。
選取省略號,然後選取 [ 編輯]。
在對話框中,選取新的次要複本。
選取儲存。 讀取器端點現在指向次要複本,而升級作業現在會系結至此複本。
將復本升階至獨立伺服器
與其切換至複本,也可以中斷複本的複寫,使其成為其獨立伺服器。
在 Azure 入口網站 中,選擇 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器主伺服器。
在伺服器提要欄位的 [伺服器] 選單上,於 [設定] 底下,選取 [複寫]。
在 [ 伺服器] 底下,選取 您要升級至獨立伺服器之複本的 [升級 ] 圖示。
在對話框中,確定動作是 升級至獨立伺服器,並從複寫中移除。這不會影響主伺服器。
針對 [數據同步處理],請確定 已規劃 - 先同步處理數據,再選取升級 。
選取 [ 升階],程序隨即開始。 完成後,伺服器就不再是主要複本。
注意
復本升級至獨立伺服器之後,就無法將它新增回復寫集。
刪除虛擬端點
在 Azure 入口網站 中,選取主伺服器。
在伺服器端提要欄位的 [設定] 底下,選取 [複寫]。
在頁面頂端,找出 區
Virtual endpoints
段。 瀏覽至端點名稱旁邊的三個點(功能表選項),展開它,然後選擇Delete
。[刪除確認] 對話框隨即出現。 它會警告您:「此動作會移除虛擬端點
virtualendpointName
。 任何使用這些網域連線的用戶端都可能會失去存取權。按兩下 [ 刪除] 確認含意並確認。
刪除複本
您可以刪除讀取複本,類似於刪除獨立 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例的方式。
在 Azure 入口網站中,開啟讀取複本的 [概觀] 頁面。 選取 [刪除]。
您也可以透過下列步驟,從 [複寫] 視窗中刪除讀取複本:
刪除主伺服器
刪除所有讀取複本之後,您只能刪除主伺服器。 若要刪除複本,請遵循刪除複本一節中的指示,然後繼續進行所提供的步驟。
若要從 Azure 入口網站刪除伺服器,請遵循下列步驟:
監視複本
有兩個計量可用來監視讀取複本。
實體複寫延遲上限
僅適用於主要複本。
[ 最大實體復寫延遲 ] 計量會顯示主伺服器與最落後複本之間的位元元組延遲。
讀取複本延隔計量
讀取 複本延隔 計量會顯示複本上次重新執行交易之後的時間。 如果主要複本上未發生任何交易,計量就會反映此時間延遲。 例如,如果您的主伺服器上沒有發生任何交易,且上次交易是在5秒前重新執行,則讀取複本延隔時間會顯示5秒的延遲。
與 適用於 PostgreSQL 的 Azure 資料庫 產品小組分享您的建議和錯誤。