Tại sao cơ sở dữ liệu mô hình trong SQL Server ở chế độ phục hồi FULL


7

Tại sao cơ sở dữ liệu Mô hình trong SQL Server ở chế độ phục hồi ĐẦY ĐỦ và các cơ sở dữ liệu hệ thống khác ở chế độ khôi phục đơn giản?


1
Không có quy tắc cứng và nhanh nào để giữ Model trong trạng thái khôi phục hoàn toàn, bạn có thể giữ mô hình trong phục hồi đơn giản. Mô hình phục hồi của cơ sở dữ liệu luôn theo RPO và RTO.
Shanky

Câu trả lời:


9

Tại sao cơ sở dữ liệu mô hình trong SQL Server ở FULLchế độ khôi phục và các cơ sở dữ liệu hệ thống khác ở SIMPLEchế độ khôi phục?

Tôi nghĩ bạn đang hỏi tại sao modelcơ sở dữ liệu khác với các cơ sở dữ liệu hệ thống khác.

Cơ sở dữ liệu người dùng mới được tạo với cùng một mô hình phục hồi như cơ sở dữ liệu mô hình. Mô hình khôi phục mặc định cho modelcơ sở dữ liệu tùy thuộc vào phiên bản SQL Server bạn đã cài đặt.

Từ việc chọn Mô hình khôi phục cho cơ sở dữ liệu :

Mô hình khôi phục đơn giản thường thích hợp cho cơ sở dữ liệu thử nghiệm hoặc phát triển. Tuy nhiên, đối với cơ sở dữ liệu sản xuất, sự lựa chọn tốt nhất thường là mô hình khôi phục đầy đủ, tùy chọn, được bổ sung bởi mô hình khôi phục được đăng nhập hàng loạt. Tuy nhiên, mô hình khôi phục đơn giản đôi khi thích hợp cho cơ sở dữ liệu sản xuất nhỏ, đặc biệt nếu nó chủ yếu hoặc hoàn toàn chỉ đọc hoặc cho kho dữ liệu.

Theo logic này, các phiên bản được nhắm mục tiêu trong môi trường thử nghiệm và phát triển (SQL Server Express và LocalDB) đặt mô hình khôi phục của modelcơ sở dữ liệu thành SIMPLE. Các phiên bản khác đặt mô hình phục hồi của modelcơ sở dữ liệu thành FULL.


5

Cơ sở dữ liệu mastermsdbcơ sở dữ liệu rất tốt để có trong chế độ đơn giản vì chúng thường không thay đổi thường xuyên đủ để đảm bảo có chúng trong mô hình khôi phục hoàn toàn.

Khôi phục masterlà một bài tập rất có ý nghĩa và khôi phục lại bản sao lưu cơ sở dữ liệu đầy đủ theo như bạn muốn. msdbchứa khá nhiều thông tin hữu ích, nhưng nói chung, sao lưu cơ sở dữ liệu thông thường là đủ.

Điều quan trọng với các cơ sở dữ liệu này là sao lưu chúng bất cứ khi nào có thay đổi quan trọng và cũng có các tập lệnh / gói triển khai để tạo lại thông tin cần thiết (đăng nhập, gói SSIS, công việc đại lý, v.v.). Bạn chắc chắn không cần chúng ở trong mô hình khôi phục hoàn toàn.

Các modelcơ sở dữ liệu, tuy nhiên, được sử dụng để tạo ra cơ sở dữ liệu người dùng mới, và đây là những thường tốt để có trong mô hình hồi phục hoàn toàn trên hộp sản xuất. Khi bạn tạo cơ sở dữ liệu, tôi chắc chắn rằng bạn đặt rõ ràng mọi tùy chọn, vì vậy mô hình cài đặt có ít quan trọng hơn, phải không? ;)


2

Tại sao mô hình cơ sở dữ liệu trong SQL Server ở chế độ phục hồi FULL?

Điều này là do mô hình hoạt động như "Mô hình" cho bất kỳ cơ sở dữ liệu mới được tạo. Vì vậy, tùy thuộc vào môi trường và yêu cầu kinh doanh của bạn, nếu cơ sở dữ liệu người dùng cần phục hồi "tại thời điểm", thì chế độ khôi phục hoàn toàn sẽ cung cấp điều đó (điều này giả định rằng bạn thường xuyên thực hiện sao lưu nhật ký giao dịch đầy đủ và giao dịch).

Nếu doanh nghiệp của bạn không yêu cầu khôi phục "tại thời điểm" thì bạn có thể thay đổi chế độ khôi phục MODEL thành đơn giản. Đảm bảo vẫn lấy các bản sao lưu đầy đủ (và kiểm tra chúng thường xuyên để xem bạn có thể khôi phục hay không).

Lưu ý rằng các cơ sở dữ liệu được khôi phục bằng phương pháp sao lưu / khôi phục hoặc phương pháp tách / đính kèm, sẽ có chế độ khôi phục ban đầu .

cơ sở dữ liệu hệ thống khác đang ở chế độ phục hồi đơn giản?

Master và tempdb luôn ở chế độ phục hồi đơn giản. Bạn không thể thay đổi chế độ phục hồi.

Đối với msdb

Nếu bạn muốn sử dụng thông tin lịch sử sao lưu và khôi phục trong msdb khi bạn khôi phục cơ sở dữ liệu người dùng, chúng tôi khuyên bạn nên sử dụng mô hình khôi phục đầy đủ cho msdb. Ngoài ra, hãy xem xét đặt nhật ký giao dịch msdb trên bộ lưu trữ chịu lỗi.

đọc thêm về: Mô hình phục hồi cho cơ sở dữ liệu hệ thống


Bạn có thể thay đổi mô hình khôi phục của cơ sở dữ liệu chủ thành đầy đủ, vui lòng sửa nó.
Shanky

2
@Shanky nó có thể được thay đổi .. nhưng vấn đề là gì? Vui lòng tham khảo liên kết mà tôi đã đề cậpFor backwards compatibility with earlier versions of Microsoft SQL Server, the recovery model of master can be set to FULL or BULK_LOGGED. However, BACKUP LOG is not supported for master. Therefore, even if the recovery model of master is changed to full or bulk-logged, the database continues to operate as if it were using the simple recovery model.
Kin Shah

Ngoài ra, downvoters .. Tôi muốn biết lý do cho downvote .. để tôi có thể cải thiện câu trả lời của mình.
Kin Shah

3
về mặt kỹ thuật, những gì bạn vừa đăng trong bình luận ở trên có thể được thêm vào câu trả lời của bạn, vì bây giờ có vẻ như cơ sở dữ liệu chủ "không thể" trong phục hồi đơn giản mà bạn nhấn mạnh luôn luôn bạn cũng viết bạn không thể thay đổi mô hình khôi phục
Shanky

1

Mô hình phục hồi cho cơ sở dữ liệu mới được lấy từ cơ sở dữ liệu Mô hình. Sau khi tạo cơ sở dữ liệu mới, bạn có thể thay đổi mô hình khôi phục thành đơn giản hoặc Đăng nhập hàng loạt.


Tempdb không lấy mô hình khôi phục của nó từ cơ sở dữ liệu mô hình vì nó luôn phục hồi đơn giản nhưng việc đăng nhập lại là tối thiểu
Shanky

3
@shanky bạn là những thuật ngữ chọn nit ở đây không có mục đích mà tôi có thể thấy. Câu trả lời này nêu rõ "cơ sở dữ liệu mới", tôi không thấy bất kỳ tham chiếu nào đến tempdb hoặc cơ sở dữ liệu hệ thống khác.

@shawn Tôi đã không bỏ phiếu cho câu trả lời Tôi cũng không chọn nit. Tôi chỉ muốn thêm sự thật đó từ phía tôi một bình luận bình thường Tôi đồng ý có thể không liên quan trực tiếp
Shanky
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.