SQL Server使用一段時間後,若未正常處理交易記錄檔(UserDB_log.ldf),通常之後可能會發生「資料庫記錄檔太大」 ,有時導致空間不足,甚至系統當機。本篇記錄一下處理流程僅供參考。
整個流程步驟如下:
- Step1.將資料庫復原模式切換為【簡單】模式。
- Step2.進行記錄檔壓縮作業。
- Step3.將資料庫復原模式切換回【完整】模式。
處理方式有二種:
方式一、使用Transact-SQL
USE UserDB;
GO
-- changing the database recovery model to simple.
ALTER DATABASE UserDB
SET RECOVERY SIMPLE;
GO
-- Shrink UserDB_log file to 20 MB.
DBCC SHRINKFILE (UserDB_log, 20);
GO
-- changing the database recovery model to FULL.
ALTER DATABASE UserDB
SET RECOVERY FULL;
GO
方式二、使用SSMS
下圖可看到log檔已成長至>20G
選擇資料庫>>右鍵>>屬性
選擇 "選項" 將資料庫復原模式切換為簡單模式
進行記錄檔壓縮作業
選擇資料庫>>右鍵 >>工作 >>壓縮 >>檔案
將檔案類型切換為>>記錄檔
選擇 >>釋放未使用的空間之前,先重新組織頁面 >>輸入壓縮後檔案大小;此處選 20MB
將資料庫復原模式切換回完整模式
確認檔案已壓縮為 20M
👉影片教學>https://itorz324.blogspot.com/2019/09/how-to-shrink-transaction-log-file-for.html
▼語法參考:
👉微軟SQL Server 2017 FILE_IDEX (Transact-SQL)
👉微軟文件庫1 sys.database_files (Transact-SQL)
👉微軟文件庫2 DBCC SHRINKFILE (Transact-SQL)
▼延伸閱讀:
👉
不能執行 SQL Server 2014 Configuration Manager 解決方式
沒有留言:
張貼留言