程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server 2005/2008 收縮日志文件方法

SQL Server 2005/2008 收縮日志文件方法

編輯:關於SqlServer
 

Sql Server 的日志增長是非常可怕的,我們需要定期對其進行壓縮。不過壓縮前我們需要對數據庫做完整備份,因為完整備份也包含了事務日志備份。下面的語句建議和Sql Server的備份維護計劃一起使用。比如每周一到周六差異備份,周日完整備份結束後接著執行T-SQL語句任務即可,比如下圖。

2

下面是執行的語句,放在第二步即可。
(SQL2005)

  1. Backup Log DNName with no_log
  2. go
  3. dump transaction DNName with no_log
  4. go
  5. USE DNName
  6. DBCC SHRINKFILE (2)
  7. Go

(SQL2008):

  1. USE DNName
  2. GO
  3. ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
  4. GO
  5. ALTER DATABASE DNName SET RECOVERY SIMPLE --簡單模式
  6. GO
  7. DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)--DNName_Log為數據庫日志文件的邏輯名稱
  8. GO
  9. ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT
  10. GO
  11. ALTER DATABASE DNName SET RECOVERY FULL --還原為完全模式
  12. GO

1

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

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

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

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

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved