技术开发 频道

专家点评:达梦6.0试用之架构篇

  下面看看达梦数据库的文件部分。但是在开始之前,还是先要了解一下达梦数据库的逻辑结构。

  达梦数据库的逻辑结构显然和Oracle有很大区别,而于SQLSERVER、SYBASE等数据库比较相似。在达梦数据库中存在多个DATABASE的概念,每个DATABASE由一个或多个数据文件组成。用户和DATABASE之间没有一一对应的关系。也就是说只要拥有权限,用户可以读写任何数据库中任何数据文件中的对象,因此DATABASE的概念和Oracle的TABLESPACE有十分类似。

  达梦数据库也是由数据文件、日志文件、控制文件和参数文件组成的。

E:\>cd e:\dmdbms\data
E:\dmdbms\data
>dir /oe
驱动器 E 中的卷没有标签。
卷的序列号是
9037-19E7
E:\dmdbms\data 的目录
2010-04-09  21:40    <DIR>          ..
2010-04-09  21:40    <DIR>          .
2010-03-30  20:48             4,096 dm.blt
2010-04-09  12:25            16,384 dm01.ctl
2010-04-09  12:25            32,768 BOOKSHOP01.ctl
2010-04-09  12:25            32,768 test02.ctl
2010-04-09  12:25            32,768 BOOKSHOP02.ctl
2010-04-09  12:25            32,768 test01.ctl
2010-04-09  12:25            32,768 SYSTEM01.ctl
2010-04-09  12:25            32,768 SYSTEM02.ctl
2010-04-09  12:25            16,384 dm02.ctl
2010-04-12  00:35        17,825,792 SYSTEM.DBF
2010-04-12  01:10        47,185,920 TMPDB001.dbf
2010-03-30  20:56        33,554,432 BOOKSHOP.DBF
2010-04-12  00:51        10,485,760 TMPDB000.dbf
2010-04-12  01:10       104,857,600 test.dbf
2010-04-12  01:10        67,108,864 SYSTEM01.log
2010-03-29  17:18        67,108,864 SYSTEM02.log
2010-04-12  01:06       293,601,280 test02.log
2010-04-12  01:10        67,108,864 BOOKSHOP01.log
2010-03-29  17:19        67,108,864 BOOKSHOP02.log
2010-04-12  07:56       486,539,264 test01.log
2010-04-09  12:25               613 dm_service.prikey
2010-03-30  01:03       134,217,728 BOOKSHOP.rol
2010-04-09  21:40       134,217,728 SYSTEM.rol
2010-04-12  07:56       187,695,104 test.rol
              
24 个文件  1,718,850,149 字节
              
2 个目录  3,572,424,704 可用字节

  这是一个达梦数据库的文件组成,可以看到,后缀为CTL的是控制文件,后缀为LOG的日志文件,而后缀为DBF是数据文件,而后缀为ROL是回滚数据文件。另外prikey结尾的显然是注册文件。

  数据库的参数文件dm.ini没有存储在当前目录中,而是保存在达梦数据库的安装目录的可执行文件路径下C:\DMDBMS\BIN。

  其中控制文件又有全局和局部之分。全局控制文件是dm01.ctl和dm02.ctl,两个文件内容相同互为备份,里面保存所有局部控制文件的信息。

  对于数据库中每个DATABASE,都会存在一个或多个数据文件,一个或多个回滚数据文件,一对控制文件和一对日志文件。这显然和Oracle中的结果大相径庭,在Oracle中,控制文件和日志文件以及UNDO表空间都是对应整个数据库而言,而不是针对数据库中的某个子结构。

  在一个数据库对应的控制文件中,记录数据库的数据文件的位置,回滚数据文件的位置,以及日志文件的位置。

  达梦中临时文件是针对整个系统,而不是每个数据库都对应一个临时数据文件。在系统中存在一个临时数据库,这个数据库并没有对应的控制文件、日志文件和回滚数据文件,只是存在对应的临时数据文件。

  在数据库中总是存在一个SYSTEM数据库,这和Oracle的SYSTEM表空间比较相似,都是用来保存数据字典等数据库正常运行所必须的结构和数据。

  由于对于这种多数据库的环境还不是很熟悉,也确实这种环境下的日常使用和维护经验,因此现在不好评价这种对于每个DATABASE(相当于Oracle中的TABLESPACE)分别设置控制文件、日志文件和回滚数据文件的优缺点。不过根据当前这种结构可以推测一些优缺点。优点在于将业务数据和系统数据区分开,甚至不同的业务数据也可以分离开,这种分离比Oracle中的分离更加彻底,因为对应的日志、控制文件和回滚信息都是分离的。至于这种分离能否带来性能上的优势,或者备份、迁移上的便利,还需要测试才能确定;而缺点也显而易见,至少系统的复杂度被增加了。而且由于控制文件、日志文件和回滚数据文件对于每个DATABASE都单独放置,很明显会占用更多的存储空间,同时也使得备份和恢复会更加的复杂。

0
相关文章