我們在俄羅斯和其他獨聯體國家運行着相當流行的一種叫做BEST的老式會計系統。它全部建立在FoxPro(而不是Visual Foxpro)DBF/CDX表格上。它是開放的,它沒有與其他軟件交互的API。所以我們必須使用直接訪問表和數據。DBF/CDX文件幾乎每天都變得無法訪問
我們使用Sybase Advantage數據庫服務器Internet連接器(ADS)將我們的在線商店連接到BEST數據庫,並接收最新信息並重新寫入訂單。 BEST用戶以終端模式工作在Windows Server 2003 R2 SP2上 - 因此所有可執行文件都運行並且所有表/索引文件在Windows Server上本地打開,但不通過網絡打開。
最近2年,我們遇到了頻繁的數據庫文件鎖定問題。首先,我們認爲我們有Foxpro索引文件損壞,因爲來自ADS的所有錯誤都與索引文件相關。但後來我們發現這些文件(包括DBF和CDX)都可以正常使用,重啓後它們可以正常打開。通常問題發生在3個表格:RBOOK(訂單),RBOOKM(訂單內容)和MKART(關於商品數量,儲量等的存儲信息)。一些用戶繼續使用這些文件,而其他用戶則無法打開它們。我可以用Windows資源管理器複製文件,我可以用FIWIN dbf-viewer打開表格,但我不能用ADS或BEST。
由於問題沒有立即顯示,因此很難排除故障。沒有系統事件日誌值以某種方式與它連接。不幸的是,BEST沒有正常的日誌文件(只是一個文件,它寫入最後的錯誤,通常說錯誤打開索引文件)。問題頻出 - 它每天發生差不多,但每次它發生在不同的時間。我們試圖找到任何規律,但我們失敗了。有10個連續日沒有問題的時期,然後回到「日常基礎」。重啓是我們情況的唯一方式。無需重新啓動(只需關閉所有應用程序和重新索引),問題很快就會重演。
我們不能使用SysInternals Handles.exe實用程序,因爲它總是說沒有足夠的資源來運行。我們使用Windows任務管理器查看應用程序打開的句柄數 - 但最大的數字是Outlook,acronis MMS服務和svchost。沒有與我們的表有關的進程與> 1K句柄。我們試圖關閉所有可能的東西(AV軟件,備份,不必要的utils),我們限制訪問整個部門,我們記錄訪問有問題的文件,我們嘗試改變很多Windows註冊表項,這些註冊表項以某種方式連接到文件,鎖定(oplocks) ,網絡,內存和手柄限制等。但沒有運氣。我們乾淨地重新安裝了服務器,但這也沒有幫助。我們更換了內存,硬盤,網絡交換機。後來我們更換了整個服務器。我們改變了電源。我們重新創建了用戶簡檔。我們在用戶機器和網絡電纜上更換了網卡,然後讓所有人都可以訪問終端。我們試圖監視資源並做了其他事情,但一切都很正常。
下面是在RBOOKM索引文件訪問問題期間拍攝的Unlocker實用程序的屏幕截圖。 http://cl.ly/image/292d17111A3B 我覺得很奇怪,很多進程具有相同的文件的句柄文件ID,而其他人有獨特的句柄。
這可能是這個問題連一兩件事 - 我們注意到,在一些情況下,CPU使用的是60%以上和系統工作rahter
你有什麼想法?我會非常感謝你。
眼看着把手實用失敗的問題這聽起來像是對我潛在問題的一個非常強烈的暗示。如果您沒有看到明顯的處理泄漏跡象,很難猜測機器將耗盡哪種資源,通常它與內核內存池相關。這個問題與編程無關,這個網站的主題。 –
你說得對,我應該在ServerFault上提問。 – pablomedok