針對 適用於 PostgreSQL 的 Azure 資料庫 的連線問題進行疑難解答 - 單一伺服器

適用於:適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器

重要

適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器位於淘汰路徑上。 強烈建議您升級至 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器。 如需移轉至 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器的詳細資訊,請參閱單一伺服器 適用於 PostgreSQL 的 Azure 資料庫 發生什麼情況?

連線 問題可能是由各種事項所造成,包括:

  • 防火牆設定
  • 連線逾時
  • 不正確的登入資訊
  • 某些 適用於 PostgreSQL 的 Azure 資料庫 資源達到上限
  • 服務基礎結構發生問題
  • 正在執行維修維護
  • 調整虛擬核心數目或移至不同的服務層級,變更伺服器的計算配置

一般而言,適用於 PostgreSQL 的 Azure 資料庫 的連線問題可以分類如下:

  • 暫時性錯誤 (短期或間歇性)
  • 持續性或非暫時性錯誤 (定期重複發生的錯誤)

針對暫時性錯誤進行疑難排解

當執行維護、系統遇到硬體或軟體錯誤,或是您變更伺服器的虛擬核心或服務層級時,就會發生暫時性錯誤。 適用於 PostgreSQL 的 Azure 資料庫 服務具有內建的高可用性,其設計目的是要自動減輕這類問題。 不過,您的應用程式會有一小段時間與伺服器中斷連線,通常最多不超過 60 秒。 有些事件可能偶爾需要更長的時間才能解決,例如當有大型交易導致長時間執行的復原時。

解決暫時性連線問題的步驟

  1. 檢查 Microsoft Azure 服務儀表板 ,以了解是否有在應用程式回報錯誤期間發生的任何已知中斷。
  2. 連線到雲端服務的應用程式,例如 適用於 PostgreSQL 的 Azure 資料庫 應該預期暫時性錯誤,並實作重試邏輯來處理這些錯誤,而不是將這些錯誤顯示為應用程式錯誤給使用者。 如需處理暫時性錯誤的最佳作法和處理暫時性錯誤的設計指導方針,請參閱處理 適用於 PostgreSQL 的 Azure 資料庫 暫時性連線錯誤。
  3. 當伺服器接近其資源限制時,錯誤可能似乎是暫時性連線問題。 請參閱 適用於 PostgreSQL 的 Azure 資料庫的限制。
  4. 如果連線問題繼續發生,或如果您的應用程式發生錯誤的持續時間超過 60 秒,或如果您在一天當中,看到錯誤多次發生,請在 Azure 支援網站上選取 [取得支援],來提出 Azure 支援要求。

針對持續性錯誤進行疑難排解

如果應用程式持續無法連線到 適用於 PostgreSQL 的 Azure 資料庫,通常表示下列其中一個問題:

  • 伺服器防火牆設定:請確定適用於 PostgreSQL 的 Azure 資料庫伺服器防火牆已設定為允許來自用戶端的連線,包括 Proxy 伺服器與閘道。
  • 用戶端防火牆設定:用戶端上的防火牆必須允許與資料庫伺服器的連線。 在某些防火牆中,必須允許您無法連線之伺服器的 IP 位址和連接埠以及應用程式名稱,例如:PostgreSQL。
  • 使用者錯誤:您可能輸入錯誤的連線參數 (例如連接字串中的伺服器名稱),或使用者名稱中遺漏 @servername 尾碼。
  • 如果您看到錯誤 伺服器未設定為允許 ipv6 連線,請注意基本層不支援 VNet 服務端點。 您必須從嘗試連線至基本伺服器的子網路中移除 Microsoft.Sql 端點。
  • 如果您在 SSL 支援未編譯錯誤時看到連線錯誤 sslmode 值 “***” 無效,表示 PostgreSQL 用戶端不支援 SSL。 可能性最高的是,並未使用 “--with-openssl” 旗標編譯用戶端 libpq。 請嘗試使用具有 SSL 支援的 PostgreSQL 用戶端進行連線。

解決持續性連線問題的步驟

  1. 設定防火牆規則以允許用戶端的 IP 位址。 僅適用於臨時性的測試目的,請使用 0.0.0.0 作為起始 IP 位址並使用 255.255.255.255 作為結束 IP 位址來設定防火牆規則。 這麼做將對所有 IP 位址開啟伺服器。 若這樣可解決您的連線問題,請移除此規則並針對已適當限制的 IP 位址或位址範圍建立防火牆規則。
  2. 請確定已在用戶端與網際網路之間的所有防火牆上開啟連接埠 5432,以供輸出連線使用。
  3. 確認您的連接字串和其他連線設定。
  4. 在儀表板中檢查服務健康情況。 如果您認為有區域性中斷情況,請參閱<使用適用於 PostgreSQL 的 Azure 資料庫的商務持續性概觀>(機器翻譯),以了解復原到新區域的步驟。

下一步