Під час роботи системи баз даних PostgreSQL, як я можу знати, що моя база даних в цілому має 100% цілісність? В основному, як я можу знати, чи всі мої файли даних та сторінки на 100% хороші без корупції?
У світі Microsoft SQL Server є команда, що ви можете виконати DBCC CHECKDB, яка підкаже, чи є проблеми. Ось посилання, якщо ваш зацікавлений дізнатися більше про команду. DBCC CHECKDB (Transact-SQL)
Я параноїдальна людина, яка має на увазі цілісність бази даних (якою повинен бути кожен, хто працює з базою даних у ролі типу DBA), і цей тип матеріалів ускладнює мені спати добре вночі. Така утиліта є обов'язковою! Пошуки в Google виявили кілька спроб таких інструментів, і, на мою думку, якщо це офіційно прийнятий інструмент проекту PostgreSQL, я не буду довіряти йому для чогось такого важливого.
Ось декілька посилань на людей, які задають подібні запитання, на що я не вважаю реальної остаточної відповіді. На мою думку, це свідчить про те, що PostgreSQL потребує наявності деяких інструментів, якими, здається, є Oracle та Microsoft SQL Server.
Перше посилання - це найцікавіше, що я знайшов з цього приводу. Я думаю, що коментар до статті, яка, ймовірно, підсумовує її, стверджує: "Postgres досить кульгавий, коли йдеться про виявлення корупції бази даних та її відновлення. Єдиний спосіб виявити це - скидаючи базу даних або вибираючи * з кожної таблиці в базі даних . "
Як PostgreSQL захищає від часткового запису сторінки та пошкодження даних
Перевірка пошкодженості даних та індексних файлів - Dev Shed
Довідка: мій стіл пошкоджений!
PostgreSQL: Пошкоджений первинний ключ, непослідовна таблиця
Я вважаю, що шанс 9.3 може мати деякі функції перевірки корупції. Здається, можливо, буде надія на те, що файли сторінок перевіряються підсумовано, якщо вибираєте. Тож речі виглядають яскраво, якщо ви розглядаєте можливість використання ZFS та / або майбутньої версії Postgres із підсумовуванням перевірки сторінки. https://commitfest.postgresql.org/action/patch_view?id=759
ОНОВЛЕННЯ: 14-JAN-2012 - Схоже, що використання файлової системи на основі ZFS може виявити пошкодження, перевіривши підсумовування кожного блоку даних. Мені доведеться детальніше розібратися в цьому і побачити, чи це робота над тим, щоб дозволити спати спати вночі, знаючи, що їхні бази даних не мовчать зіпсуватися.
ОНОВЛЕННЯ: 17-січня 2012 року - Як знайти, які файли пошкоджені за допомогою ZFS. http://docs.oracle.com/cd/E18752_01/html/819-5461/gbbwl.html#gbcuz
ОНОВЛЕННЯ: 14 квітня 2014 р. 9.3 отримано контрольні суми даних. https://wiki.postgresql.org/wiki/What's_new_in_PostgreSQL_9.3