Tôi là một phần của một DBA mới và tôi đang quản lý một phiên bản SQL Server 2012 có số lượng hoạt động khá lớn. Tôi đang chạy ở chế độ Full Recovery vì chúng tôi cần khôi phục theo thời gian.
Ngay bây giờ, tôi đang sao lưu toàn bộ cơ sở dữ liệu và nhật ký mỗi ngày vào lúc 5 giờ sáng. Một số tệp nhật ký đã tăng lên tới 300gb và thậm chí sau khi sao lưu, chúng không giảm kích thước. Tôi có thể khiến chúng giảm kích thước bằng cách chạy một cái gì đó tương tự:
BACKUP LOG db1 TO DISK = '\\server\share\db1_log1.trn';
DBCC ShrinkFile([db1_log], 0);
BACKUP LOG db1 TO DISK = '\\server\share\db1_log2.trn';
DBCC ShrinkFile([db1_log], 0);
BACKUP LOG db1 TO DISK = '\\server\share\db1_log3.trn';
DBCC ShrinkFile([db1_log], 0);
Khi tôi kiểm tra LSN của các tệp sao lưu, tôi thấy một cái gì đó như:
RESTORE headeronly FROM DISK = N'\\server\share\db1_log1.trn'
FirstLSN: 15781000014686200001
SecondLSN: 15802000000665000001
RESTORE headeronly FROM DISK = N'\\server\share\db1_log2.trn'
FirstLSN: 15802000000665000001
SecondLSN: 15805000000004100001
RESTORE headeronly FROM DISK = N'\\server\share\db1_log3.trn'
FirstLSN: 15805000000004100001
SecondLSN: 15808000000004200001
Tôi không tin rằng tôi đang phá vỡ chuỗi nhật ký của mình bằng cách thu nhỏ các tệp nhật ký. Đọc về điều này, tôi tin rằng tôi đang làm tổn thương hiệu suất của mình vì những tệp nhật ký bị thu hẹp đó phải tự phát triển lại.
Câu hỏi:
- Tại sao tệp nhật ký không co lại sau khi sao lưu của tôi? Có phải vì có những giao dịch không được cam kết?
- Lúc đầu, tôi đã nghĩ rằng tôi nên thu nhỏ các tệp nhật ký sau mỗi 5:00 AM sao lưu. Sau khi đọc về việc điều đó có hại như thế nào đối với hiệu suất, bây giờ tôi tin rằng tôi cần phải sao lưu nhật ký thường xuyên mỗi vài giờ trong ngày. Đúng không?
- Sao lưu toàn bộ cơ sở dữ liệu / nhật ký bình thường của tôi xảy ra mỗi ngày vào lúc 5:00 sáng và đôi khi mất 3 giờ. Nếu tôi lên lịch sao lưu nhật ký xảy ra mỗi giờ, điều gì sẽ xảy ra khi sao lưu nhật ký va chạm với sao lưu 5:00 SA?