Kiểm tra sức khỏe cơ sở dữ liệu SQL-Server


7

Tôi là người mới với SQL Server và tôi có câu hỏi sau:

Cơ sở dữ liệu của tôi không lớn, khoảng 1 GB và tôi tạo bản sao lưu thường xuyên với sự trợ giúp của công cụ bên thứ ba. Làm thế nào tôi có thể chắc chắn rằng nếu xảy ra lỗi, tôi sẽ có thể khôi phục cơ sở dữ liệu của mình với tổn thất tối thiểu?


2
Một thực hành tốt tôi đã học được một cách khó khăn là: không chỉ lập kế hoạch sao lưu mà còn lên kế hoạch cách phục hồi và điều đó cũng có nghĩa là bạn có thể dành chút thời gian để rèn kỹ năng phục hồi DB từ bản sao lưu từ thảm họa giả lập.
jean

Câu trả lời:


8

Cách duy nhất để chắc chắn 100% là khôi phục lại các bản sao lưu. Nếu bạn đang khôi phục cùng một phiên bản SQL Server thì bạn sẽ muốn khôi phục với tên cơ sở dữ liệu mới và sử dụng cú pháp khôi phục MOVE để khôi phục các tệp .mdf và .ldf vào một thư mục khác.

Ngoài ra, bạn có thể khôi phục lại một cá thể máy chủ SQL riêng có cùng tên cơ sở dữ liệu. Một lần nữa, bạn sẽ cần phải xem xét nếu cú ​​pháp MOVE có liên quan.

Xem cơ sở dữ liệu Retore SQL Server đến các tên tệp và vị trí khác nhau để được trợ giúp.

Để thêm phần tinh thần, bạn nên tạo tất cả các bản sao lưu của mình bằng tổng kiểm tra và sau khi xác thực tính nhất quán của siêu dữ liệu bằng kiểm tra RESTORE XÁC MINH. Xác minh khôi phục có thể được tự động bằng cách sử dụng giải pháp sao lưu tuyệt vời Ola Hallengren Giải pháp bảo trì máy chủ SQL


6
"Nếu bạn chưa thử khôi phục bản sao lưu của mình, bạn không có bản sao lưu" - Anon
icc97 18/2/2016

5

Câu trả lời ngắn: kiểm tra các bản sao lưu của bạn và xác nhận tần suất sao lưu.

Thật khó để viết một câu trả lời đủ dài để giải quyết đúng chủ đề này; Tôi sẽ giải thích một chút về câu trả lời ngắn của tôi và cung cấp cho bạn một số liên kết đến nhiều thông tin hơn.

Kiểm tra sao lưu là vô cùng quan trọng; chỉ đơn thuần là sao lưu sẽ không đảm bảo rằng chúng hữu ích. Hầu hết các DBA sẽ định kỳ khôi phục các bản sao lưu vào cơ sở dữ liệu khác hoặc máy chủ khác - để thực hành và kiểm tra tính hợp lệ của bản sao lưu.

Tần suất sao lưu rất quan trọng để giải quyết "tổn thất tối thiểu" - nó phụ thuộc vào tần suất sử dụng của cơ sở dữ liệu và quan trọng hơn là mức độ mất dữ liệu có thể chấp nhận được. Nếu người dùng / nhà phân tích có thể mất cả ngày dữ liệu và không sao khi nhập lại, bạn chỉ cần sao lưu hàng ngày. Nếu họ chỉ có thể mất 5 phút, bạn cần phải thực hiện sao lưu nhật ký cứ sau 5 phút để đáp ứng yêu cầu đó. Giao tiếp với các bên liên quan đến cơ sở dữ liệu là chìa khóa để xác định chiến lược sao lưu phù hợp. Một điều khác họ có thể nói với bạn là họ sẽ cần khôi phục bao lâu. Nếu thỉnh thoảng có những lỗi mà họ cần "khôi phục" tối đa 3 tháng trước, kế hoạch dự phòng của bạn cần giữ các bản sao lưu trong khoảng 90 ngày để bạn có thể rút khỏi những lỗi đó.

Kiểm tra trang web của Brent Ozar để biết thêm thảo luận về thực hành sao lưu và lý do và thời điểm sử dụng chúng.


5

Làm thế nào tôi có thể chắc chắn rằng nếu xảy ra lỗi, tôi sẽ có thể khôi phục cơ sở dữ liệu của mình với tổn thất tối thiểu?

Vâng, điều này hoàn toàn phụ thuộc vào Mục tiêu điểm khôi phục ( RPO) và Mục tiêu thời gian phục hồi ( RTO) như được xác định theo tiêu chuẩn kinh doanh. Vì vậy, bạn cần phải có những chi tiết đó tiện dụng.

RPOđây sẽ là doanh nghiệp mất dữ liệu sẵn sàng để mất, chủ yếu là nó sẽ rất nhỏ. Nhưng giả sử là 15 phút (trong trường hợp của chúng tôi), vì vậy chúng tôi có các bản sao lưu đầy đủ theo sau là các vi sai và sao lưu nhật ký sau mỗi 10-15 phút (tùy thuộc vào mức độ quan trọng của DB). Vì vậy, điều rất quan trọng là bạn nên có một chiến lược sao lưu phù hợp trong trường hợp có thảm họa và bạn cần phục hồi trở lại.

Tiếp theo, kết luận từ bên trên đưa chúng ta đến RTO, đó là thời gian bạn dành để đưa hệ thống lên hoặc đưa hệ thống trở lại trạng thái khỏe mạnh, bằng cách thực hiện các chuỗi hoạt động đó từ FULL, diff để sao lưu nhật ký, tùy thuộc vào kịch bản. điều quan trọng là bạn nên thực hiện kiểm tra thích hợp để thu thập thời gian đó, không thường xuyên mà chủ động trả lời doanh nghiệp trên RTO. Một lần nữa, đây không phải là kỹ thuật nhưng tốt để biết là chiến lược dự phòng.

Sau đó, bằng cách tự động hóa hầu hết các bản sao lưu và khôi phục của bạn, điều này sẽ dễ dàng trong trường hợp bạn đang sử dụng công cụ của bên thứ ba. Ngoài ra, bạn cần kiểm tra và xác thực rằng các bản sao lưu của bạn đang hoạt động và bạn có thể thành công restorechúng.

Một số lời khuyên về thử nghiệm ở đây .

Chỉ cần thêm, trong trường hợp các bản sao lưu sẽ được ghi vào băng, sẽ là một cách tốt để kéo chúng lên và kiểm tra sức khỏe restoređể xác nhận các bản sao lưu được gửi vào băng. Chỉ để đảm bảo về một mặt an toàn hơn.


4

Bạn nên RESTOREsao lưu vào một phiên bản SQL Server khác để kiểm tra xem các bản sao lưu đó có ổn không và chúng có thể được khôi phục. Làm điều này hàng ngày sẽ sớm trở thành một nỗi đau vì vậy tự động hóa quy trình với công việc Tác nhân SQL hoặc một số PowerShell sẽ là lý tưởng.

Phiên bản cơ sở dữ liệu được khôi phục này cũng cung cấp cho bạn một nơi tuyệt vời để chạy kiểm tra tính nhất quán mà không cần thêm phụ tải vào hệ thống sản xuất của bạn.


1

Tất nhiên, kiểm tra tốt nhất cho bất kỳ bản sao lưu nào là khôi phục máy chủ, nhưng có một số cách khác, ít triệt để hơn để thực hiện. Chúng ta hãy khám phá các tùy chọn KIỂM TRA và XÁC MINH.

Tổng kiểm tra là một giá trị được tính từ các byte trang dữ liệu. Các trang dữ liệu bằng nhau có tổng kiểm bằng nhau. Để làm cho tổng kiểm tra được ghi vào từng trang của tệp sao lưu, tùy chọn CƠ SỞ CHECKSUM cần phải được thêm vào lệnh BACKUP DATABASE.

Tùy chọn RESTORE VERIFYONLY là một lựa chọn tốt để kiểm tra từng bản sao lưu sau khi sao lưu xong. Thật không may, điều này cần thêm thời gian xử lý để hoàn thành việc này, nhưng đó là một cách thực hành tốt để đưa vào vị trí.

RESTORE VERIFYONLY FROM DISK = D:\AdventureWorks.bak

Lệnh này sẽ kiểm tra tệp sao lưu và trả về một thông báo xem tệp có hợp lệ hay không. Nếu nó không hợp lệ, điều này có nghĩa là tệp sẽ không thể sử dụng được để khôi phục và nên thực hiện sao lưu mới. Một điều cần lưu ý là nếu có nhiều bản sao lưu trong một tệp, điều này chỉ kiểm tra tệp đầu tiên.

Bạn có thể kiểm tra các bản sao lưu cơ sở dữ liệu của mình, nhưng nếu xảy ra lỗi, bạn sẽ mất tất cả các thay đổi sẽ được thực hiện kể từ lần sao lưu cuối cùng.


VERIFYONLYtrên thực tế, chỉ cần xác thực rằng tệp là bản sao lưu SQL và xác minh rằng nó hoàn chỉnh và có thể đọc được. Từ MSDN: RESTORE VERIFYONLYkhông cố gắng xác minh cấu trúc của dữ liệu chứa trong các khối sao lưu. Cách duy nhất để kiểm tra xem các bản sao lưu của bạn có hoạt động hay không là thực sự khôi phục chúng, toàn bộ.
Kris Gruttemeyer 17/2/2016

0

Bạn sẽ cần thực hiện sao lưu nhật ký giao dịch theo định kỳ giữa các lần sao lưu FULL để cho phép khôi phục cơ sở dữ liệu tại thời điểm của bạn.

ola.hallengren.com có ​​thể cung cấp các tập lệnh để thực hiện sao lưu.

Đảm bảo cơ sở dữ liệu của bạn trong mô hình phục hồi ĐẦY ĐỦ. Cân nhắc sử dụng các bản sao lưu SQL Server gốc nếu cơ sở dữ liệu của bạn chỉ có 1GB.

Kiểm tra các bản sao lưu của bạn rõ ràng - khôi phục chúng và thực hiện DBCC CHECKDB để đảm bảo tính toàn vẹn của chúng.

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.