資料庫“TSupervise” 的事務日誌已滿問題的解決之法

jiangzhengdong發表於2013-03-19

      寫了個windows服務程式,並且設定為開機自動啟動,功能為:將Acess資料庫中的資料匯入到SQL Server中,並且每隔10s匯入一次。

結果開機啟動後,資料匯入一直在後臺進行,不知過了多久,突然發現本奇卡,後來找原因才發現資料庫中資料過多,開啟資料庫表一看,

發現有>1800w條資料記錄,光日誌檔案都有10.5G左右,資料庫檔案1G左右。然後執行delete表操作,想清空表中記錄,結果出現:

資料庫 “TSupervise”的事務日誌已滿。若要查明無法重用日誌中的空間的原因,請參閱 sys.databases 中的 log_reuse_wait_desc 列。

最後網上搜尋,終於找到解決方法,說是清空日誌即可。方法如下所示:

1.開啟查詢分析器,輸入:

dump transaction databasename(注:databasename為你要進行日誌刪除操作的資料庫名) with no_log並執行。

2.查詢分析器裡輸入:

alter database databasename set recovery simple

3.右鍵你要壓縮的資料庫--所有任務--收縮--檔案,右側會出現相應的資訊,在“檔案型別”中選擇“日誌”,在收縮操作中選擇“在釋放未使用的空間前重新組織頁”,將檔案收縮到xxMB,填入右側括號的最小值即可。

以上步驟完成後,便可進行其他操作了,我後來將表中資料全部清空,結果花了我大概7min鍾:


參考:http://bbs.csdn.net/topics/300122867

相關文章