以下是重整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 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(假設檔案有10MB,TargetSize指定8MB,則原檔案最後2MB的資料會被搬移至前面的8MB存放,
而至少空出2MB的空間)。NOTRUNCATE指的是空出來的空間供Sql Server使用不還給OS,TRUNCATEONLY就是空出的空間還給OS。
0 意見:
張貼留言