2008年7月26日 星期六

重整SQL Log的Command


以下是重整SQL交易紀錄檔的Command

可有效壓縮交易紀錄檔的容量
跟大家分享

1.截斷交易記錄檔
   BACKUP LOG '資料庫名稱' WITH TRUNCATE_ONLY

2.顯示資料庫檔案,找出交易記錄檔的邏輯檔名

   EXEC sp_helpdb '資料庫名稱'

3.壓縮交易記錄檔
   DBCC SHRINKFILE('ldf的檔案名稱',2)-2的意思為2MB



範例:

以下就是可以將SmartIT資料庫的交易記錄檔縮小為2MB

BACKUP LOG SmartIT WITH TRUNCATE_ONLY
exec sp_helpdb SmartIT
DBCC SHRINKFILE('SmartIT_Log',2)  --SmartIT_Log 為交易記錄檔名稱,此Command執行後,只會剩下2MB

另一個強制清除交易紀錄檔的設定

use DB_Name
Backup Log DB_Name with TRUNCATE_ONLY
dbcc shrinkfile (DB_Name_log , truncateonly)
說明:
執行Backup Log with Truncate_Only 其用法是備份資料庫的Log檔,由於我們在上述語法中沒有指定備份的裝置為何,Sql Server即會認
為此動作為單純要把已交易完成的Log資料清空(已交易完成的資料所指即為已commit的資料),而Truncate_Only的選項則是告訴Sql Server
目的在清空Log之空間,至於清出的空間則由Sql Server管理,不還給OS
Backup Log完成後,要再執行DBCC SHRINKFILE ,,{NOTRUNCATE | TRUNCATEONLY }
其作為為將資料的空間作重整及壓縮,類似硬碟重組的功能,FileName為指定要壓縮的資料檔名(Enterprise選擇資料庫按右鍵選內容,選交易紀錄檔的Tag即可看
到檔案名稱)TargetSize指的是要將資料壓縮至多少MB(假設檔案有10MBTargetSize指定8MB,則原檔案最後2MB的資料會被搬移至前面的8MB存放,
而至少空出2MB的空間)NOTRUNCATE指的是空出來的空間供Sql Server使用不還給OSTRUNCATEONLY就是空出的空間還給OS
 


0 意見:

張貼留言

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Web Hosting Bluehost