資源描述:
《sql server 數(shù)據(jù)庫清除日志的方法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、SQLServer數(shù)據(jù)庫清除日志的方法方法一:?1、打開查詢分析器,輸入命令?BACKUPLOGdatabase_nameWITHNO_LOG?2、再打開企業(yè)管理器--右鍵要壓縮的數(shù)據(jù)庫--所有任務--收縮數(shù)據(jù)庫--收縮文件--選擇日志文件--在收縮方式里選擇收縮至xxm,這里會給出一個允許收縮到的最小m數(shù),直接輸入這個數(shù),確定就可以了。?方法二:?設置檢查點,自動截斷日志? 一般情況下,SQL數(shù)據(jù)庫的收縮并不能很大程度上減小數(shù)據(jù)庫大小,其主要作用是收縮日志大小,應當定期進行此操作以免數(shù)據(jù)庫日志過大?1、設置數(shù)據(jù)庫模式為簡單
2、模式:打開SQL企業(yè)管理器,在控制臺根目錄中依次點開MicrosoftSQLServer-->SQLServer組-->雙擊打開你的服務器-->雙擊打開數(shù)據(jù)庫目錄-->選擇你的數(shù)據(jù)庫名稱(如用戶數(shù)據(jù)庫cwbase1)-->然后點擊右鍵選擇屬性-->選擇選項-->在故障還原的模式中選擇“簡單”,然后按確定保存?2、在當前數(shù)據(jù)庫上點右鍵,看所有任務中的收縮數(shù)據(jù)庫,一般里面的默認設置不用調(diào)整,直接點確定?3、收縮數(shù)據(jù)庫完成后,建議將您的數(shù)據(jù)庫屬性重新設置為標準模式,操作方法同第一點,因為日志在一些異常情況下往往是恢復數(shù)據(jù)庫的重要依據(jù)
3、?方法三:通過SQL收縮日志?把代碼復制到查詢分析器里,然后修改其中的3個參數(shù)(數(shù)據(jù)庫名,日志文件名,和目標日志文件的大小),運行即可?SETNOCOUNTON?DECLARE@LogicalFileNamesysname,?@MaxMinutesINT,?@NewSizeINT?USEtablename--要操作的數(shù)據(jù)庫名?SELECT@LogicalFileName='tablename_log',--日志文件名?@MaxMinutes=10,--Limitontimeallowedtowraplog.?@NewSize=
4、1--你想設定的日志文件的大小(M)?--Setup/initialize?DECLARE@OriginalSizeint?SELECT@OriginalSize=size?FROMsysfiles?WHEREname=@LogicalFileName?SELECT'OriginalSizeof'+db_name()+'LOGis'+?CONVERT(VARCHAR(30),@OriginalSize)+'8Kpagesor'+?CONVERT(VARCHAR(30),(@OriginalSize*8/1024))+'MB'?
5、FROMsysfiles?WHEREname=@LogicalFileName?CREATETABLEDummyTrans?(DummyColumnchar(8000)notnull)?DECLARE@CounterINT,?@StartTimeDATETIME,?@TruncLogVARCHAR(255)?SELECT@StartTime=GETDATE(),?@TruncLog='BACKUPLOG'+db_name()+'WITHTRUNCATE_ONLY'?DBCCSHRINKFILE(@LogicalFileName
6、,@NewSize)?EXEC(@TruncLog)?--Wrapthelogifnecessary.?WHILE@MaxMinutes>DATEDIFF(mi,@StartTime,GETDATE())--timehasnotexpired?AND@OriginalSize=(SELECTsizeFROMsysfilesWHEREname=@LogicalFileName)?AND(@OriginalSize*8/1024)>@NewSize?BEGIN--Outerloop.?SELECT@Counter=0?WHILE(
7、(@Counter<@OriginalSize/16)AND(@Counter<50000))?BEGIN--update?INSERTDummyTransVALUES('FillLog')?DELETEDummyTrans?SELECT@Counter=@Counter+1?END?EXEC(@TruncLog)?END?SELECT'FinalSizeof'+db_name()+'LOGis'+?CONVERT(VARCHAR(30),size)+'8Kpagesor'+?CONVERT(VARCHAR(30),(size
8、*8/1024))+'MB'?FROMsysfiles?WHEREname=@LogicalFileName?DROPTABLEDummyTrans?SETNOCOUNTOFF?方法四:刪除日志文件。?此方法有一定的風險性,因為sqlserver的日志文件不是即時寫入數(shù)據(jù)庫主