摘要:[SQL SERVER] 實戰紀錄 無法壓縮交易紀錄檔 (Unable to shrink transaction log)
今日使用者問我,為何他的log檔無法shrink,請我協助幫忙
他的log檔已經把硬碟空間吃光了,影響到整個instance的運作
以下是解決步驟參考
1. 先檢視交易紀錄無法reuse的原因
select log_reuse_wait_desc from sys.databases
今日的案例為顯示 Replication,也就是說交易紀錄檔上被標記為複寫,所以這些交易紀錄等待被傳送至distribution,所以不會被truncate
一般來說,Log Reader Agent會去交易記錄檔中抓取被標記為複寫的資料傳送到distribution後,把標記移除,就能被reuse了
但是不知道什麼原因,一直沒有把標記移除,而複寫的狀態也無異常
2. 下面提供兩種解決複寫狀態無法shrink的方法
- EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1;
- EXEC sp_replicationdboption @dbname='',@optionname='publish',@value='false';
移除publish後,shrink log,再重建