有没有人对使用 PostgreSQL 的旧持久数据有问题。我最近做了一份报告,得到了两个不同的结果。我第二次运行报告时丢失了六条记录。
问问题
48 次
1 回答
0
几乎可以完全确定问题出在您的代码或您使用 PostgreSQL 的方式上。您没有提供足够的信息让任何人解释这一点 - 甚至您的 PostgreSQL 版本也没有!
影响事务隔离和可见性的核心 MVCC 设计的错误会报告给邮件列表,但很少会消失,而且它们往往出现在通常不会遇到的时髦的极端情况中。
我看到数据死而复生的唯一时间是:
用户一直在使用
fsync=off
fsync 或在存储上运行,并且他们在DELETE
. 他们DELETE
返回了一些 d 数据,以及一些有趣的损坏表和索引。设置fsync=off
基本上告诉 PostgreSQL“让它更快,我不在乎你是否销毁我所有的数据”,所以这是一个完全有效的结果。有人在标记的函数上创建了一个索引,该函数
IMMUTABLE
根本不是真正不可变的。这通常只会产生错误的结果,但是对于 9.2 的覆盖索引,我怀疑它也有可能似乎将数据从死里带回来。
所以,老实说,这是你做错的事情。尝试发布一个更详细的新问题:
- pg版
- 您如何运行报告
- DDL
- SQL
- 数据库工作负载是什么样的
- 同时发生了什么
- 还有哪些其他客户
...等等,也许有人可以提供帮助。
于 2012-09-18T23:28:20.030 回答