1.dump transaction [database_name] with no_log [收縮資料庫是還真是必須的加上]
2.backup log [database_name] with no_log
3.收縮資料庫檔案(如果不壓縮,資料庫的檔案不會減小)
企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮檔案
--選擇日誌檔案--在收縮方式裡選擇收縮至xxm,這裡會給出乙個允許收縮到的最小m數,直接輸入這個數,確定就可以了
--選擇資料檔案--在收縮方式裡選擇收縮至xxm,這裡會給出乙個允許收縮到的最小m數,直接輸入這個數,確定就可以了
4.如果想以後不讓它增長
企業管理器->伺服器->資料庫->屬性->事務日誌->將檔案增長限制為2m
程式裡面的方法:
壓縮資料庫日誌
--1.清空日誌
exec('dump transaction ['+@dbname+'] with no_log')
--2.截斷事務日誌:
exec('backup log ['+@dbname+'] with no_log')
--3.收縮資料庫檔案(如果不壓縮,資料庫的檔案不會減小
exec('dbcc shrinkdatabase(['+@dbname+'])')
方法1:
第一步:
dump transaction database_name with no_log
backup log database_name with no_log
第二步:
收縮特定資料庫的所有資料和日誌檔案,執行 dbcc shrinkdatabase (database_name)
方法2:
另一種方法有一定的風險性,因為sql server的日誌檔案不是即時寫入資料庫主檔案的,如處理不當,會造成資料的損失。
1: 刪除log
分離資料庫 企業管理器->伺服器->資料庫->右鍵->分離資料庫
2:刪除log檔案
附加資料庫 企業管理器->伺服器->資料庫->右鍵->附加資料庫
此法會提示"重新建立log"生成新的log,大小只有500多k。
注意:建議使用第一種方法。
如果以後,不想要它變大。
sql2000下使用:
在資料庫上點右鍵->屬性->選項->故障恢復-模型-選擇-簡單模型。
或用sql語句:
alter database 資料庫名 set recovery ******
方法3:
如果資料庫使用的是簡單恢復模式,直接執行checkpoint之後,再收縮一次資料庫,則刪除新的 minlsn 之前的所有日誌記錄。
參考:sql聯機叢書:checkpoint,檢查點和日誌的活動部分
SQL SERVER 清除日誌
1.在sql2008中清除日誌就必須在簡單模式下進行,等清除動作完畢再調回到完全模式。2.這裡的dbname log 可以通過以下查詢 use dbname goselect file id,name from sys.database files use master goalter databa...
SQL Server清除日誌語句
sql1 清除日誌 2 declare logicalfilename sysname,3 maxminutes int,4 newsize int 5 use database 要操作的資料庫名 6 select logicalfilename database log 日誌檔名 7 maxmin...
清除SQLServer日誌的方法
方法1 第一步 backup log database name with no log 第二步 收縮特定資料庫的所有資料和日誌檔案,執行 dbcc shrinkdatabase database name 方法2 另一種方法有一定的風險性,因為sql server的日誌檔案不是即時寫入資料庫主檔案...