本文由satoni在论坛所发,CU技术文章整理,供大家参考学习,转载请注明出处,谢谢。
磁盘数据组织结构
在INFORMIX-OnLine的磁盘数据组织结构中的最上层为逻辑概念上的数据库空间dbspace, 每一个数据库空间都有一个或若干个物理单位数据存储块chunk组成, 镜像数据存储块mirror保证 当根数据存储块故障时,OnLine 能够继续工作。每一个数据存储块都有若干个数据页 page 组成, 为了提高输入和输出效率,若干个连续的数据页组成数据连续页extent。用户的数据库 database 和 数据表 table 存储在缺省的或者指定的数据库空间中,数据表的逻辑概念上的存储空间数据表空间 tblspace 有 一个或若个安数据连续页 extent 组成,数据记录 row 存放在数据页 page 中。
为更好的的支持多媒体应用,多媒体数据可以存放在二进制大对象数据页Blobpage中,若干个 二进制大对象数据页在此二进制大对象空间Blobspace。
OnLine 使用逻辑日志 Logical log、物理日志 Physical log来管理数据库日志操作。
1. 数据存储块 chunk
INFORMIX-OnLine的数据存放在物理上连续的数据存储块 chunk中,数据存储块是 OnLine 数据存储的最大的物理单位。数据存储块可以有两种构造方法,其一是直接构造在系统的物理磁盘上, 其二是构造在操作系统的文件或者卷上。
在第一种情况下,在操作系统上仅仅定义了这个 (块) 磁盘但没有格式化这个 (块)磁盘,因 此在这上面的所有数据操作都有 OnLine 来完成,操作系统对它不存在任何管理,数据空间在物理 磁盘上连续,这种数据的存储空间称为原始空间raw space。
而在第二种情况下,操作系统不仅定义了这个数据存储空间(文件), 还管理这个数据存储 空间(文件),数据文件操作时的内存缓冲、输入与输出。数据空间的建立受操作系统的制约,在物理存储上不连续。我们称这种数据存储空间为非原始空间 cooked space。
比较这两种数据的存储空间,原始空间在磁盘上连续,没有操作系统的缓存和制约,非原始空间在磁盘上不连续,存在着操作系统的缓存和操作系统的输入/输出的制约,因此在实际应用中, 采用 原始空间效率高于非原始空间,由于原始空间与系统设备有关, 同时不同操作系统对设备的 定义的不 一致性,定义非原始空间比定义原始空间来得简单。 我们将原始空间所对应的磁盘称原 始设 备 raw device,而将非原始空间所对应的操作系统文件称操作系统文件cooked file。
为了进一步提高数据库运行的效率,我们通常选用字符设备作为存放实际的原始设备,这样在我们输入/输出数据时,可以充分发挥系统的DMA能力。
当我们使用原始设备时,可以在同一个原始设备上建立多个数据存储块。通过对数据存储块的参数 OFFSET和 SIZE的定义,其单位为KB,我们可以定义多个数据存储块在同一个磁盘或磁盘块 上,参数OFFSET 定义数据存储块的起始位置,参数SIZE定义数据存储块的大小,用户在设置参数 OFFSET 和SIZE时 必须保证在物理磁盘上没有相互覆盖。
在下图所示的原始设备/dev/rdsk/c0t1d1s0 上建立三个数据存储块 chunk1、 chunk2和 chunk 3,它们的大小分别为50MB、30MB和50MB,由于chunk 的SIZE单位为KB,因此 chunk1、chunk2 和chunk3的SIZE分别为50000、30000和50000。在通常情况下, 第一个数据存储块chunk1的OFFSET 为0,这样第二个数据存储块 chunk2 的OFFSET应为第一个数据存储块chunk1的SIZE,而第三个数 据存储块 chunk3的OFFSET则为第二个数据存储块chunk2的OFFSET加上第二个数据存储块chunk2 的SIZE。 为保证在两个数据存储块的相邻边界处不发生重叠,可以将后一个数据存储块的起始位 置稍 微挪后一点。
如果采用操作系统文件作为数据存储空间时,一般不在一个文件中建立多个数据存储块。一个文件中建立多个数据存储块,操作系统对文件中数据的定位时间将更长。
不管是原始设备还是非原始设备,OnLine的概念是一致的。在实际应用中,可以一部分数据存储块用原始设备而另一部分用非原始设备,只是原始设备采用OnLine的管理的I/O机制,而非原始设备采用操作系统 unix 的I/O机制。
2. 数据页 page
INFORMIX-OnLine在数据存储块中以数据页page为单位来组织存放数据,并以数据页为单 位来输入输出数据,它的大小与数据在共享内存中数据缓冲区相一致,所以 OnLine 的数据页的大小 是不可以改变的。数据页是OnLine 组织存放数据的最小的物理单位。
根据不同从操作系统,OnLine的数据页的大小是不同的。例如在SCO、AT&T、UNISYS 和HP等操作系统平台上,每一个数据页的大小为2KB,而在IBM和SEQUENT等操作系统平台上, 每 一个数据页的大小则为4KB。同时数据在共享内存中的缓冲区的大小也是根据操作系统的不同 而不同,其值与数据页的大小一致。
3. 数据连续页 extent
为提高数据操作的效率,OnLine将若干个在物理磁盘上连续的数据页组成一个数据连续页 extent。当用户创建一个数据表时,OnLine以数据连续页为单位在数据存储块中分配一块连续的空 间,当用户的数据写满了这个数据连续页后,OnLine 将以数据连续页为单位在数据存储块中申请 一块连续空间,以存放更多的用户数据。在缺省情况下,初始化时第一个数据连续页为8个数据页。
数据连续页不能跨越数据存储块,当OnLine需要申请较多的数据页构成数据连续页时,如 果 OnLine 找不到如数的在物理设备上连续的数据页时,OnLine将放弃这些不够构成一个数据连续页的数 据页,OnLine 将去下一个数据存储块去申请如数的在物理设备上连续的数据页。因此在实 际系 统中,过小的数据存储块将不利于数据操作性能和数据存取效率。
4. 数据库空间 dbspace
在INFORMIX-OnLine 的磁盘数据组织中,数据库空间 dbspace 处于一个比较上层的位置。 数 据库空间是数据库在逻辑概念上的存储空间,一个或若干个数据库空间组成OnLine数据实体。在 物理 磁盘上, 每一个数据库空间总对应于一个或几个数据存储块, 在这些与数据库空间对应的数 据存储块 中,一定有一个数据存储块是根数据存储块, 而其它的则是后继数据存储块。 从功能上来 看,根数据 存储块除了具有后继数据存储块能够存储用户数据外,它还具有管理本数据库空间的功 能;从数据存 储块的保留页来看,根数据存储块具有 56 个保留页,而后继数据存储块仅有3个保留 页。当然不同版 本的OnLine在主、后继数据存储块的保留页的数量可能不同,但是根数据存储块需 要更多的保留页来 保存本数据库空间的定义。
在OnLine初始化后有一个称为根数据库空间rootdbs的数据库空间,它是OnLine系统的第一个 数据库空间。当建立根数据库空间时,它的根数据存储块将被建立,所有数据库的日志和所有的定 义信息都必须存放在该数据存储块中,它比所有其它根数据存储块的保留页更多。由于数据库日志 定义的需要,因此对根数据库空间的根数据存储块的定义尤其重要,关于如何正确地定义根数据库 空间的 根数据存储块将在后面详细介绍。
为了提高数据库系统运行的效率,INFORMIX新的动态服务器OnLine Dynamic Server 7.1中 引入了临时数据库空间的概念。在没有临时数据库空间的系统中,临时数据将建立的缺省的根数据 库空间中,由于临时数据操作需要频繁的增加、删除,会给根数据库空间的数据存储块中造成很多 碎片,将导致数据库操作效率的降低;另外当数据库备份时,那些临时数据也一起作备份,从而增 加了数据备份量,降低了数据备份的效率。引入临时数据库空间后,用户的临时数据或者数据操作 的中间 结果 将被存放在临时数据库空间中, 同时当数据备份时临时数据库空间将不再被 备份。
5. 数据存储块镜像 mirror
为提高 OnLine 运行时的数据高可靠性,OnLine在数据存储上引入了数据存储块镜像的机 制。OnLine数据存储的镜像是对数据存储块而言的,但是其定义是对数据库空间的。当一个数据库 空间被定义为镜像时,它下面的所有数据存储块全部镜像;当一个数据库空间被定义成没有镜像的 时候, 它下面的所有数据存储块全部没有镜像。
当 OnLine在运行时,一旦数据存储块所在的物理磁盘发生读写故障,对于没有数据库空间 没有镜像的系统,OnLine将自动关闭,并等待恢复。而对于具有镜像的数据库空间,OnLine将把存 在读写故障的数据存储块标识为Down,同时 OnLine 将继续运行,用户完全可以根据需要,在适当 的时候,恢复存在读写故障的数据存储块所在的磁盘,然后重构继续。因此一个具有镜像的数据库 空间,其运行时的可靠性将大大高于不具有镜像的数据库空间。
6. 数据表空间 tblspace
在逻辑上,数据库存放在数据库空间dbspace中,数据表存放在数据表空间tblspace中。数据 库空间是由数据存储块组成,数据表存在于这些数据存储块中,数据表空间是由连续存放该数据表 记录的数据连续页组成。
阅读(1486) | 评论(1) | 转发(0) |