SQL Server數(shù)據(jù)庫(kù)事務(wù)日志壓縮與刪除的方法
下面為您介紹SQL Server數(shù)據(jù)庫(kù)事務(wù)日志壓縮與刪除的方法步驟,供您參考,希望對(duì)您能夠有所幫助。
方法一:
第一步:
backup log database_name with no_log
或者 backup log database_name with truncate_only
-- no_log和truncate_only是在這里是同義的,隨便執(zhí)行哪一句都可以。
第二步:
1.收縮特定數(shù)據(jù)庫(kù)的所有數(shù)據(jù)和日志文件,執(zhí)行:
dbcc shrinkdatabase (database_name,[,target_percent])
-- database_name是要收縮的數(shù)據(jù)庫(kù)名稱;target_percent是數(shù)據(jù)庫(kù)收縮后的數(shù)據(jù)庫(kù)文件中所要的剩余可用空間百分比。
2.收縮一次一個(gè)特定數(shù)據(jù)庫(kù)中的數(shù)據(jù)或日志文件,執(zhí)行
dbcc shrinkfile(file_id,[,target_size])
-- file_id是要收縮的文件的標(biāo)識(shí) (ID) 號(hào),若要獲得文件 ID,請(qǐng)使用 FILE_ID 函數(shù)或在當(dāng)前數(shù)據(jù)庫(kù)中搜索 sysfiles;target_size是用兆字節(jié)表示的所要的文件大?。ㄓ谜麛?shù)表示)。如果沒(méi)有指定,dbcc shrinkfile 將文件大小減少到默認(rèn)文件大小。兩個(gè)dbcc都可以帶上參數(shù)notruncate或truncateonly,具體意思查看聯(lián)機(jī)幫助.
方法二:
第一步:
先備份整個(gè)數(shù)據(jù)庫(kù)以備不測(cè) 。
第二步:
備份結(jié)束后,在Query Analyzer中執(zhí)行如下的語(yǔ)句:
exec sp_detach_db yourDBName,true
--卸除這個(gè)DB在MSSQL中的注冊(cè)信息
第三步:
到日志的物理文件所在的目錄中去刪除該日志文件或者將該日志文件移出該目錄#p#
第四步:
在Query Analyzer中執(zhí)行如下的語(yǔ)句:
exec sp_attach_single_file_db yourDBName,'d:\mssql\data\yourDBName_data.mdf '
--以單文件的方式注冊(cè)該DB,如果成功則MSSQL將自動(dòng)為這個(gè)DB生成一個(gè)500K的日志文件。
方法三:
1. 進(jìn)入企業(yè)管理器,選中數(shù)據(jù)庫(kù),比如demo
2. 所有任務(wù)->分離數(shù)據(jù)庫(kù)
3. 到數(shù)據(jù)庫(kù)文件的存放目錄,將MuOnline_log.LDF文件刪除,以防萬(wàn)一,你可以拷出去
4. 企業(yè)管理器->附加數(shù)據(jù)庫(kù),選muonline,這個(gè)時(shí)候你會(huì)看見(jiàn)日志文件這項(xiàng)是一個(gè)叉,不要緊,繼續(xù),此時(shí)數(shù)據(jù)庫(kù)就會(huì)提示你該數(shù)據(jù)庫(kù)無(wú)日志是否創(chuàng)建一個(gè)新的,確定就是了。
5. 記得數(shù)據(jù)庫(kù)重新附加后用戶要重新設(shè)置一下。
如果以后,不想要它變大:
SQL2000下使用:
在數(shù)據(jù)庫(kù)上點(diǎn)右鍵->屬性->選項(xiàng)->故障恢復(fù)-模型-選擇-簡(jiǎn)單模型。
或用SQL語(yǔ)句:
alter database 數(shù)據(jù)庫(kù)名 set recovery simple