Sao lưu giao dịch SQL Server vs Nhật ký


12

Tôi đã thừa hưởng cơ sở dữ liệu SQL Server 2008 dành cho doanh nghiệp có quy mô vừa phải và đang cố gắng xoay quanh kế hoạch sao lưu. (Tôi là nhà phát triển, không phải DBA.)

Cách hệ thống của chúng tôi được thiết lập ngay bây giờ có hai hệ thống dự phòng:

  1. Sao lưu đầy đủ hàng tuần ( .bak) và .trnsao lưu nhật ký giao dịch hàng giờ ( ). Chúng tôi giữ một vài bộ sao lưu này và chúng thường được vận chuyển ngoài cơ sở.
  2. Nhật ký máy chủ SQL ( .ldf), với mô hình khôi phục được đặt thành Full. Tệp này nằm trên một ổ đĩa riêng biệt từ .mdftệp chính , nhưng nếu không thì không được sao lưu.

Trong trường hợp khôi phục khẩn cấp (hoặc khi khôi phục bản sao lưu cho máy dev), quy trình của tôi là sử dụng các .baktệp và sau đó áp dụng các tệp .trn. Chúng tôi có một kịch bản làm cho thủ tục này tương đối đơn giản.

Những câu hỏi của tôi:

  1. Có thể khôi phục cơ sở dữ liệu từ .ldftập tin? Nó thậm chí để làm gì?
  2. Có cần thiết phải có cả hai bản ghi giao dịch này không?
  3. Có quan trọng để sao lưu các .ldftập tin?

Câu trả lời:


16

Không, không thể khôi phục cơ sở dữ liệu từ tệp ldf. Tệp ldf sẽ được khôi phục cùng với các tệp mdf.

Không, nó không dư thừa vì chúng có hai mục đích khác nhau.

Điều quan trọng là phải sao lưu đầy đủ và sao lưu nhật ký giao dịch. Chỉ có một bản sao của tệp ldf không giúp bạn khôi phục cơ sở dữ liệu.

Đối với những gì một tập tin ldf là dành cho, ldf là nhật ký giao dịch. Hãy nghĩ về nó như một bộ đệm tròn ghi lại các thay đổi vào cơ sở dữ liệu của bạn. Khi bạn cập nhật một hàng, thay đổi ngay lập tức được ghi vào ldf. Tại một số thời điểm trong tương lai (thường là ít hơn năm phút), dữ liệu đã sửa đổi được ghi vào tệp mdf.

Nếu máy chủ gặp sự cố hoặc bị mất điện, khi SQL khởi động, nó sẽ đọc ldf và áp dụng lại (REDO) những thay đổi đó.

Ngoài ra, nếu bạn có một giao dịch chưa được thực hiện và sự cố nghiêm trọng, tất cả các thay đổi được thực hiện bởi giao dịch đó phải được hoàn tác để làm cho cơ sở dữ liệu nhất quán. Các tập tin ldf có nhiệm vụ đó là tốt. (HOÀN TÁC)

Tôi đã đề cập ở trên rằng tập tin ldf là hình tròn. Lấy một bản sao lưu nhật ký giao dịch (.trn) sao chép một phần của tệp ldf. Sau khi tệp trn được tạo an toàn, sql có thể sử dụng lại phần đó của tệp ldf. Một loạt các bản sao lưu trn tạo ra một chuỗi cùng nhau ghi lại mọi sửa đổi được thực hiện cho cơ sở dữ liệu. Tất nhiên, nếu bạn chưa bao giờ thực hiện sao lưu nhật ký yên tĩnh, tệp ldf sẽ phát triển và tăng trưởng.

Trong trường hợp thảm họa, việc khôi phục lại bản sao lưu đầy đủ sẽ giúp bạn có một bản sao của cơ sở dữ liệu tại thời điểm sao lưu toàn bộ kết thúc. Sau đó, bạn có thể khôi phục các tệp trn theo thứ tự và đưa cơ sở dữ liệu hiện tại đến bất kỳ thời điểm nào, bao gồm đến bản sao lưu trn cuối cùng.

Tôi đang xem qua một số chi tiết quan trọng, nhưng ý chính là ldf là một tệp làm việc ghi lại các thay đổi gần đây cho cơ sở dữ liệu. Các tệp trn là bản sao của các phần của ldf được tạo theo giả định rằng bạn sẽ giữ an toàn để sql có thể sử dụng lại không gian trong ldf và nếu thảm họa xảy ra, bạn sẽ đặt chúng ở một vị trí thay thế.


2
+1 Câu trả lời rất hay. Điều duy nhất tôi muốn thêm là khi một DBA nói "Cơ sở dữ liệu", họ có nghĩa là các tệp .mdf (tệp dữ liệu) và .ldf (tệp nhật ký) được kết hợp. Hai tập tin cùng nhau tạo thành một đơn vị. Trên một số cơ sở dữ liệu, bạn thậm chí có thể thấy nhiều .mdf và / hoặc .ndfs (tệp dữ liệu thứ cấp). Các tệp này cũng được kết hợp với nhau để tạo thành một đơn vị gọi là cơ sở dữ liệu. Nếu bạn mất bất kỳ ai trong số họ, bạn đang ở trong chế độ thảm họa và phải có hành động khắc phục.
Kenneth Fisher

+1 câu trả lời hay, cũng đừng nhầm khi sao lưu 'tệp vật lý' (.mdf / .ndf / .ldfs) thực tế khi đang hoạt động trên hệ thống, ngay cả với ứng dụng bên thứ 3 như Norton trong khi MS SQL Server đang chạy như một "bản sao lưu" an toàn. Các tệp này có độ nhạy cao, do đó, các tệp sao lưu MS SQL Server thực tế phải luôn được tạo khi có thể.
Ali Razeghi

Cảm ơn, điều này rất hữu ích. Có vẻ như các gói sao lưu SQL Server thông thường của chúng tôi là đủ và không cần phải can thiệp trực tiếp vào các tệp .mdf hoặc .ldf.
Hank
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.