PostgreSQLデータベースデータファイルの整合性チェック


12

PostgreSQLデータベースシステムを実行している場合、データベース全体の整合性が100%であることをどのように知ることができますか?基本的に、破損していないデータファイルとページがすべて100%良好であるかどうかを知るにはどうすればよいですか?

Microsoft SQL Serverの世界には、問題があるかどうかを通知するDBCC CHECKDBを実行できるコマンドがあります。コマンドの詳細を知りたい場合は、次のリンクをご覧ください。DBCC CHECKDB(Transact-SQL)

私は妄想的なデータベース整合性を重視している人であり(DBAタイプの役割でデータベースを操作する人なら誰でもそうするべきです)、この種のことは夜によく眠れないようにします。このようなユーティリティは必須です!グーグルでの検索では、このようなツールでいくつかの試みが見つかりましたが、PostgreSQLプロジェクトで公式に承認されたツールでない限り、私はこの重要なものを信用しません。

ここに、私が本当の決定的な答えとは思わないもので、同様の質問をする人々へのいくつかのリンクがあります。そして私の意見では、PostgreSQLはOracleとMicrosoft SQL Serverが持っているように見えるいくつかのツールを用意する必要があることを示しています。

最初のリンクは、このテーマで見つけた最も興味深いものです。おそらくそれを要約する記事へのコメントは、「Postgresはデータベースの破損を特定して修復するのはかなり不自由です。それを検出する唯一の方法は、データベースをダンプするか、データベース内のすべてのテーブルから*を選択することです」 」

PostgreSQLが部分的なページ書き込みとデータ破損から保護する方法

データとインデックスファイルの破損の確認-Dev Shed

ヘルプ:テーブルが壊れています!

PostgreSQL:破損した主キー、一貫性のないテーブル

9.3にはいくつかの破損チェック機能がある可能性があると思います。必要に応じて、ページファイルのチェックを合計することを希望する可能性があります。そのため、ZFSやPostgresの将来のバージョンでページチェックサミングを使用することを検討している場合、状況は明るいように見えます。 https://commitfest.postgresql.org/action/patch_view?id=759

更新:2012年1月14日-ZFSに基づくファイルシステムを使用すると、データの各ブロックを合計してチェックすることで破損を検出できるようです。私はこれをさらに調べ、これがデータベースデータが静かに破損していないことを知って夜寝るのを可能にする回避策であるかどうかを確認する必要があります。

更新:2012年1月17日-ZFSで破損しているファイルを見つける方法。http://docs.oracle.com/cd/E18752_01/html/819-5461/gbbwl.html#gbcuz

更新:2014年4月14日9.3でデータチェックサムが取得されました。https://wiki.postgresql.org/wiki/What's_new_in_PostgreSQL_9.3


2
整合性とは、ページファイルなどの整合性を意味します。破損したページにヒットするクエリを記述する場合にのみ通常表示されるものの種類。たとえば、ディスクドライブが故障し始めると、プラッタ上のデータの一部が悪くなる可能性があります。これをどのように見つけますか?
-Kuberchaun

回答:


8

9.3より前のPostgreSQLにはブロックチェックサムがありませんでした。この機能は9.3で追加されました(この質問が投稿されてからずっと後)。

あなたのニーズに答えるために、おそらく私は独自のチェックサム(トリガー?)を開発します-データページではなく属性値を操作します。


4
価値のPostgres 9.3以降に、必要に応じて有効にできることを追加するかもしれないチェックサムを
a_horse_with_no_name
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.