在学习一段时间达梦数据库后,突然萌生了一点想法,在此唠叨一下。

  1. 为什么说自主创新

进入2019年,我相信大家听的比较多的就是“中美贸易摩擦”,归根结底,其实就两个超级大国在各个领域的较量比拼。

在信息化领域来讲,不得不承认,美国技术的强大和底蕴的深厚,从最早的去“IOE”到现在的“自主创新”,能够看得到的最终目的就是要有自己的技术和应对能力,我们可以借鉴但不能依赖!

进入20世纪以来,网络空间已经成为继陆、海、空、天之后的第五大疆域,网络空间泛指由具备独立功能的多个计算机系统通过通信设备连接起来实现资源共享的系统。数据库作为此中最为重要的数据“承载者”,肩负守护数据的完整和安全的职责,那么如何在这个疆域捍卫中国的主权?自主创新是唯一的路!

  1. 达梦数据库的前世今生

达梦数据库是武汉达梦数据库有限公司自主研发和设计,具备完全的自主知识产权。目前市场上使用数量最多的是第七代产品(DM7),2019年发布了第八代的产品(DM8)。

达梦数据库被誉为最似Oracle的“Oracle”;两者之间最主要的区别就是一个是美国产品一个是中国产品。

自19080年Oracle开发了世界上第一个商用关系型数据库(RDBMS),目前已经成长为全球数据库领域独一无二的巨头,遍布全球的各类政府及企业级客户,据不完全统计,Oracle的中国市场占有率达到60%以上。

所以未来还有相当长的路要走,这是一条注定不会平凡的路!!

  1. 学习心得小结
  1. DM逻辑存储结构

首先介绍下DM逻辑存储结构,如下图所示:

达梦 java url 达梦数据库骗局_DM

 

在 DM7 中存储的层次结构如下:

1.数据库由一个或多个表空间组成;

2.每个表空间由一个或多个数据文件组成;

3.每个数据文件由一个或多个簇组成;

4.段是簇的上级逻辑单元,一个段可以跨多个数据文件;

5.簇由磁盘上连续的页组成,一个簇总是在一个数据文件中;

6.页是数据库中最小的分配单元,也是数据库中使用的最小的 IO 单元。

在这里做一下说明:

DM 数据库一般指的是磁盘上存放在 DM 数据库中的数据的集合,一般包括:数据文件、日志文件、控制文件以及临时数据文件等。

实例一般是由一组正在运行的 DM 后台进程/线程以及一个大型的共享内存组成。在大多数情况下,一个数据库只有一个实例对其进行操作。但是在 DM 共享存储集群(DMDSC)中,多个实例可以同时装载并打开一个数据库(位于一组由多台服务器共享的物理磁盘上)。

  1. DM物理存储结构

DM物理存储结构包括:用于进行功能设置的配置文件;用于记录文件分布的控制文件;用于保存用户实际数据的数据文件、重做日志文件、归档日志文件、备份文件;用来进行问题跟踪的跟踪日志文件等。

DM物理存储结构如下图所示:

达梦 java url 达梦数据库骗局_达梦 java url_02

 

1.配置文件是DM数据库用来设置功能选项的一些文本文件的集合,配置文件以ini 为扩展名。

2.控制文件记录着DM数据库必要的初始信息,以.ctl为扩展名。

3.数据文件是数据库中最重要的文件类型,以.dbf为扩展名,对应一个磁盘上的物理文件,是数据真实存储的地方。

4.重做日志文件又叫REDO日志也叫联机日志,以.log扩展名,负责记录数据库的操作执行记录,每个DM数据库实例至少包含2个重做日志文件,循环使用。

5.归档日志文件是只有当数据库处于归档模式下,将联机日志的内容保存到硬盘中所形成的日志文件。

6.备份文件并不是数据库必有的联机文件,但确是最不能忽略的文件,以.bak为扩展名。

7.跟踪日志文件包含各个会话执行的SQL语句、参数信息和错误信息等,主要用于分析错误和性能问题,系统默认关闭跟踪日志功能,可自行打开。

  1. DM内存结构

DM数据库管理系统的内存结构主要包括内存池、缓冲区、排序区、哈希区等。根据系统中子模块的不同功能,对内存进行了上述划分,并采用了不同的管理模式。

1.内存池包括共享内存池和运行内存池,可通过动态视图(V$MEM_POOL)查询使用情况:

1)DM系统管理员可通过配置文件(DM.ini)对共享内存池大小进行设置,默认参数为MEMORY_POOL,该配置默认为 200M,可自行扩展。

2)运行内存池是系统功能模块运行时所使用的内存池。

2.缓冲区包括数据缓冲区、日志缓冲区、字典缓冲区和SQL缓冲区:

1)数据缓冲区是将数据页写入和读取磁盘所存放的位置,其设置的合理,关系着整个数据库的查询效率。

2)日志缓冲区是重做日志的内存缓冲区,主要是为了避免直接的磁盘IO 影响系统性能,系统运行期间产生的日志不会直接写入磁盘而是和数据页一样,优先放在日志缓冲区。

3)字典缓冲区主要存储一些数据字典信息,如模式信息、表信息、列信息和触发器信息等。

4)SQL缓冲区是SQL执行过程所需要的内存,包括计划、SQL语句和结果集缓存。

3.排序区是数据排序所需的内存空间。

4.哈希区是专为哈希连接而设定的缓冲区,这是个虚拟缓冲区。

5.SSD缓冲区是指当采用SSD作为存储介质时,将SSD文件作为内存缓存与普通磁盘之间的缓冲层。