2011-04-21 93 views
0

我有一臺機器只能偶爾連接到2008 SQL服務器。我創建了一個監視腳本,我已經自動嘗試連接(通過sqlsrv驅動程序和php)每15分鐘一次。這個腳本在過去的兩週內運行良好,但最近它報告了一個SQL服務器正在關閉。在廣泛的調查中,除了機器自動執行監控腳本之外,我能夠連續地從其他機器連接到它。這個腳本還連接到另外兩個SQL服務器(都是sql server 2005),沒有任何問題。以下是我嘗試解決故障的方法: 1.重置兩臺機器(多次) 2.嘗試通過幾次不同次數的登錄嘗試連接(包括sa)。 3.刪除並重新創建登錄並嘗試連接。 4.原來關閉Windows防火牆(SQL服務器上運行win2k8)SQL Server訪問問題

這是我收到的時候我無法連接錯誤:http://pastebin.com/9d80mAyV

通常它不會約5企圖(間隔15分鐘)工作,然後它將工作1次。然後再失敗5次。沒有絕對的一致性。

我的想法是,它已經將我的客戶列入黑名單,以免經常連接。這可能嗎?我怎麼能解決這個問題?任何其他想法或建議?

+0

你看過你的服務器日誌嗎?他們可能會提供一些指示,說明原因是否由於資源限制(錯誤消息中列出的可能原因)。 – 2011-04-21 20:09:51

+0

與同事交談之後還有一個想法......錯誤代碼64「通常意味着連接已被本地或遠程重置。丟棄數據包的網絡很可能是導致此錯誤的原因之一(例如對等由於某種原因已經無故關閉連接)「。所以,你可能想要調查壞的網絡硬件(例如有故障的網卡或交換機)。你只在這臺機器上看到這一點的事實也支持這種可能性。 – 2011-04-21 21:08:40

回答

0

的詳細原因需要:

  1. 你在使用連接?它是一個應用程序或管理工作室(什麼版本?)
  2. 服務器位於何處?即你在同一個網絡上嗎?

您可以嘗試增加連接超時。如果您從管理工作室連接,則可以在服務器註冊屬性中執行此操作。

或者,您可以在服務器本身上設置sql監控,並在發生故障時向您發送電子郵件。

+0

連接正在使用來自Microsoft的sqlsrv api在php中完成。服務器位於外部網絡上,但我們有一個光纖連接,並且ping小於3ms。我增加了服務器和腳本上的超時,但沒有運氣。 – landtax 2011-04-21 12:50:41