Cách tốt nhất để đặt tổng kiểm tra trên tất cả các trang


7

Tôi có một cơ sở dữ liệu SQL Server với PAGE_VERIFYtùy chọn được đặt thành NONE. Khi tôi đặt thành này CHECKSUM, chỉ các trang thay đổi từ thời điểm đó trở đi mới được tính toán và lưu trữ tổng kiểm tra của chúng trên trang.

Tôi đang tìm cách tốt nhất để đặt tổng kiểm vào ít nhất tất cả dữ liệu bảng và chỉ mục.

Ý tưởng ban đầu của tôi sẽ là bỏ và tạo lại tất cả các chỉ mục được nhóm. Đối với các bảng không có chỉ mục được nhóm, tôi sẽ tạo một bảng và sau đó thả lại.

Điều đó sẽ dẫn đến ít nhất một thao tác ghi trên mỗi trang dữ liệu và chỉ mục, nhưng nó hơi nặng tay. Bất cứ ai có một ý tưởng tốt hơn?

Câu trả lời:


8

Cách toàn diện nhất theo quan điểm của tôi là mã hóa / giải mã cơ sở dữ liệu bằng TDE. Điều này sẽ đảm bảo rằng mỗi trang sẽ thay đổi trong bộ nhớ và sẽ được xóa vào đĩa.

Tôi đã thử thành công với các dbs 'di sản' ban đầu được tạo ra trong SQL2000, sau khi tôi phát hiện ra rằng một số trang không có tổng kiểm tra thực tế trên chúng (0x ... 200) nếu bạn xem tiêu đề bằng trang dbcc.

Nếu bạn đã thử điều này, tôi sẽ khuyên bạn nên thử nghiệm nó trên phiên bản db được khôi phục, chỉ trong trường hợp bạn không phát hiện ra tham nhũng có thể bị bắt và đình trệ quá trình mã hóa. Có cờ để đối phó với nó, nhưng tốt hơn là chơi nó an toàn.

Rõ ràng là bạn sẽ muốn sao lưu chứng chỉ được sử dụng bởi mã hóa, do đó bạn được bảo vệ cho mọi tình huống trong thời gian db được mã hóa.

Nếu bất cứ ai có ý tưởng tốt hơn để viết tổng kiểm tra trên tất cả các trang, tôi rất muốn nghe nó :-)


Đó là một cái tốt, đặc biệt là vì nó bắt tất cả các trang trong DB và chạy trong nền. Vấn đề duy nhất là nếu bạn phải xử lý khôi phục từ khung thời gian đó nhưng đó chỉ là công cụ TDE thông thường. Ứng cử viên nóng nhất cho câu trả lời được chấp nhận cho đến nay :-)
TToni

1
Tôi thích nó bởi vì nó cũng sẽ đảm bảo tổng kiểm tra nằm trên các trang không thuộc về bảng / idxs.
John Alan

Đối với những độc giả tương lai, tôi đã xóa câu trả lời của mình vì TDE sẽ chạm vào toàn bộ DB trong khi xây dựng lại các chỉ mục sẽ không.
Jon Seigel
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.