SQL2008如何清空壓縮數據庫日志


SQL2008如何清空壓縮數據庫日志

 

編寫人:左丘文

 

2015-4-10

近期在給一系統初始化資料時,不斷的導入導出,因此一不小心,就將數據的SQLsql2008R2)的是日志檔弄得比數據庫還大,給系統部署帶來麻煩。因此想辦法能否快速的將日志文件縮小到令人滿意的504K

今天在這里,我想與大家一起分享一下SQL2008中如何清空日志文檔,在此做個小結,以供參考。有興趣的同學,可以一同探討與學習一下,否則就略過吧。

 

1.         采用我之前在SQL2005中的方法,發現已不能正常運行:

--sql 2005

1  DUMP  TRANSACTION ECM  WITH  NO_LOG
2  BACKUP  LOG ECM  WITH NO_LOG
3  DBCC SHRINKDATABASE(ECM)

2.         由於SQL2008對文件和日志管理進行了優化,所以以下語句在SQL2005中可以運行但在SQL2008中已經被取消:

方法一:

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

 1  -- sql 2008
 2   
 3      USE  [ master ]
 4      GO
 5      ALTER  DATABASE ECM  SET RECOVERY SIMPLE  WITH NO_WAIT
 6      GO
 7      ALTER  DATABASE ECM  SET RECOVERY SIMPLE    -- 簡單模式
 8       GO
 9      USE ECM
10      GO
11  DBCC SHRINKFILE (N ' SCS_log ' ,  11, TRUNCATEONLY)

--這里要留意,要使用數據庫邏輯名

 

     1 GO

 2      USE  [ master ]
 3      GO
 4  
 5      ALTER  DATABASE ECM  SET RECOVERY  FULL  WITH NO_WAIT
 6  
 7      GO
 8  
 9      ALTER  DATABASE ECM  SET RECOVERY  FULL   -- 還原為完全模式
10        GO

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

即可完成。

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

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

方法二:

最簡單的一種方法是:
分離數據庫
剪切(注意是剪切,不是刪除)*.ldf到其他目錄
附加數據庫,選中*.mdf文件,附加時新建一個日志文件
確認沒有問題后,把日志文件刪除。

如碰到無法分離,請先停掉服務再進行。

 

 

3、有關更多的技術分享,大家可以加入我們的技術群。

 

歡迎加入技術分享群:238916811

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM