針對 Azure Cosmos DB for PostgreSQL 的連線問題進行疑難排解
適用於: Azure Cosmos DB for PostgreSQL (由 PostgreSQL 的 Citus 資料庫延伸模組提供支援)
連線問題可能由各種因素造成,例如:
- 防火牆設定
- 連線逾時
- 不正確的登入資訊
- 已達到叢集的連線限制
- 服務基礎結構發生問題
- 服務維護
- 協調器節點容錯移轉至新的硬體
一般而言,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 的防火牆規則 (部分機器翻譯)