Kiểm tra tính toàn vẹn tệp dữ liệu của cơ sở dữ liệu PostgreSQL


12

Khi chạy hệ thống cơ sở dữ liệu PostgreSQL, làm cách nào để biết toàn bộ cơ sở dữ liệu của tôi có tính toàn vẹn 100%? Về cơ bản làm thế nào để tôi biết nếu các tệp dữ liệu và trang của tôi đều tốt 100% mà không có tham nhũng?

Trong thế giới Microsoft SQL Server, có một lệnh mà bạn có thể thực thi DBCC CHECKDB sẽ cho bạn biết nếu có vấn đề. Đây là một liên kết nếu bạn muốn tìm hiểu thêm về lệnh. DBCC CHECKDB (Giao dịch-SQL)

Tôi là một người có đầu óc toàn vẹn cơ sở dữ liệu hoang tưởng (mà bất kỳ ai làm việc với cơ sở dữ liệu trong vai trò loại DBA) và loại công cụ này khiến tôi khó ngủ ngon vào ban đêm. Một tiện ích như thế này là phải! Các tìm kiếm trên google đã tìm thấy một vài lần thử các công cụ như thế này và theo ý kiến ​​của tôi trừ khi đó là một công cụ được chấp nhận chính thức bởi dự án PostgreQuery, tôi sẽ không tin tưởng vào điều gì quan trọng này.

Dưới đây là một số liên kết đến những người hỏi những câu hỏi tương tự với những gì tôi cho là không có câu trả lời dứt khoát thực sự. Và theo ý kiến ​​của tôi cho thấy PostgreSQL cần phải có một số công cụ phù hợp mà Oracle và Microsoft SQL Server dường như có.

Liên kết đầu tiên là thú vị nhất tôi đã tìm thấy về chủ đề này. Tôi nghĩ rằng một nhận xét về bài viết có thể tóm tắt nó nói: "Postgres khá khập khiễng khi xác định tham nhũng cơ sở dữ liệu và sửa chữa nó. Cách duy nhất để phát hiện ra là bằng cách hủy cơ sở dữ liệu hoặc chọn * từ mỗi bảng trong cơ sở dữ liệu . "

Làm thế nào PostgreSQL bảo vệ chống lại một phần trang và ghi dữ liệu

Kiểm tra dữ liệu và chỉ mục tệp tham nhũng - Dev Shed

Trợ giúp: bảng của tôi bị hỏng!

PostgreSQL: Khóa chính bị hỏng, bảng không nhất quán

Tôi tin rằng có khả năng 9.3 có thể có một số tính năng kiểm tra tham nhũng. Dường như có thể có hy vọng kiểm tra các tệp trang nếu được chọn. Vì vậy, mọi thứ sẽ trở nên sáng sủa nếu bạn cân nhắc sử dụng ZFS và / hoặc một phiên bản Postgres trong tương lai với tính năng tổng hợp kiểm tra trang. https://commitfest.postgresql.org/action/patch_view?id=759

CẬP NHẬT: 14-JAN-2012 - Có vẻ như sử dụng hệ thống tệp dựa trên ZFS có thể phát hiện tham nhũng bằng cách kiểm tra tổng hợp từng khối dữ liệu. Tôi sẽ phải xem xét thêm về vấn đề này và xem liệu đây có phải là một công việc xung quanh để cho phép một người ngủ ngon vào ban đêm khi biết dữ liệu cơ sở dữ liệu của họ không âm thầm bị hỏng.

CẬP NHẬT: 17-JAN-2012 - Cách tìm tệp nào bị hỏng với ZFS. http://docs.oracle.com/cd/E18752_01/html/819-5461/gbbwl.html#gbcuz

CẬP NHẬT: 14-APR-2014 9.3 đã nhận được tổng kiểm tra dữ liệu. https://wiki.postgresql.org/wiki/What's_new_in_PostgreQuery_9.3


2
Theo tính toàn vẹn tôi có nghĩa là tính toàn vẹn của các tập tin trang và như vậy. Loại nội dung mà bạn chỉ thấy bình thường nếu bạn viết truy vấn xảy ra để đánh một trang có tham nhũng. Ví dụ, khi một ổ đĩa bắt đầu bị lỗi, một số dữ liệu trên đĩa có thể bắt đầu bị hỏng. Làm thế nào bạn sẽ nhận ra điều này?
Kuberchaun

Câu trả lời:


8

PostgreSQL trước 9.3 không có tổng kiểm tra khối. Tính năng này đã được thêm vào trong 9.3 (rất lâu sau khi câu hỏi này được đăng).

Để trả lời cho nhu cầu của bạn, tôi có thể sẽ phát triển tính năng kiểm tra riêng của mình (kích hoạt?) - làm việc trên các giá trị thuộc tính, không phải các trang dữ liệu.


4
Có thể đáng để thêm rằng vì Postgres 9.3, bạn có thể tùy chọn bật tổng kiểm tra
a_horse_with_no_name
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.