Cách giảm dung lượng file transaction log trong SQL Server

Kiến trúc file CSDL SQL

Khi tạo một CSDL trong SQL Server, tự động sẽ sinh ra hai tệp là tệp đuôi .MDF.LDF
Thí dụ mình tạo một CSDL tên là Demo thì sẽ sinh ra: Demo.mdf và Demo_log.ldf


Khi để chế độ Recovery Model mặc định là Full hoặc Bulk-logged thì sau một thời gian sử dụng, dung lượng file log (.ldf) sẽ phình lên rất nhiều, có thể dung lượng sẽ file log sẽ gấp nhiều lần file data. Bạn có thể chuột phải vào CSDL và chọn properties để xem


Với dung lượng file log lớn như thế này vừa tốn dung lượng ổ cứng HDD, vừa làm chậm thao tác trên CSDL đó. Vì vậy chúng ta phải giảm dung lượng file log đi là điều tất yếu.

Cách giảm dung lượng file log
Cách 1. Sử dụng SQL management tool để xóa log




Cách 2. Xóa log bằng cách sử dụng câu lệnh SHRINKFILE
ALTER DATABASE [mydatabase] SET RECOVERY SIMPLE 
DBCC SHRINKFILE(<log_file_name_Log>)
ALTER DATABASE [mydatabase] SET RECOVERY FULL
Thứ tự thực hiện câu lệnh trên như sau:

  • B1. Chuyển CSDL về simple model, thì việc xóa log mới có hiệu quả.
  • B2. Chạy lệnh xóa log file
  • B3. Chuyển về Recovery Full Model để CSDL có thể thực hiện log các trạng thái


KẾT QUẢ
Sau khi thực hiện một trong hai cách trên thì dung lượng của file log của mình giảm xuống đang ngạc nhiên




PS: Các bạn nếu thấy hay thì share giúp nhé hoặc để lại comment.

Like