Kiedy mam uruchomić system bazy danych PostgreSQL, skąd mam wiedzieć, że moja baza danych jako całość ma 100% integralności? Zasadniczo skąd mam wiedzieć, czy wszystkie moje pliki danych i strony są w 100% dobre i nie powodują uszkodzenia?
W świecie Microsoft SQL Server istnieje polecenie, które można wykonać DBCC CHECKDB, które poinformuje cię, jeśli wystąpią problemy. Oto link, jeśli chcesz dowiedzieć się więcej o poleceniu. DBCC CHECKDB (Transact-SQL)
Jestem osobą z nastawieniem na integralność bazy danych, którą powinien mieć każdy, kto pracuje z bazą danych w roli typu DBA) i tego rodzaju rzeczy utrudniają mi dobry sen w nocy. Takie narzędzie jest koniecznością! Wyszukiwania w Google znalazły kilka prób użycia takich narzędzi i moim zdaniem, chyba że jest to oficjalne narzędzie zaakceptowane przez projekt PostgreSQL, nie ufam temu za coś tak ważnego.
Oto kilka linków do osób zadających podobne pytania, na które nie uważam prawdziwej ostatecznej odpowiedzi. I moim zdaniem pokazuje, że PostgreSQL musi posiadać narzędzia, które wydają się mieć Oracle i Microsoft SQL Server.
Pierwszy link jest najciekawszy, jaki znalazłem na ten temat. Myślę, że komentarz do artykułu, który prawdopodobnie go podsumowuje, brzmi: „Postgres jest dość kiepski, jeśli chodzi o identyfikację uszkodzenia bazy danych i naprawę. Jedynym sposobem na jej wykrycie jest zrzucenie bazy danych lub wybranie * z każdej tabeli w bazie danych . ”
Jak PostgreSQL chroni przed częściowym zapisem strony i uszkodzeniem danych
Sprawdzanie uszkodzenia danych i plików indeksu - Dev Shed
Pomoc: mój stół jest uszkodzony!
PostgreSQL: Uszkodzony klucz podstawowy, niespójna tabela
Uważam, że istnieje szansa, że 9.3 może mieć pewne funkcje sprawdzania korupcji. Wygląda na to, że istnieje nadzieja na zsumowanie sprawdzania plików stron, jeśli ktoś zechce. Więc wszystko wygląda dobrze, jeśli weźmiesz pod uwagę użycie ZFS i / lub przyszłej wersji Postgres z sumowaniem sprawdzania strony. https://commitfest.postgresql.org/action/patch_view?id=759
AKTUALIZACJA: 14-STYCZNIA-2012 - Wydaje się, że użycie systemu plików opartego na ZFS może wykryć uszkodzenie poprzez sprawdzenie sumowania każdego bloku danych. Będę musiał przyjrzeć się temu głębiej i sprawdzić, czy jest to rozwiązanie, które pozwala dobrze spać w nocy, wiedząc, że dane ich bazy danych nie ulegają po cichu uszkodzeniu.
AKTUALIZACJA: 17-STYCZNIA-2012 - Jak znaleźć pliki uszkodzone w ZFS. http://docs.oracle.com/cd/E18752_01/html/819-5461/gbbwl.html#gbcuz
AKTUALIZACJA: 14-APR-2014 9.3 otrzymał sumy kontrolne danych. https://wiki.postgresql.org/wiki/What's_new_in_PostgreSQL_9.3
źródło
Odpowiedzi:
PostgreSQL wcześniejszy niż 9.3 nie miał blokowych sum kontrolnych. Funkcja została dodana w wersji 9.3 (długo po opublikowaniu tego pytania).
Aby odpowiedzieć na twoje potrzeby, prawdopodobnie opracowałbym własne sumowanie kontrolne (wyzwalacze?) - pracując na wartościach atrybutów, a nie na stronach danych.
źródło