当创建一个数据库时,关于该数据库的信息(包括缺省信息)会存储在目录层次结构中。

此分层目录结构的创建位置取决于您在 CREATE DATABASE 命令中提供的信息。如果在创建数据库时未指定目录路径或驱动器的位置,那么将使用缺省位置。

在 CREATE DATABASE 命令中指定为数据库路径的目录中,将创建一个使用实例名的子目录。这个子目录确保在同一目录下的不同实例中创建的数据库不会使用相同的路径。在实例名子目录下面,将创建一个名为 NODE0000 的子目录。这个子目录可以区分逻辑分区数据库环境中的数据库分区。在节点名目录下面,将创建一个名为 SQL00001 的子目录。此子目录的名称使用了数据库标记并表示正在创建的数据库。SQL00001 包含与创建的第一个数据库以及随后创建的具有更高编号(SQL00002 等)的数据库相关联的对象。这些子目录可以区分在 CREATE DATABASE 命令中指定的目录下的实例中创建的数据库。

显示的目录结构如下所示: your_database_pathyour_instanceNODE0000SQL00001

数据库目录中包含下列作为 CREATE DATABASE 命令的一部分进行创建的文件。

  • SQLBP.1 和 SQLBP.2 文件都包含缓冲池信息。这两个文件互为副本以实现备份。

  • SQLSPCS.1 和 SQLSPCS.2 文件都包含表空间信息。这两个文件互为副本以实现备份。

  • SQLSGF.1 和 SQLSGF.2 文件都包含与数据库的自动存储器功能部件相关联的存储器路径信息。这两个文件互为副本,旨在进行维护和备份。在执行 CREATE DATABASE dbname AUTOMATIC STORAGE YES 命令或 ALTER DATABASE dbname ADD STORAGE ON 语句后启用自动存储器时,将为数据库创建这两个文件。

  • SQLDBCONF 文件包含数据库配置信息。切勿编辑此文件。

    注: SQLDBCON 文件用于先前发行版,它包含可以在 SQLDBCONF 被破坏时使用的类似信息。

    要更改配置参数,请使用 UPDATE DATABASE CONFIGURATION 和 RESET DATABASE CONFIGURATION 命令。

  • DB2RHIST.ASC 历史记录文件及其备份 DB2RHIST.BAK 中包含关于备份、复原、表装入、表重组、表空间更改和其他数据库更改的历史记录信息。

    DB2TSCHG.HIS 文件包含日志文件级别的表空间更改的历史记录。对于每个日志文件,DB2TSCHG.HIS 中包含有助于确定日志文件影响哪些表空间的信息。表空间恢复使用此文件中的信息来确定在进行表空间恢复期间要处理哪些日志文件。可以在文本编辑器中检查这两个历史记录文件中的内容。

  • 日志控制文件 SQLOGCTL.LFH.1 及其镜像副本 SQLOGCTL.LFH.2 和 SQLOGMIR.LFH 中包含有关活动日志的信息。

    恢复处理过程使用这些文件中的信息来确定要在日志中后退多远来开始恢复。SQLOGDIR 子目录中包含实际的日志文件。

    注: 您应确保不要将日志子目录映射到用于存储数据的磁盘。这样,在磁盘发生问题时,只会影响到数据或日志,而不会同时影响这两者。由于日志文件与数据库容器不会争用同一磁盘磁头的移动,因此这可提供很多性能方面的好处。要更改日志子目录的位置,请更改 newlogpath 数据库配置参数。

  • SQLINSLK 文件用于确保一个数据库只能由数据库管理器的一个实例使用。

在创建数据库的同时,还创建了详细死锁事件监视器。详细死锁事件监视器文件存储在目录节点的数据库目录中。当事件监视器达到它要输出的最大文件数时,它将停用,并且将把一条消息写入通知日志中。这样可防止事件监视器消耗过多的磁盘空间。除去不再需要的输出文件将允许在下一次数据库激活时再次激活事件监视器。

非自动存储器数据库中的 SMS 数据库目录的其他信息

在非自动存储器数据库中,SQLT* 子目录包含运作数据库所需的缺省“系统管理的空间”(SMS)表空间。将创建三个缺省表空间:

  • SQLT0000.0 子目录中包含带有系统目录表的目录表空间。

  • SQLT0001.0 子目录中包含缺省临时表空间。

  • SQLT0002.0 子目录中包含缺省用户数据表空间。

每个子目录或容器中都会创建一个名为 SQLTAG.NAM 的文件。这个文件可以标记正在使用中的子目录,因此在以后创建其他表空间时,不会尝试使用这些子目录。

此外,名为 SQL*.DAT 的文件中还存储有关子目录或容器包含的每个表的信息。星号(*)将被唯一的一组数字取代,用来识别每个表。对于每个SQL*.DAT 文件,可能有一个或多个下列文件,这取决于表类型、表的重组状态或者表是否存在索引、LOB 或 LONG 字段:

  • SQL*.BKM(如果它是一个 MDC 表,那么它包含块分配信息)

  • SQL*.LF(包含 LONG VARCHAR 或 LONG VARGRAPHIC 数据)

  • SQL*.LB(包含 BLOB、CLOB 或 DBCLOB 数据)

  • SQL*.XDA(包含 XML 数据)

  • SQL*.LBA(包含有关 SQL*.LB 文件的分配和可用空间信息)

  • SQL*.INX(包含索引表数据)

  • SQL*.IN1(包含索引表数据)

  • SQL*.DTR(包含用于重组 SQL*.DAT 文件的临时数据)

  • SQL*.LFR(包含用于重组 SQL*.LF 文件的临时数据)

  • SQL*.RLB(包含用于重组 SQL*.LB 文件的临时数据)

  • SQL*.RBA(包含用于重组 SQL*.LBA 文件的临时数据)

 

 

DB2 安装目录结构

 

 操作系统环境变量DB2DIR(set | grep DB2DIR)指定了DB2的安装目录,通常是:/opt/ibm/db2/V9.5,目录的结构如下:

 

[java] view plaincopyprint?

adm--只有实例用户能执行的管理命令     

adsm--和ADSM备份相关的目录     

bin--所有用户都可执行的命令     

bnd--数据库实用程序相关绑定文件     

cfg--数据库的部分配置文件     

conv--代码页转换库     

das,dasfcn--管理服务器DAS相关的配置信息     

doc--DB2 随机文档     

function--系统和用户自定义函数的存放目录     

ha--HA配置脚本     

icons--DB2 图标     

include--用于C/C++编译的头文件     

infopop--DB2 信息中心随机文档库     

install--安装期间产生的日志文件     

instance--和实例相关的命令     

java--存放java相关信息     

license--许可证     

samples--样例     

tools--工具   

adm--只有实例用户能执行的管理命令   adsm--和ADSM备份相关的目录   bin--所有用户都可执行的命令   bnd--数据库实用程序相关绑定文件   cfg--数据库的部分配置文件   conv--代码页转换库   das,dasfcn--管理服务器DAS相关的配置信息   doc--DB2 随机文档   function--系统和用户自定义函数的存放目录   ha--HA配置脚本   icons--DB2 图标   include--用于C/C++编译的头文件   infopop--DB2 信息中心随机文档库   install--安装期间产生的日志文件   instance--和实例相关的命令   java--存放java相关信息   license--许可证   samples--样例   tools--工具