Jan*_*ing 22 postgresql hard-drive database
在我们的应用程序中,我们使用 Hibernate 和 PostgreSQL 来存储数据。在我们的一个数据库表中,我们有一个鉴别器列,例如“TIPPSPIEL”。它是一个固定字符串,不能被任何用户操纵。
突然,我们在这张巨大的表格中出现了一个条目,其中有“TIPPQPIEL”而不是“TIPPSPIEL”。我们不知道这是怎么发生的。
有没有可能我们的硬盘在切换一位,所以我们的字母“S”不再编码为“1010001”而是突然变成硬盘上的“Q”,一位切换如下:1010011?
我不是硬盘方面的专家,有点物理,但我猜操作系统或磁盘有校验和和其他东西来确保这不会发生。
是否有可能只切换一位,所以我的文件向我显示字母“Q”而不是“S”?
更新:我们做了进一步的分析。我们的从数据库从主数据库(PostgreSQL 功能)获取其 WAL 记录。无论如何:我们的从服务器应该是同步的。但是从站在这一特定行上并不同步。我们可以看到它发生在几天前,没有用户对这个特定条目进行任何交互。所以它必须有点翻转。害怕!
Cho*_*er3 10
我们很少在这个网站上看到一个真正有趣的问题,所以首先谢谢你。
我认为您所看到的确实存在一位错误,令人惊讶的是您可以诚实地发现它,但是您假设第二个最低有效位已被切换是正确的(假设您使用的是 ASCII反正)。
至于校验和等,当它被写入磁盘时,它很可能已经被验证为没问题——我很确定这个问题是后来通过一个简单的磁泄漏错误发展起来的。但是你是对的,已经完成了编码检查,它因制造商而异,但某处可能有一个错误,说“这看起来有点奇怪”——但是你的 IO 链有什么选项可用?拒绝你整个街区?我将假设这是一个非 RAID 磁盘,因为当它们检测到错误时,RAID 磁盘往往有更多可用选项。
这很奇怪,尽管这种事情可能每秒在世界范围内发生多次。
| 归档时间: |
|
| 查看次数: |
321 次 |
| 最近记录: |