PostgreSQLを使用して古い永続データがぶら下がっているという問題を抱えている人はいますか?私は最近レポートを実行し、2つの別々の結果を得ました。2回目のレポートの実行から6つのレコードが欠落していました。
1 に答える
問題がコードまたはPostgreSQLの使用方法にあることはほぼ完全に確実です。PostgreSQLのバージョンでさえも、誰もがそれを説明するのに十分な情報をどこにも提供していません。
トランザクションの分離と可視性のコアMVCC設計に影響を与えるバグは、メーリングリストに報告されますが、まれにしか発生せず、通常は発生しないファンキーなコーナーケースに発生する傾向があります。
データが死者から戻ってくるのを見たのは、次の場合だけです。
ユーザーは
fsync=off
、fsyncに関連するストレージを使用して、またはストレージ上で実行しており、がクラッシュした後、マシンをクラッシュして再起動しましたDELETE
。彼らはいくつかのDELETE
dデータを取り戻しただけでなく、いくつかの楽しい破損したテーブルとインデックスを持っていました。設定fsync=off
は基本的にPostgreSQLに「高速化する、すべてのデータを破棄してもかまわない」と伝えているので、これは完全に有効な結果でした。IMMUTABLE
誰かが、実際にはまったく不変ではないマークされた関数にインデックスを作成します。これは通常、間違った結果を生成するだけですが、9.2のカバーインデックスを使用すると、データを死者から取り戻すように見える可能性もあると思います。
だから、正直なところ、それはあなたが間違っていることです。より詳細な新しい質問を投稿してみてください。
- Pgバージョン
- レポートの実行方法
- DDL
- SQL
- データベースのワークロードはどのようなものですか
- 同時に他に何が起こっていたのか
- 他にどんなクライアントがいますか
...など、そして多分誰かが助けることができます。