你在不知不觉中问了一个相当复杂的问题。Informix 被构建为一个共享一切的数据库引擎,这意味着该实例可用的所有资源对该实例中的每个数据库都可用。这意味着在您的情况下,多个数据库可以将数据存储在任何给定的 dbspace、.dat 或 .idx 文件中。大多数 DBA 都知道不这样做,但需要注意这一点。有了这些知识,您现在知道 .dat 和 .idx 文件不属于数据库,而是属于实例。创建 dbspace 和文件是为了包含您的数据库数据,但它们在技术上属于该实例。值得注意的是,.dat 和 .idx 文件通过逻辑 dbspace 名称为数据库所知。
有了这些背景信息,并假设生产和开发服务器运行相同的操作系统并且您的硬件相对相同,而不是 PARISC、Itanium 或 x86/x64 的组合,我将为您提供几个选项.
- 在新实例中创建您需要的 dbspace,并使用 onunload 和 onload 将数据库从生产复制到开发。
- 使用 ontape 或 onbar 备份整个生产实例并在您的开发实例上恢复它。
选项 1 要求您知道 dbspace 的名称以及它们的大小。在生产实例上使用onstat -d
以找出这一点。顺便说一句, onstat -d 中列出的数字是以页为单位的,我相信 Linux 是 2K 页。
选项 2 只要求数据文件的路径在两台服务器上相同。这意味着 ROOTDBS 在两种情况下都需要相同。可以通过执行找到onstat -c | grep ROOTDBS
有很多内容被遗漏了,但我希望这能为您提供推进任务所需的信息。