Woher weiß ich, dass meine Datenbank bei der Ausführung eines PostgreSQL-Datenbanksystems eine 100% ige Integrität aufweist? Grundsätzlich kann ich feststellen, ob meine Datendateien und -seiten zu 100% fehlerfrei sind.
In der Microsoft SQL Server-Welt gibt es einen Befehl, mit dem Sie DBCC CHECKDB ausführen können, um festzustellen, ob Probleme vorliegen. Hier ist ein Link, wenn Sie mehr über den Befehl erfahren möchten. DBCC CHECKDB (Transact-SQL)
Ich bin eine paranoide, datenbankintegritätsorientierte Person (was jeder tun sollte, der mit der Datenbank in einer DBA-Rolle arbeitet), und diese Art von Dingen macht es mir schwer, nachts gut zu schlafen. Ein solches Dienstprogramm ist ein Muss! Google-Suchanfragen haben einige Versuche mit Tools wie diesem unternommen. Meiner Meinung nach kann ich diesem Tool nur vertrauen, wenn es vom PostgreSQL-Projekt offiziell akzeptiert wird.
Hier finden Sie einige Links zu Personen, die ähnliche Fragen stellen, für die ich keine endgültige Antwort halte. Und meiner Meinung nach zeigt sich, dass PostgreSQL einige Tools haben muss, die Oracle und Microsoft SQL Server zu haben scheinen.
Der erste Link ist der interessanteste, den ich zu diesem Thema gefunden habe. Ich denke, ein Kommentar zu dem Artikel, der es wahrscheinlich zusammenfasst, besagt: "Postgres ist ziemlich lahm, wenn es darum geht, Datenbankbeschädigungen zu identifizieren und zu reparieren. Die einzige Möglichkeit, dies zu erkennen, besteht darin, die Datenbank zu sichern oder * aus jeder Tabelle in der Datenbank auszuwählen . "
So schützt PostgreSQL vor teilweisem Schreiben von Seiten und vor Beschädigung von Daten
Überprüfen der Daten und der Beschädigung der Indexdatei - Dev Shed
Hilfe: Mein Tisch ist beschädigt!
PostgreSQL: Beschädigter Primärschlüssel, inkonsistente Tabelle
Ich glaube, es besteht die Möglichkeit, dass 9.3 einige Korruptionsprüfungsfunktionen aufweist. Es scheint zu hoffen, dass Auslagerungsdateien nach Belieben überprüft werden. Wenn Sie ZFS und / oder eine zukünftige Version von Postgres mit Seitenprüfungssummierung in Betracht ziehen, sieht die Sache also gut aus. https://commitfest.postgresql.org/action/patch_view?id=759
UPDATE: 14. JANUAR 2012 - Die Verwendung eines auf ZFS basierenden Dateisystems scheint eine Beschädigung zu erkennen, indem jeder Datenblock überprüft wird. Ich muss mich weiter damit befassen und herausfinden, ob dies eine Lösung ist, die es einem ermöglicht, nachts gut zu schlafen, wenn man weiß, dass ihre Datenbankdaten nicht unbemerkt beschädigt werden.
UPDATE: 17. JANUAR 2012 - So finden Sie heraus, welche Dateien mit ZFS beschädigt sind. http://docs.oracle.com/cd/E18752_01/html/819-5461/gbbwl.html#gbcuz
UPDATE: 14-APR-2014 9.3 hat Datenprüfsummen erhalten. https://wiki.postgresql.org/wiki/What's_new_in_PostgreSQL_9.3
quelle
Antworten:
PostgreSQL vor 9.3 hatte keine Blockprüfsummen. Die Funktion wurde in 9.3 hinzugefügt (lange nachdem diese Frage gestellt wurde).
Um Ihre Bedürfnisse zu befriedigen, würde ich wahrscheinlich meine eigenen Prüfsummen (Trigger?) Entwickeln - und an Attributwerten arbeiten, nicht an Datenseiten.
quelle