使用命令oninit进行Informix错误

时间:2017-02-09 20:25:33

标签: informix

我是Informix的新手。我有一个Informix服务器,我使用oninit -ivy。现在我的所有数据库都没了。我怎样才能让他们回来?我没有任何备份。

2 个答案:

答案 0 :(得分:2)

最高优先级

  • 请勿触摸任何内容!
  • 联系IBM / Informix技术支持。
  • 请求系统协助。

他们可能会或可能不会帮助你 - 但如果他们无法帮助,可能没有人可以帮助你。 (当然,可能需要解决资金问题才能获得技术支持。)

没有备份并且在重新初始化系统之后(-ivy意味着“初始化,详细,并且不要问我愚蠢的问题 - 我知道我在做什么”),剩下的不多了继续努力。

减轻情节

如果您的系统有多个dbspace或任何blob空格,那么这些空间不会被破坏,数据也是安全的。如果您有一个带有单个dbspace的默认系统,则信息消失的危险就更大。

系统有多大?受影响的数据库有多少,每个数据库有多大?这些数据库中的数据有多重要?可能有办法获取数据,特别是如果你知道数据库模式,如果最坏的情况发生。但这并不容易。关键是不要再造成伤害。您可以复制根dbspace的主要块并安全地存储该复制,但不要尝试修改任何内容。

为了检查,我拿了一个单块服务器的备份副本(到一个文件copy.0.rootdbs),然后在系统上运行oninit -ivy重新初始化它,检查'我的'数据库是不存在,然后运行onmode -ky将其取回,然后再创建一个块(copy.1.rootdbs)的副本,并将copy.0.rootdbs复制回块上并将系统放入正常的方式(oninit -v)。

这项练习有几点好消息:

  1. 我的原始系统继续工作,没有数据丢失。
  2. copy.1.rootdbs文件包含工作数据库中数据库的信息,虽然不是在重新初始化服务器运行时可以找到的形式。
  3. 这意味着只要你有一个安全复制的根dbspace的最小修改主要块的副本,已删除数据库的大部分信息仍将是“那里”,但它需要一些非 - 提取该信息的不可忽视的努力。这些数据需要相当有价值,以保证所需的努力。具体涉及多少工作取决于各种因素,例如各种用户定义数据库中表格中数据的大小和类型。你知道的越多,恢复就越容易 - 但“更容易” 意味着“简单”。

    未来

    • 请制定备份策略,以免再次冒这个风险。
    • 除非您正在初始化Informix数据库服务器的新实例,否则不要再次运行oninit -ivy

    替代

    您也可以在IIUG(International Informix User Group)网站上寻找帮助 - 或者在邮件列表中ids iiug.org加入即可。会员资格是免费的,电子邮件并不繁琐。但是,对于这种情况的标准建议就是我在开始时所说的 - 放手并联系技术支持。

答案 1 :(得分:1)

我想知道您使用的是什么版本的Informix产品。在较新的版本Informix 11.70和12.10中,有一个安全配置参数(FULL_DISK_INIT)可以防止这种意外的磁盘初始化。 您最好的选择是按照上面Jonathan的建议致电IBM技术支持。