針對 適用於 PostgreSQL 的 Azure 資料庫 的連線問題進行疑難解答 - 單一伺服器
適用於:適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器
重要
適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器位於淘汰路徑上。 強烈建議您升級至 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器。 如需移轉至 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器的詳細資訊,請參閱單一伺服器 適用於 PostgreSQL 的 Azure 資料庫 發生什麼情況?。
連線 問題可能是由各種事項所造成,包括:
- 防火牆設定
- 連線逾時
- 不正確的登入資訊
- 某些 適用於 PostgreSQL 的 Azure 資料庫 資源達到上限
- 服務基礎結構發生問題
- 正在執行維修維護
- 調整虛擬核心數目或移至不同的服務層級,變更伺服器的計算配置
一般而言,適用於 PostgreSQL 的 Azure 資料庫 的連線問題可以分類如下:
- 暫時性錯誤 (短期或間歇性)
- 持續性或非暫時性錯誤 (定期重複發生的錯誤)
針對暫時性錯誤進行疑難排解
當執行維護、系統遇到硬體或軟體錯誤,或是您變更伺服器的虛擬核心或服務層級時,就會發生暫時性錯誤。 適用於 PostgreSQL 的 Azure 資料庫 服務具有內建的高可用性,其設計目的是要自動減輕這類問題。 不過,您的應用程式會有一小段時間與伺服器中斷連線,通常最多不超過 60 秒。 有些事件可能偶爾需要更長的時間才能解決,例如當有大型交易導致長時間執行的復原時。
解決暫時性連線問題的步驟
- 檢查 Microsoft Azure 服務儀表板 ,以了解是否有在應用程式回報錯誤期間發生的任何已知中斷。
- 連線到雲端服務的應用程式,例如 適用於 PostgreSQL 的 Azure 資料庫 應該預期暫時性錯誤,並實作重試邏輯來處理這些錯誤,而不是將這些錯誤顯示為應用程式錯誤給使用者。 如需處理暫時性錯誤的最佳作法和處理暫時性錯誤的設計指導方針,請參閱處理 適用於 PostgreSQL 的 Azure 資料庫 暫時性連線錯誤。
- 當伺服器接近其資源限制時,錯誤可能似乎是暫時性連線問題。 請參閱 適用於 PostgreSQL 的 Azure 資料庫的限制。
- 如果連線問題繼續發生,或如果您的應用程式發生錯誤的持續時間超過 60 秒,或如果您在一天當中,看到錯誤多次發生,請在 Azure 支援網站上選取 [取得支援],來提出 Azure 支援要求。
針對持續性錯誤進行疑難排解
如果應用程式持續無法連線到 適用於 PostgreSQL 的 Azure 資料庫,通常表示下列其中一個問題:
- 伺服器防火牆設定:請確定適用於 PostgreSQL 的 Azure 資料庫伺服器防火牆已設定為允許來自用戶端的連線,包括 Proxy 伺服器與閘道。
- 用戶端防火牆設定:用戶端上的防火牆必須允許與資料庫伺服器的連線。 在某些防火牆中,必須允許您無法連線之伺服器的 IP 位址和連接埠以及應用程式名稱,例如:PostgreSQL。
- 使用者錯誤:您可能輸入錯誤的連線參數 (例如連接字串中的伺服器名稱),或使用者名稱中遺漏 @servername 尾碼。
- 如果您看到錯誤 伺服器未設定為允許 ipv6 連線,請注意基本層不支援 VNet 服務端點。 您必須從嘗試連線至基本伺服器的子網路中移除 Microsoft.Sql 端點。
- 如果您在 SSL 支援未編譯錯誤時看到連線錯誤 sslmode 值 “***” 無效,表示 PostgreSQL 用戶端不支援 SSL。 可能性最高的是,並未使用 “--with-openssl” 旗標編譯用戶端 libpq。 請嘗試使用具有 SSL 支援的 PostgreSQL 用戶端進行連線。
解決持續性連線問題的步驟
- 設定防火牆規則以允許用戶端的 IP 位址。 僅適用於臨時性的測試目的,請使用 0.0.0.0 作為起始 IP 位址並使用 255.255.255.255 作為結束 IP 位址來設定防火牆規則。 這麼做將對所有 IP 位址開啟伺服器。 若這樣可解決您的連線問題,請移除此規則並針對已適當限制的 IP 位址或位址範圍建立防火牆規則。
- 請確定已在用戶端與網際網路之間的所有防火牆上開啟連接埠 5432,以供輸出連線使用。
- 確認您的連接字串和其他連線設定。
- 在儀表板中檢查服務健康情況。 如果您認為有區域性中斷情況,請參閱<使用適用於 PostgreSQL 的 Azure 資料庫的商務持續性概觀>(機器翻譯),以了解復原到新區域的步驟。