適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器中讀取複本的虛擬端點
適用範圍:適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器
虛擬端點是讀寫和唯讀接聽程式端點,無論適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體目前的角色為何,這些端點仍保持一致。 這表示您不需要在執行提升至主要伺服器動作之後更新應用程式的連接字串,因為端點會在角色變更之後,自動指向正確的執行個體。
涉及虛擬端點的所有作業 (無論是新增、編輯或移除),都會在主要伺服器的內容中執行。 在 Azure 入口網站中,您會在主要伺服器頁面下管理這些端點。 同樣地,使用 CLI、REST API 或其他公用程式等工具時,命令和動作會對主要伺服器進行端點管理。
虛擬端點提供兩種不同的連接點類型:
寫入器端點 (讀取/寫入):此端點一律指向目前的主要伺服器。 它可確保寫入作業會導向至正確的伺服器,而不考慮使用者觸發的任何提升作業。 此端點無法變更為指向複本。
唯讀端點:使用者可以設定此端點,以指向讀取複本或主要伺服器。 不過,一次只能以一部伺服器為目標。 不支援在多部伺服器之間的負載平衡。 您可以在升級之前或之後,隨時調整此端點的目標伺服器。
注意
每個主要伺服器只能建立一個寫入器和一個唯讀端點,並可建立其中一個複本。
虛擬端點和提升行為
如果發生提升動作,這些端點的行為仍然是可預測的。 下列各節會深入探討這些端點如何對提升到主要伺服器和提升到獨立伺服器案例的反應。
虛擬端點 | 原始目標 | 觸發「提升至主要伺服器」時的行為 | 觸發「提升至獨立伺服器」時的行為 |
---|---|---|---|
寫入器端點 | 主要 | 指向新的主要伺服器。 | 保持不變。 |
唯讀端點 | 複本 | 指向新的複本 (先前為主要伺服器)。 | 指向主要伺服器。 |
唯讀端點 | 主要 | 不支援。 | 保持不變。 |
觸發「提升至主要伺服器」時的行為
- 寫入器端點:此端點會更新為指向新的主要伺服器,以反映角色切換。
- 唯讀端點
- 如果唯讀端點指向複本:升級動作之後,唯讀端點會指向新的複本 (先前的主要端點)。
- 如果唯讀端點指向主要伺服器:若要使提升作業能夠正常運作,則必須將唯讀端點指向要提升的伺服器。 在此情況下,不支援指向主要伺服器,且必須在提升之前重新設定為指向複本。
觸發「提升至獨立伺服器並從複寫中移除」時的行為
- 寫入器端點:此端點保持不變。 它會繼續將流量指向伺服器,並保有主要角色。
- 唯讀端點
- 如果唯讀端點指向複本:唯讀端點會從提升的複本重新指向主要伺服器。
- 如果唯讀端點指向主要伺服器:唯讀端點維持不變,繼續指向相同的伺服器。
在時間點復原 (PITR) 或快照還原期間使用虛擬端點實現一致的主機名稱
本節說明如何在適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器中使用虛擬端點,在時間點復原 (PITR) 或快照還原期間維持一致的主機名稱,以確保應用程式連接字串維持不變。 請遵循下列步驟:
將虛擬端點新增至主要伺服器:
- 瀏覽至 Azure 入口網站中的主要伺服器執行個體。
- 瀏覽至 [複寫] 索引標籤,然後在 [虛擬端點] 底下,按一下 [新增虛擬端點]。
- 使用一致的主機名稱來設定虛擬端點 (例如
mydb-virtual-endpoint.postgres.database.azure.com
)。 - 儲存設定。
- 更新應用程式,以在連接字串中使用此虛擬端點。
執行時間點還原 (PITR) 或快照還原:
- 起始復原:
- 移至主要伺服器的 [備份] 區段。
- 選擇適當的還原選項 (
PITR
或snapshot
),並指定所需的時間點。
- 更新虛擬端點:
- 建立新的執行個體之後,請瀏覽回舊的主要伺服器 [複寫] 索引標籤。
- 從原始主要伺服器移除虛擬端點。 舊的主要伺服器應處於
succeeded
狀態以移除虛擬端點 - 將相同的虛擬端點新增至新建立的伺服器。
- 起始復原:
驗證:
- 請確定您的應用程式會使用虛擬端點進行連線,並在復原後確認資料庫作業。