星期三, 9月 04, 2019

【SQL Server教學】如何壓縮SQL Server交易記錄檔

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)

▼作業參考


👉TakuiqBlog

👉dotblogsBlog

👉德瑞克Blog1

👉德瑞克Blog2

▼延伸閱讀


👉 不能執行 SQL Server 2014 Configuration Manager 解決方式

👉 如何在 Oracle 的SQLPlus 中執行 SQL script檔?

👉 使用「dsquery Command」來查詢及匯出 AD使用者帳號

沒有留言:

張貼留言