如何透過bat檔案,來執行資料庫中交易紀錄檔壓縮?
最近發現公司的備份軟體,
只能截斷交易紀錄檔,
而無法壓縮交易紀錄檔所佔據的空間,
雖然說有截斷是還好,
但有時候空間就佔那邊,
說真的也是會讓人覺得困擾。
不過備份軟體之中,
有可以輸入後處理指令,

(↑紅框為後處理執行指令輸入的地方)
根據廠商的解答,
後處理執行指令可以輸入執行bat檔,
好吧,
如果可以用bat檔的話,
還可以透過sqlcmd來執行.sql檔來進行壓縮囉。
參考以下文章:
https://fannys23.pixnet.net/blog/post/29336021
https://dotblogs.com.tw/stanley14/2016/02/25/222948
https://blog.xuite.net/f8789/DCLoveEP/42308215-SQL+-+%E4%BD%BF%E7%94%A8+SQLCMD
1. sql檔製作
.sql檔之中當然是寫LDF壓縮的T-SQL囉,
T-SQL語法參考:
ALTER DATABASE 資料庫名稱 SET RECOVERY simple
use 資料庫名稱
go
dbcc shrinkfile(交易紀錄檔邏輯名稱,2)
ALTER DATABASE 資料庫名稱 SET RECOVERY FULL
2. sqlcmd測試
透過cmd去執行sqlcmd

(↑透過cmd輸入指令sqlcmd進入)
不過sqlcmd裡面有很多的指令跟用法,
有機會再介紹一下其他的一些基本的用法與指令囉,
這一次會用到"-i"這個指令,
語法如下:
sqlcmd -U 帳號 -P 密碼 -i ".sql檔位置"
※
-U:登入SQL的帳號,
-P:登入SQL的密碼,
-i:匯入到資料庫中
另外要注意的一點,
登入的帳號好像僅限於SQL Server認證,
網域帳號貌似不行的樣子。
3. bat檔製作
sqlcmd確定可以使用後,
接著製作bat檔案。

(↑製作出來的結果大概是這樣,相當的簡單)
4. 測試階段
都好了之後,
開始進行測試囉,
將要執行的bat檔位置Key上去,

(↑紅框處)
接著執行囉,

(↑執行前空間)

(↑執行後空間)
成功!