虛擬端點是讀取/寫入和唯讀接聽端點,不論適用於 PostgreSQL 的 Azure 資料庫彈性伺服器目前的角色為何,都會保持一致。 這種一致性表示,你不需要在執行升級為主伺服器作業後,更新應用程式的連接字串。 端點在角色變更後會自動指向正確的伺服器。
你在主伺服器的情境下執行所有涉及虛擬端點的操作,無論是新增、編輯或移除。 在 Azure 入口網站中,您會在主要伺服器頁面下管理這些端點。 同樣地,使用 CLI、REST API 或其他公用程式等工具時,命令和動作會對主要伺服器進行端點管理。
虛擬端點提供兩種截然不同的連接點:
寫入端點(讀寫):此端點始終指向目前的主要伺服器。 它可確保寫入作業會導向至正確的伺服器,而不考慮使用者觸發的任何提升作業。 此端點無法變更為指向複本。
唯讀端點:你可以設定此端點指向讀取副本或主要伺服器。 不過,一次只能以一部伺服器為目標。 它不支援多台伺服器間的負載平衡。 您可以在升級之前或之後,隨時調整此端點的目標伺服器。
備註
你只能在主伺服器和其中一個副本中建立一個寫入端點和一個只讀端點。
虛擬端點與提升行為
當你觸發促銷動作時,這些端點會以可預測的方式運作。 以下章節將說明這些端點如何對 「升格到主伺服器 」和 「升格到獨立伺服器 」的情境做出反應。
| 虛擬端點 | 原始目標 | 觸發「提升至主要伺服器」時的行為 | 觸發「提升至獨立伺服器」時的行為 |
|---|---|---|---|
| 寫入器端點 | Primary | 指向新的主要伺服器。 | 保持不變。 |
| 唯讀端點 | Replica | 指向新的複本 (先前為主要伺服器)。 | 指向主要伺服器。 |
| 唯讀端點 | Primary | 不支援。 | 保持不變。 |
觸發「提升至主要伺服器」時的行為
- 寫入端點:此端點會更新為指向新的主要伺服器,以反映角色切換。
-
唯讀端點
- 若唯讀端點指向複本:執行升級動作後,唯讀端點會指向新的複本 (先前的主要伺服器)。
- 若唯讀端點指向主要伺服器:若要讓升級作業正確執行,唯讀端點必須指向預定要升級的伺服器。 不支援指向主伺服器。 您必須在升級前重新設定端點指向複本。
觸發「提升至獨立伺服器並從複寫中移除」時的行為
- 寫入端點:此端點保持不變。 它會繼續將流量指向伺服器,並保有主要角色。
-
唯讀端點
- 如果唯讀端點指向複本:唯讀端點會從升遷的複本重定向指向主伺服器。
- 若唯讀端點指向主端點:唯讀端點保持不變,繼續指向同一伺服器。
在點時恢復(PITR)或快照還原期間,使用虛擬端點以保持主機名稱一致
本節說明如何在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中使用虛擬端點,以在點點復原(PITR)或快照還原時維持一致的主機名稱,確保應用程式連線字串不變。 請遵循下列步驟:
將虛擬端點加入主伺服器:
- 在 Azure 入口網站中瀏覽至您的主要伺服器。
- 前往 複製 標籤。在 虛擬端點中,選擇 新增虛擬端點。
- 將虛擬端點配置為一致的主機名稱,例如
mydb-virtual-endpoint.postgres.database.azure.com。 - 儲存設定。
- 更新應用程式,以在連接字串中使用此虛擬端點。
執行點即時還原(PITR)或快照還原:
- 啟動復原:
- 移至主要伺服器的 [備份] 區段。
- 選擇適當的還原選項 (
PITR或snapshot),並指定所需的時間點。
- 更新虛擬端點:
- 新伺服器建立後,回到舊的主伺服器 複製 標籤。
- 從原始主要伺服器移除虛擬端點。 原始主要伺服器必須處於
succeeded狀態,才能移除虛擬端點。 - 將相同的虛擬端點新增至新建立的伺服器。
- 啟動復原:
驗證:
- 確保你的應用程式能透過虛擬端點連線,並在復原後驗證資料庫操作。