這很重要
新專案不再支援適用於 PostgreSQL 的 Azure Cosmos DB。 請勿將此服務用於新專案。 請改用下列兩項服務之一:
使用 Azure Cosmos DB for NoSQL 作為專為高規模應用場景設計的分散式資料庫解決方案,其特色包括99.999% 的可用性服務等級協定(SLA)、即時自動調整,以及跨多個區域的自動容錯移轉。
針對使用開放原始碼超大規模 (Citus) 延伸模組的分區化 PostgreSQL 使用適用於 PostgreSQL 的 Azure 資料庫的彈性叢集功能。
連線問題可能由各種因素造成,例如:
- 防火牆設定
- 連線逾時
- 不正確的登入資訊
- 已達到叢集的連線限制
- 服務基礎結構發生問題
- 服務維護
- 協調器節點容錯移轉至新的硬體
一般而言,Azure Cosmos DB for PostgreSQL 的連線問題可分類如下:
- 暫時性錯誤 (短期或間歇性)
- 持續性或非暫時性錯誤 (定期重複發生的錯誤)
針對暫時性錯誤進行疑難排解
造成暫時性錯誤的原因有很多種。 最常見的原因包括系統維護、硬體或軟體發生錯誤,以及協調器節點虛擬核心升級。
啟用叢集節點的高可用性,可以自動減輕此類問題。 不過,您的應用程式仍應做好會短暫失去連線的準備。 而其他事件可能需要更長的時間才能解決,例如當有大型交易導致長時間執行的復原時。
解決暫時性連線問題的步驟
- 檢查 Microsoft Azure 服務儀表板,以了解是否有在應用程式回報錯誤期間發生的任何已知中斷。
- 連線到 Azure Cosmos DB for PostgreSQL 等雲端服務的應用程式應該預期會發生暫時性錯誤,並正常回應。 例如,應用程式應該實作重試邏輯來處理這些錯誤,而非將其呈現為使用者的應用程式錯誤。
- 當叢集接近其資源限制時,錯誤看起來可能會是暫時性連線問題。 增加節點 RAM,或新增背景工作節點並重新平衡資料,可能會有所幫助。
- 如果連線問題持續發生,或是持續時間超過 60 秒,或每天發生一次以上,請在 Azure 支援網站上選取取得支援,提出 Azure 支援要求。
針對持續性錯誤進行疑難排解
如果應用程式持續無法連線到 Azure Cosmos DB for PostgreSQL,最常見的原因是防火牆設定錯誤或使用者錯誤。
- 協調器節點防火牆設定:請確定伺服器防火牆已設定為允許來自用戶端的連線,包括 Proxy 伺服器與閘道。
- 用戶端防火牆設定:用戶端的防火牆必須允許和您的資料庫伺服器連線。 某些防火牆不僅需要依名稱允許應用程式,還需要允許伺服器的 IP 位址和連接埠。
- 使用者錯誤:請再次檢查連接字串。 您可能輸入錯誤的參數,例如伺服器名稱。 您可以在 Azure 入口網站中找到各種語言架構和 psql 的連接字串。 移至叢集中的 [連接字串] 頁面。 也請記住,叢集只有一個資料庫,且其預先定義的名稱是 citus。
解決永久性連線問題的步驟
- 設定 防火牆規則 允許用戶端 IP 位址。 (僅適用於臨時性的測試目的) 請使用 0.0.0.0 作為起始 IP 位址並使用 255.255.255.255 作為結束 IP 位址來設定防火牆規則。 該規則會對所有 IP 位址開啟伺服器。 若規則可解決您的連線問題,請將其移除,並針對已適當限制的 IP 位址或位址範圍建立防火牆規則。
- 在用戶端與網際網路之間的所有防火牆上,確定開放連接埠 5432 供輸出連線使用 (如果使用連線集區,則為連接埠 6432)。
- 請確認您的連接字串和其他連線設定。
- 檢查儀表板中的服務健康情況。
後續步驟
- 了解 Azure Cosmos DB for PostgreSQL 中的防火牆規則 (部分機器翻譯) 概念
- 了解如何管理 Azure Cosmos DB for PostgreSQL 的防火牆規則 (部分機器翻譯)