在 適用於 PostgreSQL 的 Azure 資料庫 中建立和管理讀取複本 - 來自 Azure 入口網站、CLI 或 REST API 的彈性伺服器

適用範圍:適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

在本文中,您將瞭解如何從 Azure 入口網站、CLI 和 REST API,在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中建立和管理讀取複本。 若要深入了解讀取複本,請參閱概觀

必要條件

成為主伺服器的彈性伺服器實例 適用於 PostgreSQL 的 Azure 資料庫。

注意

為持續大量寫入的主要工作負載部署讀取複本時,復寫延隔時間可能會繼續成長,而且可能永遠不會趕上主要工作負載。 這也可能會在主要復本上增加記憶體使用量,因為 WAL 檔案只會在複本收到一次刪除。

檢閱主要設定

在為 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器設定讀取複本之前,請確定主伺服器已設定為符合必要條件。 主伺服器上的特定設定可能會影響建立複本的能力。

儲存體 自動成長:儲存體 主伺服器上及其讀取複本上的自動成長設定必須遵循特定指導方針,以確保一致性並防止複寫中斷。 如需詳細規則和設定,請參閱 儲存體 自動成長

進階版 SSD v2:目前版本不支援使用 進階版 SSD v2 儲存體為主伺服器建立讀取複本。 如果您的工作負載需要讀取複本,請為主伺服器選擇不同的記憶體選項。

  1. 在 Azure 入口網站,選擇您要複本 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。

  2. 在 [概 觀] 對話框中,記下 PostgreSQL 版本 (例如 15.4)。 此外,請注意,您的主要複本部署至的區域 (例如, East US)。

    檢閱主要設定的螢幕快照。

  3. 在伺服器端提要欄位的 [設定] 底下,選取 [計算 + 記憶體]。

  4. 檢閱並記下下列設定:

    • 計算層、處理器、大小(例如 Standard_D4ads_v5)。

    • 儲存體

      • 儲存體 大小 (例如 128GB
      • 自動成長
    • 高可用性

      • Enabled / Disabled
      • 可用性區域設定
    • 備份設定

      • 保留期限
      • 備援選項
  5. 在 [設定] 底下,選取 [網路]

  6. 檢閱網路設定。

    伺服器設定的螢幕快照。

建立讀取複本

若要建立讀取複本,請遵循下列步驟:

  1. 選取現有的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例,以作為主伺服器使用。

  2. 在伺服器端提要字段的 [設定] 下,選取 [複寫]。

  3. 選取 [ 建立複本]。

    建立複本動作的螢幕快照。

  4. 輸入 [基本] 窗體,其中包含下列資訊。

    顯示輸入基本資訊之螢幕快照。

  5. 選取 [檢閱 + 建立 ] 以確認複本的建立,或 [下一步:如果您想要新增、刪除或修改任何防火牆規則,網络 功能]。

    修改防火牆規則動作的螢幕快照。

  6. 保留其餘預設值,然後選取頁面底部的 [ 檢閱 + 建立] 按鈕,或繼續進行下一個窗體以新增標記或變更數據加密方法。

  7. 檢閱最終確認視窗中的資訊。 當您準備好時,選取 [建立]。 系統會建立新的部署。

    檢閱最終確認視窗中資訊的螢幕快照。

  8. 在部署期間,您會看到主要狀態 Updating

    主要輸入更新狀態的螢幕快照。 建立讀取複本之後,即可從 [複 寫] 視窗檢視它。

    在複寫視窗中檢視新複本的螢幕快照。

  • 設定複本伺服器名稱。

    提示

    使用資源命名慣例是 雲端採用架構 (CAF) 最佳做法,可讓您輕鬆地判斷您要連線或管理哪些實例及其所在位置。

  • 選取與主要區域不同的位置,但請注意,您可以選取相同的區域。

    提示

    若要深入瞭解您可以在哪些區域中建立複本,請造訪參閱複本概念文章

  • 將計算和記憶體設定為您從主要複本記錄的內容。 如果顯示的計算不符合,請選取 [設定伺服器 ],然後選取適當的伺服器。

    注意

    如果您選取小於主要複本的計算大小,部署將會失敗。 另請注意,計算大小可能無法在不同的區域中使用。

    選擇計算大小的螢幕快照。

重要

請參閱讀取複本概觀的考量章節

若要避免在升級複本期間發生問題,請先變更複本上的下列伺服器參數,然後再將參數套用至主要複本:max_connections、、max_prepared_transactionsmax_locks_per_transactionmax_wal_sendersmax_worker_processes

建立虛擬端點

注意

涉及虛擬端點的所有作業,例如新增、編輯或移除,都會在主伺服器的內容中執行。

  1. 在 Azure 入口網站 中,選取主伺服器。

  2. 在伺服器端提要字段的 [設定] 下,選取 [複寫]。

  3. 選取 [ 建立端點]。

  4. 在對話框中,為您的端點輸入有意義的名稱。 請注意產生的 DNS 端點。

    使用自定義名稱建立新虛擬端點的螢幕快照。

  5. 選取 建立

    注意

    如果您未建立虛擬端點,您將會在升級複本嘗試上收到錯誤。

    遺失虛擬端點時升級錯誤的螢幕快照。

列出虛擬端點

若要列出虛擬端點,請使用下列步驟:

  1. 在 Azure 入口網站 中,選取伺服器。

  2. 在伺服器端提要字段的 [設定] 底下,選取 [複寫]。

  3. 在頁面頂端,您會看到讀取器和寫入器端點都顯示,以及他們指向的伺服器名稱。

    虛擬端點清單的螢幕快照。

修改應用程式以指向虛擬端點

修改任何使用您 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例的應用程式,以使用新的虛擬端點(例如: corp-pg-001.writer.postgres.database.azure.comcorp-pg-001.reader.postgres.database.azure.com)。

升級複本

備妥所有必要的元件後,您就可以執行將複本升階為主要作業。

若要從 Azure 入口網站 升級複本,請遵循下列步驟:

  1. Azure 入口網站 中,選取您的主要 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。

  2. 在伺服器功能表上的 [設定] 下,選取 [複寫]。

  3. 在 [ 伺服器] 下,選取複本的 [ 升級 ] 圖示。

    選取以升級複本的螢幕快照。

  4. 在對話框中,確定動作為 升級至主伺服器

  5. 針對 [數據同步處理],請確定 已規劃 - 先同步處理數據,再選取升級

    如何選取複本升階的螢幕快照。

  6. 選取 [ 升階 ] 以開始程式。 完成之後,角色會反轉:複本會變成主要複本,而主要複本會擔任複本的角色。

注意

您升級的複本必須指派讀取器虛擬端點,否則您會收到升級時發生錯誤。

測試應用程式

若要執行某些作業,請重新啟動您的應用程式,然後嘗試這些作業。 您的應用程式應該順暢地運作,而不需要修改虛擬端點 連接字串 或 DNS 專案。 讓應用程式這次保持執行狀態。

容錯回復至原始伺服器和區域

重複相同的作業,將原始伺服器升級至主要伺服器。

  1. Azure 入口網站 中,選取複本。

  2. 在伺服器端提要欄位的 [設定] 底下,選取 [複寫]

  3. 在 [ 伺服器] 下,選取複本的 [ 升級 ] 圖示。

  4. 在對話框中,確定動作為 升級至主伺服器

  5. 針對 [數據同步處理],請確定 已規劃 - 先同步處理數據,再選取升級

  6. 選取 [ 升階],程序隨即開始。 完成之後,角色會反轉:複本會變成主要複本,而主要複本會擔任複本的角色。

測試應用程式

同樣地,切換至其中一個取用的應用程式。 等候主要和複本狀態變更為 Updating ,然後嘗試執行某些作業。 在復本升級期間,您的應用程式可能會遇到端點的暫時連線問題:

潛在升級連線錯誤的螢幕快照。

新增次要讀取複本

在個別區域中建立次要讀取複本,以修改讀取器虛擬端點,並允許從第一個複本建立獨立伺服器。

  1. 在 Azure 入口網站,選擇主要 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。

  2. 在伺服器端提要字段的 [設定] 底下,選取 [複寫]。

  3. 選取 [ 建立複本]。

  4. 輸入第三個區域中資訊的基本概念表單 (例如 westuscorp-pg-westus-001

  5. 選取 [檢閱 + 建立 ] 以確認複本的建立,或 [下一步:如果您想要新增、刪除或修改任何防火牆規則,網络 功能]。

  6. 確認防火牆設定。 請注意如何自動複製主要設定。

  7. 保留其餘預設值,然後選取頁面底部的 [ 檢閱 + 建立 ] 按鈕,或繼續進行下列窗體來設定安全性或新增標籤。

  8. 檢閱最終確認視窗中的資訊。 當您準備好時,選取 [建立]。 系統會建立新的部署。

  9. 在部署期間,您會看到主要狀態 Updating

    主要輸入更新狀態的螢幕快照。

修改虛擬端點

  1. 在 Azure 入口網站,選擇主要 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。

  2. 在伺服器端提要欄位的 [設定] 底下,選取 [複寫]。

  3. 選取省略號,然後選取 [ 編輯]。

    編輯虛擬端點的螢幕快照。

  4. 在對話框中,選取新的次要複本。

    選取次要複本的螢幕快照。

  5. 選取 [儲存]。 讀取器端點現在指向次要複本,而升級作業現在會系結至此複本。

將復本升階至獨立伺服器

與其切換至複本,也可以中斷複本的複寫,使其成為其獨立伺服器。

  1. Azure 入口網站 中,選擇 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器主伺服器。

  2. 在伺服器提要欄位的 [伺服器] 選單上,於 [設定] 底下,選取 [複寫]。

  3. 在 [ 伺服器] 底下,選取 您要升級至獨立伺服器之複本的 [升級 ] 圖示。

    如何選取以升級複本 2 的螢幕快照。

  4. 在對話框中,確定動作是 升級至獨立伺服器,並從複寫中移除。這不會影響主伺服器

  5. 針對 [數據同步處理],請確定 已規劃 - 先同步處理數據,再選取升級

    將復本升級至獨立伺服器的螢幕快照。

  6. 選取 [ 升階],程序隨即開始。 完成後,伺服器就不再是主要複本。

注意

復本升級至獨立伺服器之後,就無法將它新增回復寫集。

刪除虛擬端點

  1. 在 Azure 入口網站 中,選取伺服器。

  2. 在伺服器端提要字段的 [設定] 下,選取 [複寫]。

  3. 在頁面頂端,找出 區 Virtual endpoints 段。 瀏覽至端點名稱旁邊的三個點(功能表選項),展開它,然後選擇 Delete

  4. [刪除確認] 對話框隨即出現。 它會警告您:「此動作會移除虛擬端點 virtualendpointName。 任何使用這些網域連線的用戶端都可能會失去存取權。按兩下 [ 刪除] 確認含意並確認。

刪除複本

您可以刪除讀取複本,類似於刪除獨立 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例的方式。

  1. 在 Azure 入口網站中,開啟讀取複本的 [概觀] 頁面。 選取 [刪除]

    複本 [概觀] 頁面的螢幕快照,選取以刪除複本。

您也可以透過下列步驟,從 [複寫] 視窗中刪除讀取複本:

  1. 在 Azure 入口網站 中,選取您的主要 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。

  2. 在伺服器功能表上的 [設定] 下,選取 [複寫]。

  3. 選取要刪除的讀取複本,然後選取省略號。 選取 [刪除]

    選取要刪除之複本的螢幕快照。

  4. 認可 刪除 作業。

刪除主伺服器

刪除所有讀取複本之後,您只能刪除主伺服器。 若要刪除複本,請遵循刪除複本一節中的指示,然後繼續進行所提供的步驟。

若要從 Azure 入口網站 刪除伺服器,請遵循下列步驟:

  1. 在 Azure 入口網站 中,選取您的主要 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。

  2. 開啟伺服器的 [ 概觀 ] 頁面,然後選取 [ 刪除]。

    [伺服器概觀] 頁面的螢幕快照,選取以刪除主伺服器。

  3. 輸入要刪除的主伺服器名稱。 選取 [ 刪除 ] 以確認主伺服器的刪除。

    確認刪除主伺服器的螢幕快照。

監視複本

有兩個計量可用來監視讀取複本。

最大實體複寫延遲

僅適用於主要複本。

[ 最大實體復寫延遲 ] 計量會顯示主伺服器與最落後複本之間的位元元組延遲。

  1. 在 Azure 入口網站 中,選取主伺服器。

  2. 選取 [計量]。 在 [計量] 視窗中,選取 [最大實體複寫延遲]。

    [計量] 頁面的螢幕快照,其中顯示 [最大實體復寫延遲] 計量。

  3. 針對您的 [匯總],選取 [ 最大值]。

讀取複本延隔計量

讀取 複本延隔 計量會顯示複本上次重新執行交易之後的時間。 如果主要複本上未發生任何交易,計量就會反映此時間延遲。 例如,如果您的主伺服器上沒有發生任何交易,且上次交易是在5秒前重新執行,則讀取複本延隔時間會顯示5秒的延遲。

  1. 在 Azure 入口網站 中,選取 [讀取複本]。

  2. 選取 [計量]。 在 [ 計量] 視窗中,選取 [ 讀取複本延隔時間]。

    [計量] 頁面的螢幕快照,其中顯示 [讀取複本延隔時間] 計量。

  3. 針對您的 [匯總],選取 [ 最大值]。