SQLSERVER的資料庫日誌佔用很大的空間,下面提供三種方法用於清除無用的資料庫日誌檔案方法一:1、開啟查詢分析器,輸入命令BACKUPLOGdatabase_nameWITHNO_LOG2、再開啟企業管理器--右鍵要壓縮的資料庫--所有任務--收縮資料庫--收縮檔案--選擇日誌檔案--在收縮方式裡選擇收縮至xxm,這裡會給出一個允許收縮到的最小m數,直接輸入這個數,確定就可以了。方法二:設定檢查點,自動截斷日誌 一般情況下,SQL資料庫的收縮並不能很大程度上減小資料庫大小,其主要作用是收縮日誌大小,應當定期進行此操作以免資料庫日誌過大1、設定資料庫模式為簡單模式:開啟SQL企業管理器,在控制檯根目錄中依次點開MicrosoftSQLServer-->SQLServer組-->雙擊開啟你的伺服器-->雙擊開啟資料庫目錄-->選擇你的資料庫名稱(如使用者資料庫cwbase1)-->然後點選右鍵選擇屬性-->選擇選項-->在故障還原的模式中選擇“簡單”,然後按確定儲存2、在當前資料庫上點右鍵,看所有任務中的收縮資料庫,一般裡面的預設設定不用調整,直接點確定3、收縮資料庫完成後,建議將您的資料庫屬性重新設定為標準模式,操作方法同第一點,因為日誌在一些異常情況下往往是恢復資料庫的重要依據方法三:透過SQL收縮日誌把程式碼複製到查詢分析器裡,然後修改其中的3個引數(資料庫名,日誌檔名,和目標日誌檔案的大小),執行即可SETNOCOUNTONDECLARE@LogicalFileNamesysname,@MaxMinutesINT,@NewSizeINTUSEtablename--要操作的資料庫名SELECT@LogicalFileName="tablename_log",--日誌檔名@MaxMinutes=10,--Limitontimeallowedtowraplog.@NewSize=1--你想設定的日誌檔案的大小(M)--Setup/initializeDECLARE@OriginalSizeintSELECT@OriginalSize=sizeFROMsysfilesWHEREname=@LogicalFileNameSELECT"OriginalSizeof"+db_name()+"LOGis"+CONVERT(VARCHAR(30),@OriginalSize)+"8Kpagesor"+CONVERT(VARCHAR(30),(@OriginalSize*8/1024))+"MB"FROMsysfilesWHEREname=@LogicalFileNameCREATETABLEDummyTrans(DummyColumnchar(8000)notnull)DECLARE@CounterINT,@StartTimeDATETIME,@TruncLogVARCHAR(255)SELECT@StartTime=GETDATE(),@TruncLog="BACKUPLOG"+db_name()+"WITHTRUNCATE_ONLY"DBCCSHRINKFILE(@LogicalFileName,@NewSize)EXEC(@TruncLog)--Wrapthelogifnecessary.WHILE@MaxMinutes>DATEDIFF(mi,@StartTime,GETDATE())--timehasnotexpiredAND@OriginalSize=(SELECTsizeFROMsysfilesWHEREname=@LogicalFileName)AND(@OriginalSize*8/1024)>@NewSizeBEGIN--Outerloop.SELECT@Counter=0WHILE((@Counter<@OriginalSize/16)AND(@Counter<50000))BEGIN--updateINSERTDummyTransVALUES("FillLog")DELETEDummyTransSELECT@Counter=@Counter+1ENDEXEC(@TruncLog)ENDSELECT"FinalSizeof"+db_name()+"LOGis"+CONVERT(VARCHAR(30),size)+"8Kpagesor"+CONVERT(VARCHAR(30),(size*8/1024))+"MB"FROMsysfilesWHEREname=@LogicalFileNameDROPTABLEDummyTransSETNOCOUNTOFF方法四:刪除日誌檔案。此方法有一定的風險性,因為sqlserver的日誌檔案不是即時寫入資料庫主檔案的,如處理不當,會造成資料的損失。1、操作前請斷開所有資料庫連線。2、分離資料庫分離資料庫:企業管理器->伺服器->資料庫->cwbase1->右鍵->分離資料庫分離後,cwbase1資料庫被刪除,但保留了資料檔案和日誌檔案3、刪除log物理檔案刪除LOG物理檔案,然後附加資料庫:企業管理器->伺服器->資料庫->右鍵->附加資料庫此法生成新的log,大小隻有500多k。注意:建議使用第一種方法。操作前請確保所有操作員都已經推出系統,斷開資料庫的連線。以上操作前,請務必做好資料備份!1.sqlserver2005清除日誌語句dumptransaction資料庫名稱withno_logbackuplog資料庫名稱withno_logdbccshrinkdatabase(資料庫名稱)
SQLSERVER的資料庫日誌佔用很大的空間,下面提供三種方法用於清除無用的資料庫日誌檔案方法一:1、開啟查詢分析器,輸入命令BACKUPLOGdatabase_nameWITHNO_LOG2、再開啟企業管理器--右鍵要壓縮的資料庫--所有任務--收縮資料庫--收縮檔案--選擇日誌檔案--在收縮方式裡選擇收縮至xxm,這裡會給出一個允許收縮到的最小m數,直接輸入這個數,確定就可以了。方法二:設定檢查點,自動截斷日誌 一般情況下,SQL資料庫的收縮並不能很大程度上減小資料庫大小,其主要作用是收縮日誌大小,應當定期進行此操作以免資料庫日誌過大1、設定資料庫模式為簡單模式:開啟SQL企業管理器,在控制檯根目錄中依次點開MicrosoftSQLServer-->SQLServer組-->雙擊開啟你的伺服器-->雙擊開啟資料庫目錄-->選擇你的資料庫名稱(如使用者資料庫cwbase1)-->然後點選右鍵選擇屬性-->選擇選項-->在故障還原的模式中選擇“簡單”,然後按確定儲存2、在當前資料庫上點右鍵,看所有任務中的收縮資料庫,一般裡面的預設設定不用調整,直接點確定3、收縮資料庫完成後,建議將您的資料庫屬性重新設定為標準模式,操作方法同第一點,因為日誌在一些異常情況下往往是恢復資料庫的重要依據方法三:透過SQL收縮日誌把程式碼複製到查詢分析器裡,然後修改其中的3個引數(資料庫名,日誌檔名,和目標日誌檔案的大小),執行即可SETNOCOUNTONDECLARE@LogicalFileNamesysname,@MaxMinutesINT,@NewSizeINTUSEtablename--要操作的資料庫名SELECT@LogicalFileName="tablename_log",--日誌檔名@MaxMinutes=10,--Limitontimeallowedtowraplog.@NewSize=1--你想設定的日誌檔案的大小(M)--Setup/initializeDECLARE@OriginalSizeintSELECT@OriginalSize=sizeFROMsysfilesWHEREname=@LogicalFileNameSELECT"OriginalSizeof"+db_name()+"LOGis"+CONVERT(VARCHAR(30),@OriginalSize)+"8Kpagesor"+CONVERT(VARCHAR(30),(@OriginalSize*8/1024))+"MB"FROMsysfilesWHEREname=@LogicalFileNameCREATETABLEDummyTrans(DummyColumnchar(8000)notnull)DECLARE@CounterINT,@StartTimeDATETIME,@TruncLogVARCHAR(255)SELECT@StartTime=GETDATE(),@TruncLog="BACKUPLOG"+db_name()+"WITHTRUNCATE_ONLY"DBCCSHRINKFILE(@LogicalFileName,@NewSize)EXEC(@TruncLog)--Wrapthelogifnecessary.WHILE@MaxMinutes>DATEDIFF(mi,@StartTime,GETDATE())--timehasnotexpiredAND@OriginalSize=(SELECTsizeFROMsysfilesWHEREname=@LogicalFileName)AND(@OriginalSize*8/1024)>@NewSizeBEGIN--Outerloop.SELECT@Counter=0WHILE((@Counter<@OriginalSize/16)AND(@Counter<50000))BEGIN--updateINSERTDummyTransVALUES("FillLog")DELETEDummyTransSELECT@Counter=@Counter+1ENDEXEC(@TruncLog)ENDSELECT"FinalSizeof"+db_name()+"LOGis"+CONVERT(VARCHAR(30),size)+"8Kpagesor"+CONVERT(VARCHAR(30),(size*8/1024))+"MB"FROMsysfilesWHEREname=@LogicalFileNameDROPTABLEDummyTransSETNOCOUNTOFF方法四:刪除日誌檔案。此方法有一定的風險性,因為sqlserver的日誌檔案不是即時寫入資料庫主檔案的,如處理不當,會造成資料的損失。1、操作前請斷開所有資料庫連線。2、分離資料庫分離資料庫:企業管理器->伺服器->資料庫->cwbase1->右鍵->分離資料庫分離後,cwbase1資料庫被刪除,但保留了資料檔案和日誌檔案3、刪除log物理檔案刪除LOG物理檔案,然後附加資料庫:企業管理器->伺服器->資料庫->右鍵->附加資料庫此法生成新的log,大小隻有500多k。注意:建議使用第一種方法。操作前請確保所有操作員都已經推出系統,斷開資料庫的連線。以上操作前,請務必做好資料備份!1.sqlserver2005清除日誌語句dumptransaction資料庫名稱withno_logbackuplog資料庫名稱withno_logdbccshrinkdatabase(資料庫名稱)