Tôi hiện đang phải đối phó với nhật ký giao dịch SQL Server đã vượt khỏi tầm kiểm soát. Tuyên bố miễn trừ trách nhiệm: Tôi không phải là một dba và đây không phải là lĩnh vực chuyên môn của tôi vì vậy hãy đồng ý với tôi.
Hiện tại tôi có tệp nhật ký giao dịch 115GB cho cơ sở dữ liệu 500 MB (rõ ràng) được quản lý kém trong một thời gian để nó có được trạng thái này.
Ưu tiên hàng đầu là lấy lại không gian trên đĩa được lấy bởi tập tin này trước khi chúng tôi hết! Tôi đã được thông báo rằng việc tăng kích thước của ổ đĩa không phải là một lựa chọn, thậm chí là tạm thời và dựa trên sự tăng trưởng trong quá khứ, chúng ta cần phải hành động khá sớm.
Theo tôi hiểu, cách tiếp cận tốt nhất là giữ db ở chế độ khôi phục hoàn toàn nhưng thực hiện sao lưu thường xuyên tệp nhật ký, theo dõi điều này trong một khoảng thời gian và điều chỉnh kích thước ban đầu và gia tăng cho phù hợp. Tất cả ổn.
Thấy rằng chúng tôi thường xuyên sao lưu db đầy đủ vào nửa đêm, tôi có thể tạm thời đặt cơ sở dữ liệu vào Chế độ khôi phục đơn giản (sau khi một trong các bản sao lưu này chạy), thu nhỏ tệp nhật ký để lấy lại (hầu như tất cả) không gian và sau đó đưa nó trở lại Full Recovery với chiến lược sao lưu được đề cập ở trên?
Tôi nghĩ rằng nếu có gì đó xảy ra trong khoảng thời gian này, chúng ta có thể khôi phục lại toàn bộ bản sao lưu mà không cần sử dụng nhật ký.
CẬP NHẬT
Một vài chi tiết bổ sung để trả lời một số câu trả lời và bình luận:
Chúng tôi muốn giữ lại khả năng thực hiện khôi phục tại thời điểm để cơ sở dữ liệu vẫn ở chế độ khôi phục hoàn toàn.
Lý do mà tệp t-log đã phát triển quá lớn là vì nó chưa bao giờ được sao lưu . Được xác minh là log_Vuse_wait_desc trả về 'LOG_BACKUP'.