透過bat檔來執行交易紀錄檔壓縮

如何透過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上去,

(↑紅框處)

接著執行囉,

(↑執行前空間)​

(↑執行後空間)

成功!