Chúng tôi thiết lập cơ sở dữ liệu phản chiếu vào cuối tuần và quên bật lại công việc sao lưu nhật ký giao dịch. Khi tôi đến vào sáng nay, nhật ký giao dịch đã tăng lên 58GB và chiếm phần lớn dung lượng ổ đĩa.
Tôi đã thực hiện sao lưu thủ công nhật ký giao dịch vào đĩa để cơ sở dữ liệu chạy lại, tuy nhiên việc chạy DBCC SHRINKFILE dường như không làm giảm kích thước vật lý của tệp nhật ký giao dịch.
DBCC SHRINKFILE (N'MyDatabaseName_Log', 1000)
Nếu tôi kiểm tra việc sử dụng nhật ký bằng cách sử dụng
DBCC SQLPERF(LOGSPACE)
Tôi có thể thấy rằng chỉ có 22% nhật ký hiện tại đang được sử dụng
Tên cơ sở dữ liệu Kích thước nhật ký (MB) Không gian nhật ký được sử dụng (%) MyDatabaseName 55440.87 22.38189 0
Nếu tôi kiểm tra log_reuse_wait_desc
trong sys.databses, bản ghi duy nhất tôi thấy là DATABASE_MIRRORING
, vì vậy tôi đoán rằng gương đang đóng một vai trò tại sao kích thước vật lý của tệp nhật ký sẽ không co lại?
SELECT log_reuse_wait_desc
FROM sys.databases
WHERE name = N'MyDatabaseName';
Tôi cũng nhận thấy trạng thái phản chiếu cơ sở dữ liệu chính của mình bị Đình chỉ và cố gắng Tiếp tục lại ngay lập tức với lỗi sau:
Đối tác phản chiếu từ xa cho cơ sở dữ liệu 'MyDatabaseName', đã gặp lỗi 5149, trạng thái 1, mức độ nghiêm trọng 25. Phản chiếu cơ sở dữ liệu đã bị treo. Giải quyết lỗi trên máy chủ từ xa và tiếp tục phản chiếu hoặc xóa phản chiếu và thiết lập lại phiên bản máy chủ nhân bản.
Nhật ký lỗi trên máy chủ nhân bản cũng chứa lỗi này, nhưng cũng có lỗi về ổ đĩa tệp nhật ký đã đầy
MODIFY FILE gặp lỗi hệ điều hành 112 (Không có đủ dung lượng trên đĩa.) Trong khi cố gắng mở rộng tệp vật lý.
và
F: \ Databaselogs \ MyDatabaseName_1.ldf: Lỗi hệ điều hành 112 (Không có đủ dung lượng trên đĩa.) Đã gặp phải.
Máy chủ chính có 60GB trên ổ đĩa tệp nhật ký (có các cơ sở dữ liệu khác được lưu trữ ở đây), trong khi máy chủ được nhân đôi chỉ có 45GB.
Sao lưu tệp nhật ký làm cho cơ sở dữ liệu có thể sử dụng lại được, tuy nhiên tôi cũng muốn giảm kích thước của tệp nhật ký vật lý trên đĩa và lấy lại phản chiếu.
Làm cách nào tôi có thể thu nhỏ kích thước của tệp nhật ký giao dịch vật lý của mình mà không ảnh hưởng đến phản chiếu hoặc chuỗi sao lưu?
Tôi đang chạy SQL Server 2005