是否有可能只切换一位,所以我的文件向我显示字母“Q”而不是“S”

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 磁盘往往有更多可用选项。

这很奇怪,尽管这种事情可能每秒在世界范围内发生多次。