2022/02/12

sharepoint 2013 的 MS SQL WSS_logging 資料表超級大,把硬碟塞滿了

 我手邊還有一個使用 Sharepoint 2013 的小小專案系統,最近產生了一些問題,系統是使用 Hyper-V 虛擬主機運行的,但...系統硬碟滿了,造成運作上的問題。

仔細一查,是MS SQL 內的資料塞滿了硬碟,有個 WSS_logging 資料表超級大,竟佔了 40幾GB 的空間,原先沒想那麼多(懶惰啦),以為只是交易檔太大,花了不少時間瘦身(壓縮)交易檔,好不容易把每個資料表進行瘦身處理,才在星期一騰出了 7GB 的空間,沒想到,昨晚,星期五的晚上,心血來潮關注了一下主機,硬碟空間又被站滿了, WSS_logging 變成 50幾GB 的超級大胖子!阿好!不用睡覺了!哈哈!

這次,認真研究了,找到一篇文章,How to reduce the size of logging database and how to purge the old data from Logging Database,嗯嗯!認真的看了一下,原來  WSS_logging 是「監視」用的資料表,就是一些系統的 LOG 記錄,於是,讓我決心,乾脆把資料殺掉好了!

但,實際上~因為系統硬碟已滿,連執行 SQL Delete 指令都會產生錯誤... 這...

我實際的處理做法是:

1.參考上方文章,先進 Sharepoint 「監視」功能,把「不必要」監視的項目,先關掉... 嗯~實際上,我把所有項目關掉了,因手邊這個系統是個小系統,定期備份應該還能頂著用,而說實在我用 Sharepoint 2013 多年來,還真沒來看過「監視」功能,乾脆停了。其實,會發生 WSS_logging 資料過大的問題,應該是「監視」這邊的工作排程也有出問題,因照理來說,應該有個排程會定期清理掉 WSS_logging 的舊資料才對。算了,沒空再搞清楚了。

2.Hyper-V 虛擬主機停機!進行匯出備份。喔!這邊補充說明一下,我的 Sharepoint 和 SQL 主機是分開兩個虛擬主機的。 

3.從以前 SQL 虛擬主機的備份中,找到一個 WSS_Logging.mdf 和 WSS_Logging_log.ldf 檔案,當時這兩個檔案才共 5GB 多。再補充~Hyper-V 匯出備份的 .vhdx 檔案可以用 Windows 10 把它掛載成硬碟。我找出舊的備份檔,掛載成硬碟後,到 SQL 資料檔案的位置下,copy 出來就好。

4.重新啟動 SQL 主機,先進 SQL 維護介面,卸離 WSS_logging,要注意,要卸離資料庫,好像要沒有連線存在才行,SharePoint 原則上要先停掉,因我 Sharepoint 在另一台主機,根本還沒開機,所以沒有此問題。


5.到 SQL 資料庫檔案位置,刪除掉胖胖的 WSS_Logging.mdf 和 WSS_Logging_log.ldf,換上瘦瘦的 WSS_Logging.mdf 和 WSS_Logging_log.ldf

6.用 SQL 資料庫 附加功能,加回 WSS_Logging 資料表。


7.Sharepoint 主機開機,等... 等... 等... ,測試一下,好像沒問題,收工!

沒有留言:

張貼留言