Kết hợp và trộn
Sao lưu nhật ký giao dịch không giống như cắt bớt tệp nhật ký giao dịch và cắt bớt tệp nhật ký giao dịch không giống như thu hẹp tệp nhật ký giao dịch. Ồ vâng, và sao lưu tệp nhật ký giao dịch không phải kích hoạt cắt ngắn. Tùy thuộc vào tải hiện tại, công cụ cơ sở dữ liệu có thể quyết định đặt điểm kiểm tra, nhưng phải chờ một chút với việc cắt ngắn.
Giải thích
Tệp nhật ký giao dịch là nơi công cụ cơ sở dữ liệu lưu trữ các sửa đổi được thực hiện đối với dữ liệu trong cơ sở dữ liệu, bất kể cơ sở dữ liệu nằm trong mô hình khôi phục SIMPLE hoặc trong mô hình khôi phục FULL. (Quan trọng)
Bây giờ tệp nhật ký giao dịch của cơ sở dữ liệu không chỉ là một bộ lưu trữ liên tục, mà là một tập hợp các tệp nhật ký ảo (VLF) được tạo theo thứ tự tuần tự bên trong tệp Nhật ký giao dịch (TLog). Kích thước của các VLF thay đổi tùy thuộc vào phiên bản SQL Server nào bạn đang sử dụng và cũng tùy thuộc vào kích thước ban đầu bạn đã chọn trong khi tạo tệp TLog và kích thước bạn đã chọn (nếu có) cho cài đặt tăng trưởng tự động của Tập tin TLog.
Tham khảo:
- Thay đổi quan trọng đối với thuật toán tạo VLF trong SQL Server 2014 (SQLSkills.com)
- Số thứ tự VLF ban đầu và kích thước tệp nhật ký mặc định (SQLSkills.com)
- Bên trong Công cụ lưu trữ: Thông tin thêm về tính chất vòng tròn của nhật ký
(SQLSkills. com)
... và có thể theo thứ tự ngược lại
Khi dữ liệu được sửa đổi trong cơ sở dữ liệu, Cơ sở dữ liệu sẽ ghi các thay đổi này vào TLog của cơ sở dữ liệu tương ứng để duy trì tính nhất quán giao dịch. Điều này cũng được gọi là ACID - Nguyên tử, Tính nhất quán, Cách ly, Độ bền . Các chuyển đổi thực tế của những thay đổi này được lưu trữ trong các VLF của TLog (tệp). Khi một VLF đầy, các giao dịch mới nhất sẽ được lưu trữ trong VLF có sẵn tiếp theo theo thứ tự.
Ngoại lệ
Tuy nhiên, nếu kết thúc tệp TLog, các sửa đổi sẽ được lưu trữ trong VLF đầu tiên ở đầu tệp TLog. (được giải thích trong Inside Engine Storage: Thông tin thêm về tính chất vòng tròn của nhật ký )
Khi không có các VLF khả dụng để lưu trữ các giao dịch mới và nếu cài đặt tăng trưởng tự động được định cấu hình, Công cụ cơ sở dữ liệu sẽ phát triển tệp TLog theo số lượng được xác định và tạo các VLF bổ sung tùy thuộc vào kích thước được xác định trong cài đặt tăng trưởng tự động và công thức giải thích trong Thay đổi quan trọng đối với thuật toán tạo VLF trong SQL Server 2014 . Các giao dịch tiếp theo có thể được lưu trữ trong VLF tiếp theo bên trong tệp TLog.
Sao lưu tệp TLog
Khi bạn kích hoạt bản sao lưu của tệp TLog, tất cả những gì bạn đang làm là báo cho công cụ cơ sở dữ liệu
- hãy xem tập tin TLog
- xác định thời điểm sao lưu nhật ký giao dịch cuối cùng xảy ra (LSN: Số thứ tự nhật ký; để nghiên cứu thêm)
- đặt Điểm kiểm tra trong tệp TLog ( Điểm kiểm tra cơ sở dữ liệu (Máy chủ SQL) )
- lưu trữ một bản sao lưu của tệp TLog trên đĩa / băng trong khi theo dõi LSN trước đó và LSN được cam kết cuối cùng ngay trước khi kết thúc sao lưu
- chuyển tất cả các sửa đổi vào "cơ sở dữ liệu"
- đánh dấu các VLF là có thể tái sử dụng
Cho đến nay, không có khoảng trống nào được phát hành bên trong tệp TLog để Cơ sở dữ liệu sử dụng lại ...
Tự động cắt bớt tệp TLog
... nhưng nếu Công cụ cơ sở dữ liệu có một số chu kỳ dự phòng và không phải chịu áp lực quá lớn, đôi khi nó sẽ xem xét tệp TLog, hãy chú ý Điểm kiểm tra và giải phóng các VLF để sử dụng lại. Không gian bên trong tệp TLog vẫn được sử dụng bởi các VLF (cùng kích thước, cùng vị trí) nhưng chúng được sử dụng lại miễn phí.
Điều này được ghi lại trong Cắt ngắn Nhật ký giao dịch :
Ngoại trừ khi bị trì hoãn vì một số lý do, việc cắt bớt nhật ký xảy ra tự động như sau: - Theo mô hình khôi phục đơn giản, sau một điểm kiểm tra.
- Trong mô hình khôi phục đầy đủ hoặc mô hình khôi phục được ghi nhật ký hàng loạt, sau khi sao lưu nhật ký, nếu một điểm kiểm tra đã xảy ra kể từ lần sao lưu trước. Để biết thêm thông tin, hãy xem "Cắt ngắn nhật ký trong các mô hình khôi phục được đăng nhập đầy đủ và hàng loạt", sau đó trong chủ đề này.
Có một số trường hợp khi điều này không xảy ra:
Mặc dù tự động, việc cắt bớt log có thể bị trì hoãn bởi nhiều yếu tố. Để biết thông tin về những gì có thể trì hoãn cắt ngắn nhật ký, hãy xem Các yếu tố có thể trì hoãn cắt ngắn nhật ký .
Hình dung cắt ngắn đăng nhập
Việc cắt bớt nhật ký có thể được quan sát khi bạn truy vấn kích thước TLog bằng cách sử dụng các câu lệnh SQL hoặc báo cáo Không gian cơ sở dữ liệu trong giao diện người dùng SSMS. Bạn có thể quan sát rằng không gian được sử dụng bên trong tệp TLog có thể chỉ bằng 1% kích thước tệp TLog có sẵn.
Thu nhỏ hoặc không thu nhỏ
Khuyến cáo chung là không thu nhỏ tệp TLog, vì nó đã phát triển vì một lý do nhất định và có thể sẽ phát triển trở lại với kích thước như trước đây. Nhưng đó là một câu chuyện cho một bài viết khác. Có một số lý do chính đáng, đó là khi bạn đang tạo lại kích thước của các VLF bên trong tệp TLog của mình.
Trả lời câu hỏi của bạn
Nội tuyến ngay dưới các giả định và câu hỏi của bạn
Hiểu biết của tôi là sao lưu cơ sở dữ liệu:
- Cắt bớt nhật ký giao dịch và
Đây là một giả định sai. Sao lưu cơ sở dữ liệu của bạn (ĐẦY ĐỦ, KHÁC BIỆT) không làm gì với các tệp TLog. Một bản sao lưu FULL sẽ tạo một trạng thái nhất quán cho cơ sở dữ liệu của bạn cùng với các giao dịch đã cam kết tạo thành tệp TLog. Một bản sao lưu DIFF sẽ tạo ra một trạng thái nhất quán của tất cả các bản sao lưu TLog trong quá khứ kể từ lần sao lưu FULL cuối cùng của cơ sở dữ liệu của bạn.
Tuy nhiên, Sao lưu TLOG sẽ tạo bản sao lưu các giao dịch đã cam kết từ tệp TLog, đặt điểm kiểm tra và có thể (khi không tải nặng) giải phóng các VLF để sử dụng lại.
Không, khi xem xét các bản sao lưu FULL và DIFF. Không, khi xem xét các bản sao lưu TLOG, nhưng nó sẽ giải phóng các VLF bên trong tệp TLog, nếu công cụ cơ sở dữ liệu có thời gian rảnh.
Nhật ký cắt ngắn thực sự làm gì với tệp nhật ký (LDF)? Quá trình này được cho là để ngăn chặn đĩa đầy.
Cắt bớt các bản ghi cho phép các VLF được sử dụng lại. Đó là tất cả.
Quá trình này có thể có lợi ích ngăn chặn tệp TLog phát triển cài đặt tự động tăng trưởng IF đã được đặt.
Nếu không có cài đặt tăng trưởng tự động nào được đặt , vì quy trình kỹ thuật yêu cầu của bạn xác định rằng tệp TLog sẽ có kích thước cố định, thì trường hợp xấu nhất ở đây là TLog sẽ lấp đầy vì không có bản sao lưu TLog nào xảy ra và do đó không có VLF nào được giải phóng. TLog không thể phát triển và các VLF không được giải phóng để cho phép các giao dịch tiếp theo được ghi vào tệp TLog (hoặc nội bộ VLF).