2012-09-18 67 views
0

有沒有人在使用PostgreSQL時掛起舊的持久性數據。我最近做了一份報告,得到了兩個單獨的結果。第二次運行報告時丟失了六條記錄。Postgresql和舊的持久性數據

+0

沒有PostgreSQL是完全沒有bug的。看看鍵盤和椅子之間的問題。 –

+0

@DarrylMiles哈!沒有任何東西可以免費使用,並且在郵件列表中有緩慢而穩定的報告。也就是說,他們通常是打包/安裝問題或影響較新功能的角落案例。基本數據處理中的錯誤幾乎,但不完全是前所未聞的。 –

+0

@ user1681134你的問題缺乏足夠的細節讓任何人有用地回答它。 –

回答

0

幾乎完全可以確定問題出在您的代碼中,或者您如何使用PostgreSQL。你沒有提供足夠的信息給任何人解釋這個 - 甚至不是你的PostgreSQL版本!

影響核心MVCC設計的事務性隔離和可視性的錯誤會報告給郵件列表,但這種錯誤很少會消失,而且它們傾向於處於通常不會遇到的怪異情況。

我見過的數據來自起死回生的唯一時間是當:

  • 用戶已經與fsync=off或存儲是位於約FSYNC運行,他們已經墜毀&重新啓動機器在DELETE之後。他們有一些DELETE d數據,以及一些有趣的腐敗表和索引。設置fsync=off基本上告訴PostgreSQL「讓它更快,我不在乎你是否銷燬了我所有的數據」,所以這是一個非常有效的結果。

  • 有人在標記爲IMMUTABLE的函數上創建了一個索引,它根本不是真正不可變的。這通常只會產生錯誤的結果,但對於9.2的覆蓋索引,我懷疑它有可能將數據從死裏還原。

所以,說實話,這是你做錯了什麼。嘗試發佈一個新的問題,以很多更多詳細信息:

  • PG版本
  • 你如何運行報告
  • DDL
  • SQL
  • 數據庫工作負載是什麼樣
  • 同時發生了什麼其他事情
  • 還有哪些其他客戶

...等等,也許有人可以幫忙。