2015年11月23日 星期一

SQL交易記錄檔壓縮(SQL2012版本適用)

在今年3月有記錄一篇交易記錄檔的壓縮:http://ericitworld.blogspot.tw/2015/03/sql.html
今天因為公司的PLM系統異常發現是交易記錄檔滿了,所以準備再做壓縮時發現語法沒用,後來到TechNET查了一下資料,好像跟版本有關,所以再記錄一下SQL2012的做法:

A.將資料檔案壓縮為指定的目標大小
下列範例會將 ABC 使用者資料庫中名為 ABCFile 之資料檔案大小壓縮成 10 MB。 
USE ABC;
GO
DBCC SHRINKFILE (ABCFile, 7);
GO

B.將記錄檔壓縮為指定的目標大小
下列範例會將 ABC 資料庫中的記錄檔壓縮成 1 MB。
若要讓 DBCC SHRINKFILE 命令可以壓縮檔案,必須先將資料庫復原模式設定為 SIMPLE 以截斷檔案。
USE ABC;
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE ABC SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (ABC_Log, 1);
GO
-- Reset the database recovery model.
ALTER DATABASE ABC SET RECOVERY FULL;
GO


參考資料
1、DBCC SHRINKFILE (Transact-SQL)---還蠻詳細的說明完整步驟
https://technet.microsoft.com/zh-tw/library/ms189493.aspx
2、縮小壓縮交易記錄檔 (Shrink Transaction Log)以使用SQLServer2008/2005 SSMS管理工具為例
http://sharedderrick.blogspot.tw/2009/06/shrink-transaction-log-sql-server.html

沒有留言:

張貼留言