有没有Informix命令来修复数据库?

我们有运行Avaya CMS软件的Sun Solaris系统。 该软件使用Informix数据库。 我们在服务器中有一个驱动器。 驱动器开始坏了,腐败的文件。 我们购买了一个新驱动器,并能够将数据从旧驱动器复制到新驱动器,并成功启动并运行服务器。 我们还有一个问题,因为数据库报告的是坏块,不会写入新的数据。

我们该如何修复? 它只是一个Informix命令来运行,还是我们必须取消分配和重新分配数据库存储?

IBM Informix Dynamic Server版本9.40.UC4

编辑:我们实际上不再关心旧的数据,只是我们想写新的数据,但它不会让我们。 无论如何解决这个问题?

简单的情况可以通过oncheck命令来恢复。
但是现在你的情况和这种腐败现在是如何从“空白”恢复数据的。

为此,您需要恢复您的归档+逻辑日志备份。
然后,您将恢复所有数据到崩溃前的最后状态。

你有 ? 嗯….我很确定你现在的想法是:ooopsss …

在没有硬件冗余的情况下,这应该是最less的。

其他选项研究后,是configuration您的数据库镜像在不同的硬盘上的所有块…这种方式如果一个坏其他保持所有运行。

阅读这篇文章https://stackoverflow.com/questions/19905391/why-informix-dbexport-is-generating-corrupt-data ,也许它可以帮助你。

编辑:

如果这个块被损坏了,就没有任何意义了。
在这种情况下引擎是非常有限的,以保证数据的完整性。
如果有一些数据进入,你将无法删除块(考虑到数据库仍然指向那里)。
更好的解决scheme是将没有损坏的文件导出到文本文件,从零重新创build实例,创build数据库,结构并重新加载数据…
需要了解这些产品是用资源做的,以保证数据的完整性而不是破坏它(考虑到pipe理员configuration正确)。
作为参考,请查看以下链接:

  • Informix手册11.70 – 处理腐败
  • IBM技术说明 – 卸载表损坏
  • IBM技术笔记 – 如何使用ROWID从表中卸载行,避免无法访问的数据