Tôi có một cơ sở dữ liệu có tệp dữ liệu 350 MB (.mdf) và tệp nhật ký 4,9 GB (.ldf). Mô hình phục hồi được đặt thành FULL
.
Khi tôi cố gắng thu nhỏ tệp nhật ký, nó không co lại.
Tôi biết thu nhỏ một cơ sở dữ liệu là không tốt và nó không nên được thực hiện. Nhưng tôi vẫn đang cố gắng làm điều đó để thu nhỏ tệp nhật ký.
Khi tôi chạy
DBCC SQLPerf(logspace)
Tôi thấy rằng kích thước nhật ký là 4932 MB và không gian nhật ký được sử dụng là 98,76% !
Sau đó, tôi đã thử lệnh này
USE <databasename>;
DBCC loginfo;
Bây giờ hầu như tất cả các VLF là "trạng thái 2" có nghĩa là tất cả đang được sử dụng.
Tôi đã cố gắng sao lưu nhật ký và sau đó thu nhỏ tệp nhật ký. Thu nhỏ không làm giảm kích thước.
Tôi đã thay đổi mô hình khôi phục thành SIMPLE
và thử thu nhỏ lại, nhưng điều này cũng không giúp được gì.
Tôi đã kiểm tra các giao dịch mở
DBCC opentran (database);
và thấy rằng không có giao dịch nào được mở bây giờ.
Điều gì ngăn tôi thu nhỏ tệp nhật ký? Làm sao tôi có thể giải quyết việc này?
log_reuse_wait_desc
đã choACTIVE_TRANSACTION
. Ngay sau khi giao dịch hoàn thành, co lại hoạt động tốt.