Import 附加Informix.dat和.idx文件

Import 附加Informix.dat和.idx文件,import,export,informix,Import,Export,Informix,我们正试图在测试服务器上复制一个informix数据库,但如果没有informix的专业知识,我们只能猜测我们需要做什么。我自己正在动态地学习这些东西,远远没有达到高效甚至低效地操作Informix所需的专业水平。无论如何 我们设法从某个实时服务器复制了.dat和.idx文件。在其上安装Linux和最新的Informix动态服务器,并使其启动并运行 现在,我们应该如何处理live server中的.dat和idx文件?我们把它复制到某个地方,它会自动识别吗 或者,是否有一种类似于从MS SQLS

我们正试图在测试服务器上复制一个informix数据库,但如果没有informix的专业知识,我们只能猜测我们需要做什么。我自己正在动态地学习这些东西,远远没有达到高效甚至低效地操作Informix所需的专业水平。无论如何 我们设法从某个实时服务器复制了.dat和.idx文件。在其上安装Linux和最新的Informix动态服务器,并使其启动并运行

现在,我们应该如何处理live server中的.dat和idx文件?我们把它复制到某个地方,它会自动识别吗

或者,是否有一种类似于从MS SQLServer附加DB的方法来在新数据库中注册数据库文件


在我的最后…

我没有任何特定于Informix的建议,但对于这种情况,您通常可以通过查找如何移动数据库(一项常见的管理任务,通常在手册中有详细描述)并跳过删除旧数据库的步骤来找到答案


另外,要注意不同的系统架构引起的问题;如果您再次将某些DB从大端系统(如Solaris)移动到小端系统(如x86 Linux),则某些DB会出现惊人的故障。有关移动DB的手册部分将介绍所需的任何额外步骤。

您问了一个相当复杂的问题,却没有意识到这一点。Informix的体系结构是一个共享一切数据库引擎,这意味着该实例的所有可用资源都可用于该实例中的每个数据库。这意味着在您的案例中,多个数据库可以在任何给定的dbspace、.dat或.idx文件中存储数据。大多数DBA都知道不应该这样做,但这是需要注意的。根据这些知识,您现在知道.dat和.idx文件不属于数据库,而是属于实例。创建dbspace和文件是为了包含数据库数据,但从技术上讲,它们属于实例。值得注意的是,数据库通过逻辑dbspace名称知道.dat和.idx文件

有了这些背景信息,并假设生产和开发服务器运行相同的操作系统,并且您的硬件相对相同,而不是PARISC、安腾或x86/x64的组合,我将为您提供几个选项

  • 在新实例中创建所需的dbspace,并使用onunload和onload 将数据库从生产复制到开发
  • 使用ontape或onbar备份整个生产实例和 在开发实例上恢复它
  • 选项1要求您知道dbspace的名称以及它们的大小。在生产实例上使用
    onstat-d
    来找出这一点。顺便说一句,onstat-d中列出的数字在页面中,我相信Linux是一个2K页面

    选项2只是要求两台服务器上的数据文件路径相同。这意味着两个实例中的ROOTDBS必须相同。可以通过执行onstat-c | grep ROOTDBS


    有很多遗漏,但我希望这能为您提供继续执行任务所需的信息。

    将.dat和.idx文件与C-ISAM关联,或者,在名为dbase.dbs(其中dbase是您数据库的名称)的目录中组织时,.dat和.idx文件与Informix标准引擎关联,又名Informix SE。SE使用C-ISAM管理其存储。SE与Informix Dynamic Server(IDS)有很大不同(并且比后者简单得多)。.dat和.idx文件与ID相关联并非不可能;这是极不可能的

    从可用信息来看,您的生产服务器似乎正在运行SE。要将数据从SE获取到IDS,您可能需要在SE端使用DB Export,在Linux/IDS端使用DB Import。当然,这是最简单的方法

    还有其他可能的解决方案——C-ISAM datablade就是其中之一——但它们更昂贵,而且可能不需要担保。还有其他可能的加载解决方案,例如HPL(高性能加载程序)


    有关Informix的更多信息,请使用已引用的各种网站(是指向IBM网站Informix部分的链接),或者使用该网站。有邮件列表可供详细讨论Informix(要求您加入,但会员资格是免费的)。

    那些Informix SE数据文件(.DAT)及其关联的索引文件(.IDX)是无用的,除非您还拥有所有关联的目录文件,如SYSTABLES.DAT SYSTABLES.IDX、SYSCOLUMNS、sysindex等

    然后,您还必须担心是哪个版本的Informix SE创建了它们,因为有些索引文件节点大小为2K或4K

    最好的方法是从源数据库获取所有.DAT和.IDX文件,以及安装在源数据库所在的相同硬件和操作系统上的正确标准引擎


    长话短说,在源计算机上,运行“dbexport”将所有数据卸载到ascii文件,并运行“dbschema”生成所有表模式和索引。在将所有文件卸载到ascii平面文件之前,对它们运行“bcheck”也不会有什么坏处。

    到目前为止,我们已经知道dbexport和dbimport等工具可以从当前数据库中提取数据,但我们也在尝试采用这种替代方法,看看是否可以使用Informix快速启动和运行测试数据库,如果不使用sqlfloat或SMALLFLOAT类型(分别是C-double和FLOAT),则可以复制数据文件。这些类型以特定于机器的格式存储;所有其他类型(包括DECIMAL)都与体系结构无关。嘿,我正在从事一个需要从.DAT文件迁移数据的项目,我承认这类东西超出了我的专业领域。对私人咨询有兴趣吗?@BakerStreetSystems,我给你发了一封信