天天看點

清除SQL日志

(SQL2000)

DUMP TRANSACTION DNName WITH NO_LOG

GO

backup log DNName with  NO_LOG

GO

DBCC SHRINKDATABASE(DNName)

GO

(SQL2005)

BackupLog DNName with no_log

Go

dumptransaction DNName with no_log

go

USE DNName 

DBCC SHRINKFILE (2)

Go

--------------------------------------------------------------

(SQL2008):

在SQL2008中清除日志就必須在簡單模式下進行,等清除動作完畢再調回到完全模式。

方案一:完全指令模式

USE[master]

    GO

    ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT

    GO

    ALTER DATABASE DNName SET RECOVERY SIMPLE   --簡單模式

    GO

    USE DNName 

    GO

    DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)

    GO

    USE[master]

    GO

    ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT

    GO

    ALTER DATABASE DNName SET RECOVERY FULL  --還原為完全模式

    GO

方案二:部分指令模式 + 任務-收縮-檔案(單個資料庫)

ALTER DATABASE DNName SET RECOVERY SIMPLE   --簡單模式

GO

  右鍵-任務-收縮-檔案-确定 下來資料庫的日志隻保留了1M

清除SQL日志

ALTER DATABASE DNName SET RECOVERY FULL  --還原為完全模式

GO

優點:此清除日志所運作消耗的時間短,90GB的日志在分鐘左右即可清除完畢,做完之後做個完全備份在分鐘内

即可完成。

缺點: 不過此動作最好不要經常使用,因為它的運作會帶來系統碎片。普通狀态下LOG和DIFF的備份即可截斷日志。

此語句使用的恰當環境:當系統的日志檔案異常增大或者備份LOG時間太長可能影響生産的情況下使用。

sql