SQL日志文件太大,清理方法
最佳答案方法1:?
在查詢分析儀里面運行下面代碼:?
backup log dbname with NO_LOG
backup log dbname with TRUNCATE_ONLY
DBCC SHRINKDATABASE(dbname)
方法2:?
進入企業管理器,選中數據庫?
所有任務->分離數據庫?
到數據庫文件的存放目錄,將dbname_log.LDF文件刪除,怕S的話可以拷出去?
企業管理器->附加數據庫,選dbname,這個時候你會看見日志文件這項是一個叉,不要緊繼續,此時數據庫就會提示你該數據庫無日志是否創建一個新的,確定就是了?
方法3:?
進入企業管理器,選中數據庫?
所有任務->收縮數據庫?
SQL日志文件太大,清理方法?
--壓縮日志及數據庫文件大小?
/*--特別注意?
請按步驟進行,未進行前面的步驟,請不要做后面的步驟,否則可能損壞你的數據庫.?
一般不建議做第4,6兩步?
第4步不安全,有可能損壞數據庫或丟失數據?
第6步如果日志達到上限,則以后的數據庫處理會失敗,在清理日志后才能恢復.?
--*/?
1.清空日志?
DUMP?TRANSACTION?庫名?WITH?NO_LOG?????
2.截斷事務日志:?
BACKUP?LOG?數據庫名?WITH?NO_LOG?
3.收縮數據庫文件(如果不壓縮,數據庫的文件不會減小?
???企業管理器--右鍵你要壓縮的數據庫--所有任務--收縮數據庫--收縮文件?
--選擇日志文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了?
--選擇數據文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了?
???也可以用SQL語句來完成?
--收縮數據庫?
DBCC?SHRINKDATABASE(客戶資料)?
--收縮指定數據文件,1是文件號,可以通過這個語句查詢到:select?*?from?sysfiles?
DBCC?SHRINKFILE(1)?
4.為了最大化的縮小日志文件(如果是sql?7.0,這步只能在查詢分析器中進行)?
a.分離數據庫:?
企業管理器--服務器--數據庫--右鍵--分離數據庫?
b.在我的電腦中刪除LOG文件?
c.附加數據庫:?
企業管理器--服務器--數據庫--右鍵--附加數據庫?
此法將生成新的LOG,大小只有500多K?
或用代碼:?
下面的示例分離?pubs,然后將?pubs?中的一個文件附加到當前服務器。?
a.分離?
EXEC?sp_detach_db?@dbname?=?'pubs'?
b.刪除日志文件?
c.再附加?
EXEC?sp_attach_single_file_db?@dbname?=?'pubs',?
???@physname?=?'c:/Program?Files/Microsoft?SQL?Server/MSSQL/Data/pubs.mdf'?
5.為了以后能自動收縮,做如下設置:?
企業管理器--服務器--右鍵數據庫--屬性--選項--選擇"自動收縮"?
--SQL語句設置方式:?
EXEC?sp_dboption?'數據庫名',?'autoshrink',?'TRUE'?
6.如果想以后不讓它日志增長得太大?
企業管理器--服務器--右鍵數據庫--屬性--事務日志?
--將文件增長限制為xM(x是你允許的最大數據文件大小)?
?
--SQL語句的設置方式:?
alter?database?數據庫名?modify?file(name=邏輯文件名,maxsize=20)?
?
?--刪除數據庫日志 ALTER PROCEDURE [dbo].[NS_ShrinkLog] @DBName nchar(50) AS Beginexec('BACKUP LOG ['+@DBName+'] WITH NO_LOG')exec('DBCC SHRINKDATABASE(['+@DBName+'])') End
?
總結
以上是生活随笔為你收集整理的SQL日志文件太大,清理方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 桩基础资料竣工图系列软件
- 下一篇: cad通过钢筋大样生成钢筋明细表插件_R