达梦数据库回顾及基本介绍

接触达梦数据库有一段时间了,从2018年开始经常听到比较多提倡国产化后才有了些接触,我们公司跟达梦公司也签订了战略合作伙伴协议,公司内的一些产品目前也做了改造测试,对达梦数据库的研究还不深入,主要是在操作使用的层面上玩,今天来说说对达梦数据库的理解做个简单的介绍。

国产数据库就是其中一块重要的部分,以前一说数据库,我们想到的基本都是oracle、mysql、DB2等等国外的厂商,国内的数据库厂商最近几年的发展也开始有很大的进步,比如全自主研发的达梦数据库、基于informix的南大通用、基于PG的优炫和人大金仓等等,达梦目前市面上使用较多的是达梦7版本,最新的达梦8版本在2019年5月发布,相信也有不少人开始玩达梦8了,原以为达梦数据库只有国内的案例,实际上在国外也有案例,达梦公司的相关案例具体可以参考官方网址:http://www.dameng.com/case.aspx?FId=n4:4:1, 最近也经常看到达梦公司的张老师在给老外培训,给老外培训那可不简单,都得用英文交流,这说明达梦数据库已经在国外流行了。

达梦公司的培训认证分DCA、DCP、DCM,对应参照Oracle的OCA、OCP、OCM,但是达梦的DCA水平已经达到oracle的OCP水平,有兴趣的朋友可以联系达梦公司培训负责人王老师QQ:2908982381。

说了这么多我们还是来看看达梦数据库吧,跟oracle一样,达梦数据库也有“数据库”和“实例”,这两个概念之间有着很大的差别,甚至可以说它们是两个完全不同的实体。
数据库:在单独提到达梦数据库时,可能指的是达梦数据库产品,也有可能是正在运行的达梦数据库实例,当同时出现 达梦数据库和实例时,达梦数据库指的是磁盘上存放在达梦数据库中的数据的集合,一般包括:数据文件、日志文件、控制文件以及临时数据文件等。
实例:实例一般是由一组正在运行的达梦后台进程/线程以及一个大型的共享内存组成。简单来说,实例就是操作 DM 数据库的一种手段,是用来访问数据库的内存结构以及后台进程的集合。通过运行达梦数据库实例,可以操作达梦数据库中的内容。在任何时候,一个实例只能与一个数据库进行关联(装载、打开或者挂起数据库)。在大多数情况下,一个数据库也只有一个实例对其进行操作。

达梦数据库逻辑存储结构
达梦数据库为数据库中的所有对象分配逻辑空间,并存放在数据文件中。在达梦数据库内部,所有的数据文件组合在一起被划分到一个或者多个表空间中,所有的数据库内部对象都存放在这些表空间中。同时,表空间被进一步划分为段、簇和页(也称块)。通过这种细分,可以使得达梦数据库能够更加高效地控制磁盘空间的利用率。

在达梦数据库的存储的层次结构参考达梦官方文档如下:

  1. 数据库由一个或多个表空间组成;
  2. 每个表空间由一个或多个数据文件组成;
  3. 每个数据文件由一个或多个簇组成;
  4. 段是簇的上级逻辑单元,一个段可以跨多个数据文件;
  5. 簇由磁盘上连续的页组成,一个簇总是在一个数据文件中;
  6. 页是数据库中最小的分配单元,也是数据库中使用的最小的 IO 单元。

达梦数据库回顾及基本介绍_第1张图片

达梦数据库物理存储结构
达梦数据库使用了磁盘上大量的物理存储结构来保存和管理用户数据。典型的物理存储结构包括:用于进行功能设置的配置文件;用于记录文件分布的控制文件;用于保存用户实际数据的数据文件、重做日志文件、归档日志文件、备份文件;用来进行问题跟踪的跟踪日志文件等

达梦数据库回顾及基本介绍_第2张图片