資料庫日誌自增量太大導致超時

2022-02-11 04:42:34 字數 1503 閱讀 1562

故障現象:

1、電腦執行緩慢,幾乎不能操縱

2、此資料來源支援的web程式已down,暴露出來的error:獲得連線超時。

3、本地連線資料庫沒有問題,但是本地的web程式居然獲得不了資料連線

4、cpu利用率、記憶體占用並不高

系統出現當機的可能性很多,造成了確定原因很困難。只能地毯式搜尋。

1、系統已經進行了全面的查毒、查木馬操作,沒有發現可疑檔案,系統補丁也及時進行修復,被人掛馬的可能性不大。

根據系統的log進行排查:

2、遠端登入載入的程式錯誤。儘管爆出多次錯誤,但不致於資料庫連線中斷。同樣出現類似問題的其它機器並未出現宕機。

3、日誌自動增長超時,這個可能性很大。在兩次系統當機前,這個error曝出的最多,而且系統正常之後,此類errorlog消失。

錯誤資訊:

原因分析:

預設sql server 在資料庫檔案滿了後,是自動增加原資料庫檔案的10%大小,用來繼續使用。還有日誌檔案,同樣如此。假如你的資料庫檔案很大了,檔案再增加10%,將會是一種較大的負擔。

經查詢,其中一資料庫的日誌檔案已經有2.37gb之多,如果增加10%,就要增加超過200mb,需要較長的時間時間來完成,這種操作很可能超時。然後其它的插入、更新、查詢操作產生連鎖反應。而且,還有定時器,在不斷進行資料,如果出現超時,則很有可能出現死鎖,致使w3wp.exe程序中線程數明顯增加。

如果資料庫在事務中進行更新操作時,而恰巧此時,日誌空間不足,需要增加10%的日誌空間,而資料庫事務執行超時時間預設為30秒,這時如果操作超時,事務將進行回滾,此時,其它的資料庫操作會產生連鎖反應,形成阻塞。

小型實驗:為了證明這個問題,簡單做了乙個小例子,設定:日誌滿後自動增加1g的空間。結果,也出現了此類錯誤,而且在此期間,不能對資料庫進行任何操作。

如果您執行的事務需要的日誌空間大於可用空間,並且您已經為該資料庫的事務日誌開啟自動增長選項,則在完成事務所花費的時間中,有一部分是事務日誌按配置量增長所花費的時間。如果該增長量很大,或者有其他因素導致時間延長,則您在其中開啟事務的查詢可能因超時錯誤而失敗。資料庫的資料部分的自動增長可能會造成此類問題。

解決方法:將檔案增長設定為乙個更低的百分比或者直接指定增加多少兆位元組。

事件型別:資訊

事件:mssqlserver

事件種類:(2)

事件 id: 5144

日期: 2009-3-3

事件: 11:57:18

使用者: n/a

描述:資料庫 『databasename『 中的檔案 『databasename_log『 的自動增長已由使用者取消,或已在 30687 毫秒後超時。請使用 alter database 為此檔案設定較小的 filegrowth 值,或顯式設定新的檔案大小。

有關資訊,請參閱在 的幫助和支援中心。

認真查閱了一些資料,在網路中也得到幾位同病者的提供的分析結果,基本已經確定了問題的所在。

優化sql server資料庫的經驗總結

mysql百萬級高併發**實戰攻略

sql server查詢速度緩慢解決辦法

解決 sql server 資料庫日誌檔案太大

sql資料庫日誌檔案滿而造成sql資料庫無法寫入檔案時,可用如下方法 1 開啟查詢分析器,清空日誌,輸入命令 dump transaction 資料庫名 with no log 2.再開啟企業管理器 右鍵你要壓縮的資料庫 所有任務 收縮資料庫 收縮檔案 選擇日誌檔案 在收縮方式裡選擇收縮至xxm,這...

SQL Server 2000 資料庫日誌太大

開啟企業管理器,右擊要處理的資料庫 屬性 選項 故障還原,選 簡單 確定 右擊要處理的資料庫 所有任務 收縮資料庫 什麼也不動,預設第乙個是0 其它兩個未選中,點確定 如果您以前資料庫日誌檔案大於 m那麼現在再看看,是不是只有 m了呢。操作完後 按第一步,把 故障還原 選 完全 傳說中sql ser...

MSSQL資料庫日誌檔案太大的處理方法

特別注意 請按步驟進行,未進行前面的步驟,請不要做後面的步驟 否則可能損壞你的資料庫.一般不建議做第4,6兩步 第4步不安全,有可能損壞資料庫或丟失資料 第6步如果日誌達到上限,則以後的資料庫處理會失敗,在清理日誌後才能恢復.下面的所有庫名都指你要處理的資料庫的庫名 1.清空日誌 dump tran...