什么是Informix数据库文件扩展名

时间:2016-09-19 18:22:59

标签: database unix

我从客户端获得了一个硬盘驱动器的映像文件,该驱动器需要从中提取数据库。除了数据库曾经安装在创建映像的服务器上之外,客户端不知道任何细节。

我发现它是安装了Informix DBS的UNIX系统,但我找不到任何数据库文件。我不确定Informix的版本,但它似乎是在大约15年前安装的。

我无法从图像启动。我只是查看文件。

informix数据库文件是否有扩展名,它可能是什么?如何识别数据库文件的其他任何提示?

1 个答案:

答案 0 :(得分:2)

您是否知道数据库是Informix标准引擎(SE)还是Informix(Informix Dynamic Server - IDS - 或多年来其众多同名公司之一)?

标准引擎

如果是SE,则数据库文件位于目录database.dbs中,包含表的索引和数据的文件具有扩展名.idx.dat。这非常固定且非常简单。文件和目录应属于组informix;所有者将是在数据库中创建数据库或表的任何人。

Informix Dynamic Server

如果是IDS,则没有保证的命名约定,Informix甚至不推荐使用。根据磁盘的状态,我会查找由用户informix拥有并属于组informix且拥有660-rw-rw----)的大型文件权限。文件将具有结构,但不容易识别它。

例如,我有根dbspace的' chunk 0'在文件toru_31.rootdbs.c0中(服务器名称toru_31 - 我在系统上强加的命名标准)。它始于:

0x0000: 00 00 00 00 01 00 AB 89 03 00 00 18 30 01 C0 06   ............0...
0x0010: 00 00 00 00 00 00 00 00 49 42 4D 20 49 6E 66 6F   ........IBM Info
0x0020: 72 6D 69 78 20 44 79 6E 61 6D 69 63 20 53 65 72   rmix Dynamic Ser
0x0030: 76 65 72 20 43 6F 70 79 72 69 67 68 74 20 32 30   ver Copyright 20
0x0040: 30 31 2C 20 32 30 31 31 20 20 49 42 4D 20 43 6F   01, 2011  IBM Co
0x0050: 72 70 6F 72 61 74 69 6F 6E 2E 00 00 00 00 00 00   rporation.......
0x0060: 00 00 00 00 00 00 00 00 00 00 03 00 00 08 00 00   ................
0x0070: BA 2D CC 50 1A 00 00 00 00 00 00 00 C8 00 00 00   .-.P............
0x0080: 31 31 37 33 05 00 00 00 00 00 00 00 00 00 00 00   1173............
0x0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

但是,根数据库空间的'第1块' (文件toru_31.rootdbs.c1)开始:

0x0000: 00 00 00 00 02 00 F1 C6 00 00 00 18 18 00 E4 07   ................
0x0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
* (125)
0x07F0: 00 00 00 00 00 00 00 00 00 00 00 00 61 C6 92 00   ............a...
0x0800: 69 6E 66 6F 72 6D 69 78 69 6E 66 6F 72 6D 69 78   informixinformix
* (127)
0x1000: 02 00 00 00 02 00 BE B6 06 00 08 08 20 00 D8 07   ............ ...
0x1010: 00 00 00 00 00 00 00 00 10 06 00 00 01 00 00 00   ................
0x1020: EA 06 00 00 03 00 00 00 75 08 00 00 08 00 00 00   ........u.......
0x1030: A1 08 00 00 08 00 00 00 B5 0A 00 00 30 03 00 00   ............0...

那里有很少的信息可以让游戏消失。虽然informix(包含informix两次的128行)的外观看起来像一个告诉标志,但它不是 - 我用一个写informix的程序创建了一个块磁盘空间。它只显示服务器尚未将数据写入此块的位置。

您可以查找$INFORMIXDIR。实际上,如果有目录/INFORMIXTMP,您可以查看文本文件/INFORMIXTMP/.infxdirs以查看Informix的安装位置。从这些目录中,您可以在$INFORMIXDIR/etc中查找onconfig个文件 - 它们是包含条目ROOTPATH的文本文件,该条目是根dbspace的块0的路径名 - 基本上,整个系统的起点。通常是onconfig.std,这是一个模板;虽然我总是使用onconfig.servername(因此toru_31的配置文件是onconfig.toru_31),但命名约定并未得到明确解决。您还可以在$INFORMIXDIR/etc中找到其他文件。例如,有一个文件oncfg_toru_31.31(前缀oncfg_,后跟服务器名称toru_31后跟点和服务器编号31),其中包含有关块的信息和服务器使用的其他磁盘空间等。您可能还会看到类似于.conf.toru_31.infos.toru_31的二进制文件 - .infos文件通常仅在服务器启动但.conf文件仍然存在时才存在。这些文件中包含一些有限的信息,最明显的是onconfig文件的名称。

如果您可以在磁盘上找到这些文件,那么您可以继续识别数据存储在磁盘上的位置。