2011-08-03 13 views
0

私たちのアプリケーションはPostgres 7.4.Xで動作しています。私はこれがPostgresの非常に古いバージョンであることに同意し、アップグレードする必要があります。私たちが直面した問題は、疑わしいPostgresデータの破損

1です。ハードウェアの障害によりシステムクラッシュが発生しました。

2。システムが起動したら、いくつかのレコードをデータベースに挿入しようとしました。しかし、現時点では、Postgresがメモリをたくさん取っていたことがわかりました。&

CPU消費量約42%。これは懸念の原因でした。

3。我々はデータベースを再索引付けし、CPUのメモリ消費量を削減するのに役立ちました(&)。

私の質問は

A)は、Postgresデータベースは、ハードウェア、システム障害を処理するのに十分な弾力性ではありませんか?それはいつかテーブルのインデックスが破損することがありますか? Postgresサイトでは、ハードウェアの障害によってインデックスが破損する可能性があることが判明しました。それに加えて、このような腐敗の原因となる可能性のある他のシナリオがあります。

B)Postgresが破損したインデックスを処理する方法に関して改善/強化が行われている場合は、バグIDに関する詳細やそのドキュメントを私に渡すことができますか?私たちのアプリケーションはREINDEXINGを何もしません。私は真剣に我々のアプリケーションにそれを組み込む必要がある場合、私はジレンマに陥っています。

答えて

1

Postgresデータベースは、ハードウェアシステムを処理するのに十分な弾力性がありません ?それはいつかテーブルのインデックスが破損することがありますか? I Postgresサイトで、ハードウェアの障害によってインデックスが破損する可能性があります。

「ハードウェア障害が原因でインデックスが破損する可能性があります」のどの部分がわかりませんでしたか? (笑顔)私は、PostgreSQLのWebサイトを維持している人々が、彼らが何を話しているかを大まかに知っていると思います。

ハードウェア障害、特にディスクサブシステムの障害は、ディスクにゴミを書き込むことができます。重大な障害は、物理的にディスクの表面を損傷する可能性があります。特に魅力的なハードウェア障害は、ディスクの一部を複数の市区町村に再配布する可能性があります。 (クライアントサイトでの爆発で、20マイル離れたところに爆発物があるとのことでしたが、そのような場合にdbms弾力性に頼らないことを学んだことがあります)

ハードウェア障害のリスクを軽減するには、 。しかし、彼らのほとんどはPostgreSQLとは関係がありません。冗長ハードウェア - 電源装置、NIC、RAIDディスクシステム - バッテリバックアップキャッシュ(または書き込みキャッシュの無効化)、サーバーレプリケーション、コールドおよびホットフェールオーバー。これらのどれも、PostgreSQLの独自の回復力とはまったく関係ありません。

PostgreSQLが独自のインデックスの状態をどの程度診断するのか分かりません。後で時間がある場合は、PostgreSQL source codeを見ていきます。

+0

私は、あまりにもハードウェア障害のリスクを緩和することで多くのステップを踏むことに同意します。 1。私は2つのRAIDカードを持っていますPCIe SAS SmartArray P410i RAIDコントローラ PCIe SAS SmartArray P411 RAIDコントローラ – rockstar

+0

これに加えて、ハードウェア障害のためにインデックスの破損が頻繁に発生することはありません。たとえば、気温が高いときにインデックスの破損を引き起こすエアコンを使用していない頑丈なクローゼットにサーバーをロックしていたクライアントが1人ありました。基礎となるハードウェアが健全であれば、PostgreSQLは非常にクラッシュ耐性があります。そうでない場合は、保証できるものはありません。 –