达梦数据库应用基础(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-26 14:49:29

点击下载

作者:曾昭文

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

达梦数据库应用基础

达梦数据库应用基础试读:

前言

发展具有自主知识产权的国产数据库管理系统,打破国外数据库产品的垄断,为我国信息化建设提供安全可控的基础软件,是维护国家信息安全的重要手段。

达梦数据库管理系统作为国内最早推出的具有自主知识产权的数据库管理系统之一,是唯一获得国家自主原创产品认证的数据库产品,现已在公安、电力、铁路、航空、审计、通信、金融、海关、国土资源、电子政务等多个领域得到广泛应用,为国家机关、各级政府和企业信息化建设发挥了积极作用。

为了推动国产数据库管理系统的教学和人才培养,促进国产数据库的广泛应用,我们在总结数据库管理系统长期教学和科研实践经验的基础上,在达梦数据库有限公司的大力支持下,以达梦数据库DM 7.1为蓝本,编写了《达梦数据库应用基础》和《达梦数据库SQL指南》两本教材。《达梦数据库应用基础》全面系统地介绍了达梦数据库的体系结构、基本参数和数据库的日常维护操作。全书共7章,包括达梦数据库概述、安装与卸载、表空间管理、对象管理、备份与还原、作业管理、安全管理,以及附录等。对数据库各项管理工作,书中都列举了详细的例子,既介绍了SQL命令方式的管理方法,又介绍了可视化图形界面的管理方法,适合不同学习基础的读者使用。

吴照林确定了本书的编写定位和要求。大纲由曾昭文、龚建华拟制,第1章和附录由曾昭文执笔,第2章由张胜执笔,第3、4、5、6章由龚建华执笔,第7章由戴剑伟执笔,付铨、刘志红、文峰、朱明东、冯勤群等同志在本书编写过程中承担了大量工作,最后统稿修改由曾昭文、龚建华完成。

在本书的编写过程中,编者参考了达梦数据库有限公司提供的技术资料,在此表示衷心的感谢。

由于编者水平有限,加之时间仓促,书中难免有错误与不妥之处,敬请读者批评指正,欢迎读者通过电子邮件gongjh123@163.com与我们交流。编 者2016年10月于武汉第1章 达梦数据库概述

达梦数据库(简称DM)是达梦数据库有限公司推出的具有完全自主知识产权的大型通用关系型数据库管理系统,是在总结DM系列产品研发与应用经验的基础之上,吸收主流数据库产品的优点,采用类Java的虚拟机技术设计的新一代数据库产品。1.1 DM 7主要特性

DM 7采用全新的体系架构,在保证大型通用的基础上,针对可靠性、高性能、海量数据处理和安全性做了大量的研发和改进工作,极大地提升了达梦数据库产品的性能、语言的丰富性、可扩展性,能同时兼顾OLTP和OLAP请求,从根本上提升了DM 7产品的品质。1.1.1 通用性

DM 7产品的通用性主要体现在以下几个方面。

1.硬件平台支持

DM 7兼容多种硬件体系,可运行于X86、SPARC、Power等硬件体系之上。DM 7各种平台上的数据存储结构和消息通信结构完全一致,使得DM 7各种组件在不同的硬件平台上具有一致的使用特性。

2.操作系统支持

DM 7实现了平台无关性,支持Windows系列、Linux(2.4及2.4以上内核)、UNIX、Kylin、AIX、Solaris等主流操作系统。DM 7的服务器、接口程序和管理工具均可在32位/64位版本操作系统上使用。

3.应用开发支持

1)开发环境支持

DM 7支持多种主流集成开发环境,包括PowerBuilder、Delphi、Visual Studio、.NET、C++Builder、Qt、JBuilder、Eclipse、Zend Studio等。

2)开发框架技术支持

DM 7支持各种开发框架技术,主要有Spring、Hibernate、iBATIS SQL Map、Entity Framework、Zend Framework等。

3)中间件支持

DM 7支持主流系统中间件,包括WebLogic、WebSphere、Tomcat、Jboss、东方通TongWeb、金蝶Apusic、中创InfoWeb等。

4.标准接口支持

DM 7提供对SQL92的特性支持以及SQL99的核心级别支持;支持多种数据库开发接口,包括OLE DB、ADO、ODBC、OCI、JDBC、Hibernate、PHP、PDO、DB Express以及.NET DataProvider等。

5.网络协议支持

DM 7支持多种网络协议,包括IPv4协议、IPv6协议等。

6.字符集支持

DM 7完全支持Unicode、GBK18030等常用字符集。

7.国际化支持

DM 7提供了国际化支持,服务器和客户端工具均支持简体中文和英文来显示输出结果和错误信息。1.1.2 高可用性

1.快速的自动故障恢复

DM 7通过REDO日志记录数据库的物理文件变化信息。当发生系统故障的时候(如机器掉电),系统通过REDO日志进行重做处理,恢复用户的数据和回滚信息,从而使数据库系统从故障中恢复,避免数据丢失,确保事务的完整性。相对达梦以前的版本,DM 7改进了REDO日志的管理策略。采用逻辑LSN值替代了原有的物理文件地址映射到LSN生成机制,极大简化了REDO日志的处理逻辑。

REDO日志支持压缩存储,可以减少存储空间开销。DM 7在故障恢复时采用了并行处理机制执行REDO日志,有效减少了重做花费的时间。

2.逻辑日志

DM 7在物理的REDO日志之外,又添加了逻辑日志。逻辑日志记录数据库表上的所有插入、删除、更新等数据变化。可以指定部分表记录逻辑日志,也可以设置所有表都记录逻辑日志。借助逻辑日志,DM 7可以提供操作分析、数据重演以及数据复制等高级功能。

3.可靠的备份与还原

DM 7可以提供数据库或整个服务器的冷/热备份以及对应的还原功能,达到数据库数据的保护和迁移。DM 7支持的备份类型包括物理备份、逻辑备份和B树备份,其中B树备份是介于物理备份和逻辑备份之间的一种形态。

DM 7支持增量备份,支持LSN和时间点还原;可备份不同级别的数据,包括数据库级、表空间级和表级;支持在联机、脱机的状态下进行备份、还原操作。

4.高级复制

DM 7的复制功能基于逻辑日志实现。主机将逻辑日志发往从机,而从机根据日志模拟事务与语句重复主机的数据操作。相对语句级的复制,逻辑日志可以更准确地反映主机数据的时序变化,从而减少冲突,提高数据复制的一致性。

DM 7提供基于事务的同步复制和异步复制功能。同步复制即所有复制节点的数据是同步的,如果复制环境中的主表数据发生了变化,这种改变将以事务为单位同步传播和应用到其他所有复制节点。异步复制是指在多个复制节点之间,主节点的数据更新需要经过一定的时间周期之后才反映到从节点。如果复制环境中主节点要被复制的数据发生了更新操作,这种改变将在不同的事务中被传播和应用到其他所有从节点。这些不同的事务间可以间隔几秒、几分钟、几小时,也可以是几天之后。复制节点之间的数据在一段时间内是不同步的,但传播最终将保证所有复制节点间的数据一致。数据复制功能支持一到多、多到一、级联复制、多主多从复制、环形复制、对称复制以及大数据对象复制。

5.基于REDO日志的主备系统——数据守护

主备系统是DM 7提高容灾能力的重要手段。系统由一台主机与一或多台备机构成。主机提供正常的数据处理服务。备机则时刻保持与主机的数据同步。一旦主机发生故障,备机中的一台立刻可以切换成为新的主机,继续提供服务。主备机的切换是通过服务器、观察器与接口自动完成的,对客户端几乎完全透明。

DM 7的主备系统基于优化后的REDO日志系统开发,其功能更加稳定可靠。主备机间传递压缩的日志数据,通信效率大大提升。DM 7主备系统提供了配置模式,可在不停机状态下在单机系统与主备系统间平滑变换。

DM 7的主备系统可提供全功能的数据库支持,客户端访问主机系统没有任何功能限制,而备机同样可以作为主机的只读镜像支持客户端的只读查询请求。1.1.3 高性能

1.查询优化

DM 7采用多趟扫描、代价估算的优化策略。系统基于数据字典信息、数据分布统计值、执行语句涉及的表、索引和分区的存储特点等统计信息实现了代价估算模型,在多个可行的执行计划中选择代价最小的作为最终执行计划。同时,DM 7还支持查询计划的HINT功能,可供经验丰富的DBA对特定查询进行优化改进,进一步提高查询的效率和灵活性。

DM 7查询优化器利用优化规则,将所有的相关子查询变换为等价的关系连接。相关子查询的平坦化,极大地降低了代价优化的算法复杂程度,使得优化器可以更容易地生成较优的查询计划。

2.虚拟机执行器

DM 7实现了基于堆栈的虚拟机执行器。这种运行机制可以有效提升数据计算以及存储过程/函数的执行效率,具有以下特点:采用以字长为分配单位的标准堆栈,提高空间利用率,充分利用CPU的2级缓存,提升性能;增加栈帧概念,方便实现函数/方法的跳转,为PL/SQL脚本的调试提供了基础;采用内存运行堆的概念,实现对象、数组、动态的数据类型存储;采用面向栈的表达式计算模式,减少了虚拟机代码的体积、数据的移动;定义了指令系统,增加了对对象、方法、参数、堆栈的访问,便于PL/SQL的执行。

3.批量数据处理

当数据读入内存后,按照传统策略,需要经过逐行过滤、连接、计算等操作处理后,才能生成最终结果集。在海量的数据处理场景下,必然产生大量重复的函数调用及数据的反复复制与计算代价。

DM 7引入了数据的批量处理技术,即读取一批,计算一批,传递一批,生成一批。数据批量处理具有显而易见的好处:内存紧靠在一起的数据执行批量计算,可以显著提升Cache命中率,从而提升内存处理效率;数据成批而非单行地抽取与传递,可以显著减少在上下层操作符间流转数据的函数调用次数;采用优化的引用方式在操作符间传递数据,可以有效降低数据复制的代价;系统标量函数支持批量计算,可以进一步减少函数调用次数。DM 7采用批量数据处理策略,比一次一行的数据处理模式快10~100倍。

4.查询计划重用

SQL语句从分析、优化到实际执行,每一步都需要消耗系统资源。查询计划的重用,可以减少重复分析操作,有效提升语句的执行效率。DM 7采用参数化常量方法,使得常量值不同的查询语句,同样可以重用查询计划。经此优化后的计划重用策略,在应用系统中的实用性明显增强了。

DM 7采用“历史回溯”策略,对于数据的多版本并发控制实现了原生性支持。DM 7改造了数据记录与回滚记录的结构。在数据记录中添加字段记录最近修改的事务ID及与其对应的回滚记录地址,而在回滚记录中也记录了该行上一更新操作的事务ID与相应回滚记录地址。通过数据记录与回滚记录的链接关系,构造出一行数据的完整更新历史。

5.查询结果集的缓存

DM 7提供查询结果集缓存策略。相同的查询语句,如果涉及的表数据没有变化,则可以直接重用缓存的结果集。查询结果缓存,在数据变化不频繁的OLAP应用模式,或存在大量类似编目函数查询的应用环境下有非常良好的性能提升效果。

在服务器端实现结果集缓存,可以在提升查询速度的同时,保证缓存结果的实时性和正确性。

6.异步检查点技术

DM 7采用更加有效的异步检查点机制。新检查点机制采用类似“蜻蜓点水”的策略,每次仅从缓冲区的更新链中摘取少量的更新页刷新。反复多次刷页达到设定的总数比例后,才相应调整检查点值。与原有检查点长时间占用缓冲区的策略相比,逻辑更加简单,速度更快,对整体系统运行影响更小。

7.多版本并发控制

DM 7采用“历史回溯”策略,对于数据的多版本并发控制实现了原生性支持。DM 7改造了数据记录与回滚记录的结构。在数据记录中添加字段记录最近修改的事务ID及与其对应的回滚记录地址,而在回滚记录中也记录了该行上一更新操作的事务ID与相应回滚记录地址。通过数据记录与回滚记录的链接关系,构造出一行数据的完整更新历史各版本。

DM 7的多版本采用了并发控制技术,数据中仅存储最新一条记录,各个会话事务通过其对应可见事务集,利用回滚段记录组装出自己可见的版本数据。使用这种技术,不必保持冗余数据,也就避免了使用附加数据整理工具。多版本并发控制技术使得查询与更新操作间互不干扰,有效提高了高并发应用场景中的执行效率。

8.数据字典缓存技术

DM 7中实现了数据字典缓存技术。DDL语句被转换为基本的DML操作,执行期间不必封锁整个数据字典,可以有效降低DDL操作对整体系统并发执行的影响。在有较多DDL并发操作的系统中可有效提升系统性能。

9.可配置的工作线程模式

DM 7的内核工作线程同时支持内核线程和用户态线程两种模式,通过配置参数即可以实现两种模式的切换。

内核线程的切换完全由操作系统决定,但操作系统并不了解、也不关心应用逻辑,只能采取简单、通用的策略来平衡各个内核线程的CPU时间;在高并发情况下,往往导致很多无效的上下文切换,浪费了宝贵的CPU资源。用户态线程由用户指定线程切换策略,结合应用的实际情况,决定何时让出CPU的执行,可以有效避免过多的无效切换,提升系统性能。

DM 7的工作线程在少量内核线程的基础上,模拟了大量的用户态线程(一般来说,工作线程数不超过CPU的核数,用户态线程数由数据库的连接数决定)。大量的用户态线程在内核线程内部自主调度,基本消除了由于操作系统调度产生的上下文切换;同时,由于内核线程数的减少,进一步降低了冲突产生的概率,有效提升了系统性能,特别是在高并发情况下的性能提升十分明显。

10.多缓冲区

DM 7采用了多缓冲区机制,将数据缓冲区划成多个分片。数据页按照其页号,进入各自缓冲区分片。用户访问不同的缓冲区分片,不会导致访问冲突。高并发情况下,这种机制可以降低全局数据缓冲区的访问冲突。

DM 7支持动态缓冲区管理,根据不同的系统资源情况,管理员可以配置缓冲区伸缩策略。

11.查询内并行处理

DM 7为具有多个处理器(CPU)的计算机提供了并行查询,以优化查询执行和索引操作。并行查询的优势就是可以通过多个线程来处理查询作业,从而提高查询的效率。

在DM 7中有一个查询优化器,当对SQL语句进行优化后数据库才会去执行查询语句。

如果查询优化器认为查询语句可以从并行查询中获得较高效率,就会将本地通信操作符插入到查询执行计划中,为并行查询做准备。本地通信操作符是在查询执行计划中提供进程管理、数据重新分发和流控制的运算符。在查询计划执行过程中,数据库会确认当前的系统工作负荷和配置信息,判断是否有足够多的线程允许执行并行查询。确定最佳的线程数后,在查询计划初始化确定的线程上展开并行查询执行。在多个线程上并行执行查询时,查询将一直使用相同的线程数,直到完成。每次从高速缓存中检索查询执行计划时,DM 7都重新检查最佳线程数。

12.分段式数据压缩

DM 7支持数据压缩,即将一个字段的所有数据,分成多个小片压缩存储起来。系统采用智能压缩策略,根据采样值特征,自动选择最合适的压缩算法进行数据压缩。而多行相同类型数据一起压缩,可以显著提升数据的压缩比,进一步减少系统的空间资源开销。

13.行列融合

DM 7同时支持行存储引擎与列存储引擎,可实现事务内对行存储表与列存储表的同时访问,可同时适用于联机事务和分析处理。在并发量、数据量规模较小时,单机DM 7利用其行列融合特性,即可同时满足联机事务处理和联机分析处理的应用需求,并能够满足混合型的应用要求。

14.海量数据分析

DM 7提供OLAP函数,用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持,可根据分析人员的要求快速、灵活地进行大数据量的复杂查询处理,并且以直观易懂的形式将查询结果提供给决策人员,以便他们准确掌握企业的经营状况,了解被服务对象的需求,制定正确的方案。

15.大规模并行处理架构

为了支持海量数据存储和处理、高并发处理、高性价比、高可用性等功能,提供高端数据仓库解决方案,DM 7支持大规模并行处理MPP架构,以极低的成本代价,为客户提供业界领先的计算性能。DM 7采用完全对等无共享的MPP架构,支持SQL并行处理,可自动化分区数据和并行查询,无I/O冲突。

DM 7的MPP架构将负载分散到多个数据库服务器主机,实现了数据的分布式存储。采用了完全对等的无共享架构,每个数据库服务器称为一个EP。这种架构中,节点没有主从之分,每个EP都能够对用户提供完整的数据库服务。在处理海量数据分析请求时,各个节点通过内部通信系统协同工作,通过并行运算技术大幅提高查询效率。

DM 7 MPP为新一代数据仓库所需的大规模数据和复杂查询提供了先进的软件级解决方案,具有业界先进的架构和高度的可靠性,能帮助企业管理好数据,使之更好地服务于企业,推动数据依赖型企业的发展。1.1.4 高安全性

1.安全等级

DM 7是具有自主知识产权的高安全数据库管理系统,已通过公安部安全四级评测,是目前安全等级最高的商业数据库之一。同时,DM 7通过了中国信息安全评测中心的EAL3级评测。

2.双因子结合的身份鉴别

DM提供基于用户口令和用户数字证书相结合的用户身份鉴别功能。当接收的用户口令和用户数字证书均正确时,才算认证通过,若用户口令和用户数据证书有一个不正确或与相应的用户名不匹配,则认证不通过,这种增强的身份认证方式可以更好地防止口令被盗、冒充用户登录等情况,为数据库安全把好了第一道关。

另外,DM 7还支持基于操作系统的身份认证、基于LDAP集中式的第三方认证。

3.审计分析与实时侵害检测

DM 7提供数据库审计功能,审计类别包括:系统级审计、语句级审计、对象级审计。

DM 7的审计记录存放在数据库外的专门审计文件中,保证审计数据的独立性。审计文件可以脱离数据库系统保存和复制,借助专用工具进行阅读、检索以及合并等维护操作。

DM 7提供审计分析功能,通过审计分析工具Analyzer实现对审计记录的分析。用户能够根据所制定的分析规则,对审计记录进行分析,判断系统中是否存在对系统安全构成威胁的活动。

DM 7提供强大的实时侵害检测功能,用于实时分析当前用户的操作,并查找与该操作相匹配的审计分析规则。根据规则判断用户行为是否为侵害行为,以及确定侵害等级,并根据侵害等级采取相应的响应措施。响应措施包括:实时报警生成、违例进程终止、服务取消和账号锁定或失效。

4.自主访问控制

DM 7提供了系统权限和对象权限管理功能,并支持基于角色的权限管理,方便数据库管理员对用户访问权限进行灵活配置。

在DM 7中,可以对用户直接授权,也可以通过角色授权。角色表示一组权限的集合,数据库管理员可以通过创建角色来简化权限管理过程。可以把一些权限授予一个角色,而这个角色又可以被授予多个用户,从而使基于这些角色的用户间接地获得权限。在实际的权限分配方案中,通常先由数据库管理员为数据库定义一系列的角色,然后将权限分配给基于这些角色的用户。

5.所有主客体的强制访问控制

DM 7提供强制访问控制功能,强制访问控制的范围涉及数据库内所有的主客体,该功能达到了安全四级的要求。强制访问控制是利用策略和标记实现数据库访问控制的一种机制。该功能主要针对数据库用户、各种数据库对象、表以及表内数据。控制粒度同时达到列级和记录级。

当用户操作数据库对象时,不仅要满足自主访问控制的权限要求,还要满足用户和数据之间标记的支配关系。这样就避免了管理权限全部由数据库管理员一人负责的局面,可以有效防止敏感信息的泄露与篡改,增强系统的安全性。

6.基于SSL协议的通信加密

DM 7支持基于SSL协议的通信加密,对传输在客户端和服务器端的数据进行非对称的安全加密,保证数据在传输过程中的保密性、完整性、抗抵赖性。

7.存储加密

DM 7实现了对存储数据的透明存储加密、半透明存储加密和非透明存储加密。每种模式均可自由配置加密算法。用户可以根据自己的需要自主选择采用何种加密模式。

8.资源限制

DM 7实现了多种资源限制功能,包括并发会话总数、单用户会话数、用户会话CPU时间、用户请求CPU时间、会话读取页、请求读取页、会话私有内存等,这些资源限制项足够丰富并满足资源限制的要求,达到防止用户恶意抢占资源的目的,尽可能减少人为的安全隐患,保证所有数据库用户均能正常访问和操作数据库。DM 7还可配置表的存储空间配额。

系统管理员可借此功能对每个数据库用户单独配置最合适的管理策略,并能有效防止各种恶意抢占资源的攻击。

9.加密引擎

DM 7提供加密引擎功能,当DM 7内置的加密算法,如AES系列、DES系列、DESEDE系列、RC4等加密算法,无法满足用户数据存储加密要求时,用户可能希望使用自己特殊的加密算法,或强度更高的加密算法。用户可以采用DM 7的加密引擎功能,将自己特殊的或高强度的加密算法按照DM 7提供的加密引擎标准接口要求进行封装,封装后的加密算法可以在DM 7的存储加密中按常规的方法进行使用,大大提高了数据的安全性。

10.客体重用

DM 7内置的客体重用机制使数据库管理系统能够清扫被重新分配的系统资源,以保证数据信息不会因为资源的动态分配而泄露给未授权的用户。1.1.5 易用性

DM 7提供了一系列基于Java技术的多平台风格统一的全图形化客户端工具,通过DM 7,用户可以与数据库进行交互,即操作数据库对象和从数据库获取信息,包括系统管理工具Manager、数据迁移工具DTS、性能监视工具Monitor等,同时支持基于Web的管理工具,该工具可以进行本地和远程联机管理。DM 7提供的管理工具功能强大,界面友好,操作方便,能满足用户各种数据管理的需求。1.1.6 兼容性

为保障用户现有应用系统上的投资,降低系统迁移的难度,DM 7提供了许多与其他数据库系统兼容的特性,尤其针对Oracle,DM 7提供了全方位的兼容,以降低用户学习和迁移成本。1.2 DM 7体系结构

DM 7数据库体系结构如图1-1所示,由数据库实例和物理存储结构组成。其中,实例包括内存结构与后台进程,物理结构包括存储在磁盘上的数据文件、控制文件、日志文件、归档文件等。图1-1 达梦数据库体系结构示意图

在达梦数据库中,数据的存储结构包括物理存储结构和逻辑存储结构两种。物理存储结构主要用于描述数据库外部数据的存储,即在操作系统中如何组织和管理数据,与具体的操作系统有关;逻辑存储结构主要描述数据库内部数据的组织和管理方式,与操作系统没有关系。物理存储结构是逻辑存储结构在物理上的、可见的、可操作的、具体的体现形式。  1.2.1 物理存储结构

物理存储结构描述了达梦数据库中的数据在操作系统中的组织和管理。典型的物理存储结构包括:用于进行功能设置的配置文件;用于记录文件分布的控制文件;用于保存用户实际数据的数据文件、重做日志文件、归档日志文件、备份文件;用来进行问题跟踪的跟踪日志文件等,如图1-2所示。图1-2 达梦数据库物理存储结构示意图

1.配置文件

配置文件是达梦数据库用来设置功能选项的一些文本文件的集合,配置文件以.ini为扩展名,它们具有固定的格式,用户可以通过修改其中的某些参数取值实现特定功能项的启用和禁用,并针对当前系统运行环境设置更优的参数值以提升系统性能。

2.控制文件

每个达梦数据库都有一个名为dm.ctl的控制文件。控制文件是一个二进制文件,它记录了数据库必要的初始信息,其中主要包含以下内容。(1)数据库名称。(2)数据库服务器模式。(3)OGUID唯一标识。(4)数据库服务器版本。(5)数据文件版本。(6)表空间信息,包括表空间名,表空间物理文件路径等,记录了所有数据库中使用的表空间,以数组的方式保存起来。(7)控制文件校验码,校验码由数据库服务器在每次修改控制文件后计算生成,保证控制文件的合法性,防止文件损坏及手工修改。

3.数据文件

数据文件以.dbf为扩展名,它是数据库中最重要的文件类型,一个DM数据文件对应磁盘上的一个物理文件,数据文件是真实数据存储的地方,每个数据库至少有一个与之相关的数据文件。在实际应用中,通常有多个数据文件。

当DM的数据文件空间用完时,它可以自动扩展。可以在创建数据文件时通过MAXSIZE参数限制其扩展量,当然,也可以不限制。但是,数据文件的大小最终会受物理磁盘大小的限制。在实际使用中,一般不建议使用单个巨大的数据文件,为一个表空间创建多个较小的数据文件是更好的选择。

数据文件中还有两类特殊的文件:ROLL和TEMP文件。

ROLL文件用于保存系统的回滚记录,提供事务回滚时的信息。回滚文件是一个整段。每个事务的回滚页在回滚段中各自挂链,页内则顺序存放回滚记录。

TEMP文件是临时数据文件,主要用于存放临时结果集,用户创建的临时表也存储在临时文件中。

4.重做日志文件

重做日志文件以.log为扩展名。无论何时,在达梦数据库中添加、删除、修改对象,或者改变数据,都会将重做日志写入到当前的重做日志文件中。每个达梦数据库实例必须至少有两个重做日志文件,默认两个日志文件为DAMENG01.log、DAMENG02.log,这两个文件循环使用。

理想情况下,数据库系统不会用到重做日志文件中的信息。然而现实世界总是充满了各种意外的,如电源故障、系统故障、介质故障,或者数据库实例进程被强制终止等,数据库缓冲区中的数据页会来不及写入数据文件。这样,在重启DM实例时,通过重做日志文件中的信息,就可以将数据库的状态恢复到发生意外时的状态。重做日志文件对于数据库是至关重要的。它们用于存储数据库的事务日志,以便系统在出现系统故障和介质故障时能够进行故障恢复。在达梦数据库运行过程中,任何修改数据库的操作都会产生重做日志,例如,当一条元组插入到一个表中的时候,插入的结果写入了重做日志,当删除一条元组时,删除该元组的事实也被写了进去,这样,当系统出现故障时,通过分析日志可以知道在故障发生前系统做了哪些动作,并可以重做这些动作使系统恢复到故障之前的状态。

日志文件分为联机日志文件和归档日志文件。以上所说的重做日志文件都指联机日志文件。在归档模式下,重做联机日志会被连续复制到归档日志中,这就生成了归档日志文件。联机日志文件指的是系统当前正在使用的日志文件,创建数据库时,联机日志文件通常被扩展至一定长度,其内容则被初始化为空,当系统运行时,该文件逐渐被产生的日志所填充。对日志文件的写入是顺序连续的。然而系统磁盘空间总是有限的,系统必须能够循环利用日志文件的空间,为了做到这一点,当所有日志文件空间被占满时,系统需要清空一部分日志以便重用日志文件的空间,为了保证被清空的日志所“保护”的数据在磁盘上是安全的,这里需要引入一个关键的数据库概念——检查点。当产生检查点时,系统将系统缓冲区中的日志和脏数据页都写入磁盘,以保证当前日志所“保护”的数据页都已安全写入磁盘,这样日志文件即可被安全重用。

5.归档日志文件

归档日志文件以归档时间命名,扩展名也是.log。达梦数据库可以在归档模式和非归档模式下运行。但只有在归档模式下运行时,达梦数据库在重做联机日志文件时才能生成归档日志文件。

采用归档模式会对系统的性能产生影响,然而系统在归档模式下运行会更安全,当出现故障时其丢失数据的可能性更小,这是因为一旦出现介质故障,如磁盘损坏,利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点,而如果没有归档日志文件,则只能利用备份进行恢复。

归档日志还是数据守护功能的核心,数据守护中的备机就是通过重做日志来完成与主机的数据同步的。

6.逻辑日志文件

如果在达梦数据库上配置了复制功能,复制源就会产生逻辑日志文件。逻辑日志文件是一个流式的文件,它有自己的格式,且不在页、簇和段的管理之下。

逻辑日志文件内部存储按照复制记录的格式,一条记录紧接着一条记录,存储着复制源端的各种逻辑操作,用于发送给复制目的端。

7.备份文件

备份文件以.bak为扩展名,当系统正常运行时,备份文件不会起任何作用,它也不是数据库必须有的联机文件类型之一。然而,从来没有哪个数据库系统能够保证永远正确无误地运行,当数据库不幸出现故障时,备份文件就显得尤为重要了。

当客户利用管理工具或直接发出备份的SQL命令时,DM Server会自动进行备份,并产生一个或多个备份文件,备份文件自身包含了备份的名称、对应的数据库、备份类型和备份时间等信息。同时,系统还会自动记录备份信息及该备份文件所处的位置,但这种记录是松散的,用户可根据需要将其复制至任何地方,并不会影响系统的运行。

8.跟踪日志文件

用户在dm.ini中配置SVR_LOG和SVR_LOG_SWITCH_COUNT参数后就会打开跟踪日志。跟踪日志文件是一个纯文本文件,以“dm_commit_日期_时间”命名,生成在DM安装目录的log子目录下,其内容包含系统各会话执行的SQL语句、参数信息、错误信息等。跟踪日志主要用于分析错误和分析性能问题,基于跟踪日志可以对系统运行状态有一个分析,例如,可以挑出系统现在执行速度较慢的SQL语句,进而对其进行优化。

打开跟踪日志会对系统的性能有较大影响,一般在查错和调优的时候才会打开,默认情况下系统是关闭跟踪日志的。

9.事件日志文件

达梦数据库系统在运行过程中,会在log子目录下产生一个“dm_实例名_日期”命名的事件日志文件。事件日志文件对达梦数据库运行时的关键事件进行记录,如系统启动、关闭、内存申请失败、I/O错误等一些致命错误。事件日志文件主要用于系统出现严重错误时进行查看并定位问题。事件日志文件随着达梦数据库服务的运行一直存在。

10.数据重演文件

调用系统存储过程SP_START_CAPTURE和SP_STOP_CAPTURE,可以获得数据重演文件。重演文件用于数据重演,存储了从抓取开始到抓取结束时,达梦数据库与客户端的通信消息。使用数据重演文件,可以多次重复抓取这段时间内的数据库操作,为系统调试和性能调优提供了另一种分析手段。1.2.2 逻辑存储结构

达梦数据库逻辑存储结构描述了数据库内部数据的组织和管理方式。达梦数据库为数据库中的所有对象分配逻辑空间,并存放在数据文件中。在达梦数据库内部,所有的数据文件组合在一起被划分到一个或者多个表空间中,所有的数据库内部对象都存放在这些表空间中。同时,表空间被进一步划分为段、簇和页(也称块)。通过这种细分,可以使达梦数据库更加高效地控制磁盘空间的利用率。图1-3显示了这些数据结构之间的关系。图1-3 逻辑存储结构关系示意图

可以看出,在DM 7中存储的层次结构如下。(1)系统由一个或多个表空间组成。(2)每个表空间由一个或多个数据文件组成。(3)每个数据文件由一个或多个簇组成。(4)段是簇的上级逻辑单元,一个段可以跨多个数据文件。(5)簇由磁盘上连续的页组成,一个簇总是在一个数据文件中。(6)页是数据库中最小的分配单元,也是数据库中使用的最小的I/O单元。

1.表空间

在达梦数据库中,表空间由一个或者多个数据文件组成。达梦数据库中的所有对象在逻辑上都存放在表空间中,而物理上都存储在所属表空间的数据文件中。

在创建达梦数据库时,会自动创建5个表空间:SYSTEM表空间、ROLL表空间、MAIN表空间、TEMP表空间和HMAIN表空间。(1)SYSTEM表空间存放了有关达梦数据库的字典信息。(2)ROLL表空间完全由达梦数据库自动维护,用户无需干预。该表空间用来存放事务运行过程中执行DML操作之前的值,从而为访问该表的其他用户提供表数据的读一致性视图。(3)MAIN表空间在初始化库的时候,就会自动创建一个大小为128MB的数据文件MAIN.dbf。在创建用户时,如果没有指定默认表空间,则系统自动指定MAIN表空间为用户默认的表空间。(4)TEMP表空间完全由达梦数据库自动维护。当用户的SQL语句需要磁盘空间来完成某个操作时,达梦数据库会从TEMP表空间中分配临时段,如创建索引、无法在内存中完成的排序操作、SQL语句中间结果集以及用户创建的临时表等都会使用到TEMP表空间。(5)HMAIN表空间属于HTS表空间,完全由达梦数据库自动维护,用户无需干涉。当用户在创建HFS表时,在未指定HTS表空间的情况下,HMAIN充当默认HTS表空间。

每一个用户都有一个默认的表空间。对于SYSSSO、SYSAUDITOR系统用户,默认的用户表空间是SYSTEM,SYSDBA的默认表空间为MAIN,新创建的用户如果没有指定默认表空间,则系统自动指定MAIN表空间为用户默认的表空间。用户在创建表的时候,当指定了存储表空间A,并且和当前用户的默认表空间B不一致时,表存储在用户指定的表空间A中,并且默认情况下,在这张表上建立的索引也将存储在A中,但是用户的默认表空间是不变的,仍为B。一般情况下,建议用户自己创建一个表空间来存放业务数据,或者将数据存放在默认的用户表空间MAIN中,而不是将数据存放在SYSTEM表空间中。

2.页

数据页(也称数据块)是达梦数据库中最小的数据存储单元。页的大小对应物理存储空间上特定数量的存储字节,在达梦数据库中,页大小可以为4KB、8KB、16KB或者32KB,用户在创建数据库时可以指定,默认大小为8KB,一旦创建好了数据库,则在该库的整个生命周期内,页大小都不能够改变。图1-4显示了达梦数据库页的典型格式。图1-4 DM数据页的典型格式

页头控制信息包含了页类型、页地址等信息。页的中部存放了数据,为了更好地利用数据页,在数据页的尾部专门留出一部分空间用于存放行偏移数组,行偏移数组用于标识页上的空间占用情况以便管理数据页自身的空间。

在绝大多数情况下,用户无需干预达梦数据库对数据页的管理。但是达梦数据库还是提供了选项供用户选择,使得在某些情况下可以为用户提供更佳的数据处理性能。

FILLFACTOR是达梦数据库提供的一个与性能有关的数据页级存储参数,它指定一个数据页初始化后插入数据时最大可以使用空间的百分比(100),该值在创建表/索引时可以指定。

设置FILLFACTOR参数的值,是为了指定数据页中的可用空间百分比(FILLFACTOR)和可扩展空间百分比(100-FILLFACTOR)。可用空间用来执行更多的INSERT操作,可扩展空间用来为数据页保留一定的空间,以防止在今后的更新操作中增加列或者修改变长列的长度时,引起数据页的频繁分裂。当插入的数据占据的数据页空间百分比低于FILLFACTOR时,允许数据插入该页,否则将当前数据页中的数据分为两部分,一部分保留在当前数据页中,另一部分存入一个新页中。

对于DBA来说,使用FILLFACTOR时应该在空间和性能之间进行权衡。为了充分利用空间,用户可以设置一个很高的FILLFACTOR值,如100,但是这可能会导致在后续更新数据时,频繁引起页分裂,而导致需要大量的I/O操作。为了提高更新数据的性能,可以设置一个相对较低(但不是过低)的FILLFACTOR值,使得后续执行更新操作时,可以尽量避免数据页的分裂,提升I/O性能,但这是以牺牲空间利用率来换取性能的提高。

3.簇

簇是数据页的上级逻辑单元,由同一个数据文件中16个或32个连续的数据页组成。在达梦数据库中,簇的大小由用户在创建数据库时指定,默认大小为16。假定某个数据文件大小为32MB,页大小为8KB,则共有32MB/8KB/16=256个簇,每个簇的大小为8KB×16=128KB。和数据页的大小一样,一旦创建好数据库,此后该数据库的簇的大小就不能够改变了。

1)分配数据簇

当创建一个表/索引的时候,DM为表/索引的数据段分配至少一个簇,同时数据库会自动生成对应数量的空闲数据页,供后续操作使用。如果初始分配的簇中所有数据页都已经用完,或者新插入/更新数据需要更多的空间,达梦数据库将自动分配新的簇。在默认情况下,达梦数据库在创建表/索引时,初始分配1个簇,当初始分配的空间用完时,达梦数据库会自动扩展。

当达梦数据库的表空间为新的簇分配空闲空间时,首先在表空间中按文件从小到大的顺序在各个数据文件中查找可用的空闲簇,找到后进行分配;如果各数据文件都没有空闲簇,则在各数据文件中查找空闲空间足够的,将需要的空间先进行格式化,然后进行分配;如果各文件的空闲空间也不够,则选择一个数据文件进行扩充。

2)释放数据簇

对于用户数据表空间,在用户将一个数据段对应的表/索引对象DROP之前,该表对应的数据段会保留至少1个簇不被回收到表空间中。在删除表/索引对象中的记录的时候,达梦数据库通过修改数据文件中的位图来释放簇,释放后的簇被视为空闲簇,可以供其他对象使用。当用户删除了表中所有记录时,达梦数据库仍然会为该表保留1或2个簇供后续使用。若用户使用DROP语句来删除表/索引对象,则此表/索引对应的段以及段中包含的簇全部收回,并供存储于此表空间的其他模式对象使用。

对于临时表空间,达梦数据库会自动释放在执行SQL过程中产生的临时段,并将属于此临时段的簇空间还给临时表空间。需要注意的是,临时表空间文件在磁盘所占大小并不会因此而缩减,用户可以通过系统函数SF_RESET_TEMP_TS来进行磁盘空间的清理。

对于回滚表空间,达梦数据库将定期检查回滚段,并确定是否需要从回滚段中释放一个或多个簇。

4.段

段是簇的上级逻辑分区单元,它由一组簇组成。在同一个表空间中,段可以包含来自不同文件的簇,即一个段可以跨越不同的文件。而一个簇以及该簇所包含的数据页则只能来自一个文件,是连续的16个或者32个数据页。由于簇的数量是按需分配的,因此数据段中的不同簇在磁盘上不一定连续。

1)数据段

段可以被定义成特定对象的数据结构,如表数据段或索引数据段。表中的数据以表数据段结构存储,索引中的数据以索引数据段结构存储。DM以簇为单位给每个数据段分配空间,当数据段的簇空间用完时,达梦数据库就给该段重新分配簇,段的分配和释放完全由达梦数据库自动完成,可以在创建表/索引时设置存储参数来决定数据段的簇如何分配。

当用户使用CREATE语句创建表/索引时,DM会创建相应的数据段。表/索引的存储参数用来决定对应数据段的簇如何被分配,这些参数将会影响与对象相关的数据段的存储与访问效率。对于分区表,每个分区使用单独的数据段来容纳所有数据,对于分区表上的非分区索引,使用一个索引数据段来容纳所有数据,而对于分区索引,每个分区使用一个单独索引数据段来容纳其数据。表的数据段和与其相关的索引段不一定要存储在同一表空间中,用户可以在创建表和索引时,指定不同的表空间存储参数。

2)临时段

在达梦数据库中,所有的临时段都创建在临时表空间中,这样可以分流磁盘设备的I/O,也可以减少由于在SYSTEM或其他表空间内频繁创建临时数据段而造成的碎片。

当处理一个查询时,经常需要为SQL语句的解析与执行的中间结果准备临时空间。达梦数据库会自动地分配临时段的磁盘空间。例如,DM在进行排序操作时就可能需要使用临时段,当排序操作可以在内存中执行,或设法利用索引就可以执行时,就不必创建临时段。对于临时表及其索引,达梦数据库也会为它们分配临时段。临时段的分配和释放完全由系统自动控制,用户不能手工进行干预。

3)回滚段

达梦数据库在回滚表空间的回滚段中保存了用于恢复数据库操作的信息。对于未提交事务,当执行回滚语句时,回滚记录被用来做回滚变更。在数据库恢复阶段,回滚记录被用来做任何未提交变更的回滚。在多个并发事务运行期间,回滚段还为用户提供读一致性,所有正在读取受影响行的用户将不会看到行中的任何变动,直到他们事务提交后发出新的查询。达梦数据库提供了全自动回滚管理机制来管理回滚信息和回滚空间,自动回滚管理消除了管理回滚段的复杂性。此外,系统将尽可能保存回滚信息,来满足用户查询回滚信息的需要。事务被提交后,回滚数据不能再回滚或者恢复,但是从数据读一致性的角度出发,长时间运行查询可能需要这些早期的回滚信息来生成早期的数据页镜像,基于此,数据库需要尽可能长时间的保存回滚信息。达梦数据库会收集回滚信息的使用情况,并根据统计结果对回滚信息保存周期进行调整,数据库将回滚信息保存周期设为比系统中活动的最长的查询时间稍长。1.2.3 实例

实例一般是由一个正在运行的DM后台进程(包含多个线程)以及一个大型的共享内存组成的。简单来说,实例就是操作达梦数据库的一种手段,是用来访问数据库的内存结构以及后台进程的集合。

达梦数据库存储在服务器的磁盘上,而DM实例存储于服务器的内存中。通过运行DM实例,可以操作达梦数据库中的内容。在任何时候,一个实例只能与一个数据库进行关联(装载、打开或者挂起数据库)。在大多数情况下,一个数据库也只有一个实例对其进行操作。但是在即将提供的DM共享磁盘高性能集群中,多个实例可以同时装载并打开一个数据库(位于一组由多台服务器共享的物理磁盘上)。此时,可以同时从多台不同的计算机访问这个数据库。

1.DM后台进程

DM服务器使用“对称服务器构架”的单进程、多线程结构。这种对称服务器构架在有效地利用了系统资源的同时又提供了较高的可伸缩性能,这里所指的线程即为操作系统的线程。服务器在运行时由各种内存数据结构和一系列的线程组成,线程分为多种类型,不同类型的线程完成不同的任务。线程通过一定的同步机制对数据结构进行并发访问和处理,以完成客户提交的各种任务。达梦数据库服务器是共享的服务器,允许多个用户连接到同一个服务器上,服务器进程称为共享服务器进程。DM进程中主要包括监听线程、IO线程、工作线程、调度线程、日志线程等。

1)监听线程

监听线程主要的任务是在服务器端口上进行循环监听,一旦有来自客户的连接请求,监听线程被唤醒并生成一个会话申请任务,加入工作线程的任务队列,等待工作线程进行处理。它在系统启动完成后才启动,并且在系统关闭时首先被关闭。为了保证在处理大量客户连接时系统具有较短的响应时间,监听线程比普通线程优先级更高。

2)工作线程

工作线程是DM服务器的核心线程,它从任务队列中取出任务,并根据任务的类型进行相应的处理,负责所有实际数据的相关操作。DM 7的初始工作线程个数由配置文件指定,随着会话连接的增加,工作线程也会同步增加,以保持每个会话都有专门的工作线程处理请求。为了保证用户所有请求及时响应,一个会话上的任务全部由同一个工作线程完成,这样减少了线程切换的代价,提高了系统效率。当会话连接超过预设的阈值时,工作线程数目不再增加,转而由会话轮询线程接收所有用户请求,加入任务队列,等待工作线程一旦空闲,从任务队列依次摘取请求任务处理。

3)IO线程

在数据库活动中,IO操作历来都是最为耗时的操作之一。当事务需要的数据页不在缓冲区中时,如果在工作线程中直接对那些数据页进行读写,将会使系统性能变得非常糟糕,而把IO操作从工作线程中分离出来是明智的做法。IO线程的职责就是处理这些IO操作。通常情况下,DM Server需要进行IO操作的时机主要有以下三种。(1)需要处理的数据页不在缓冲区中,此时需要将相关数据页读入缓冲区。(2)缓冲区满或系统关闭时,需要将部分脏数据页写入磁盘。(3)检查点到来时,需要将所有脏数据页写入磁盘。

IO线程在启动后,通常处于睡眠状态,当系统需要进行IO时,只需要发出一个IO请求,此时IO线程被唤醒以处理该请求,在完成该IO操作后继续进入睡眠状态。

IO线程的个数是可配置的,可以通过设置dm.ini文件中的IO_THR_GROUPS参数来设置,默认情况下,IO线程的个数是两个。同时,IO线程处理IO的策略根据操作系统平台的不同会有很大差别,一般情况下,IO线程使用异步的IO将数据页写入磁盘,此时,系统将所有的IO请求直接递交给操作系统,操作系统在完成这些请求后才通知IO线程,这种异步IO的方式使得IO线程需要直接处理的任务很简单,即完成IO后的一些收尾处理并发出IO完成通知,如果操作系统不支持异步IO,此时IO线程需要完成实际的IO操作。

4)调度线程

调度线程用于接管系统中所有需要定时调度的任务。调度线程每秒轮询一次,负责的任务有以下一些。(1)检查系统级的时间触发器,如果满足触发条件,则生成任务加到工作线程的任务队列中并由工作线程执行。(2)清理SQL缓存、计划缓存中失效的项,或者超出缓存限制后淘汰不常用的缓存项。(3)检查数据重演捕获持续时间是否到期,到期则自动停止捕获。(4)执行动态缓冲区检查。根据需要动态扩展或动态收缩系统缓冲池。(5)自动执行检查点。为了保证日志的及时刷盘,减少系统故障时恢复时间,根据INI参数设置的自动检查点执行间隔定期执行检查点操作。(6)会话超时检测。当客户连接设置了连接超时时,定期检测是否超时,如果超时则自动断开连接。(7)必要时执行数据更新页刷盘。(8)唤醒等待的工作线程。

5)日志FLUSH线程

任何数据库的修改,都会产生重做(REDO)日志,为了保证数据故障恢复的一致性,REDO日志的刷盘必须在数据页刷盘之前进行。事务运行时,会把生成的REDO日志保留在日志缓冲区中,当事务提交或者执行检查点时,会通知FLUSH线程进行日志刷盘。由于日志具备顺序写入的特点,比数据页分散IO写入效率更高,因此,日志FLUSH线程和IO线程分开,能获得更快的响应速度,保证整体的性能。DM 7的日志FLUSH线程进行了优化,在刷盘之前,对不同缓冲区内的日志进行合并,减少了IO次数,进一步提高了性能。如果系统配置了实时归档,在FLUSH线程日志刷盘前,会直接将日志通过网络发送到实时备机。如果配置了本地归档或者远程同步归档,则生成归档任务,通过日志归档线程完成。

6)日志归档线程

日志归档线程包含同步归档线程和异步归档线程,前者负责本地归档和远程同步归档任务,后者负责远程异步归档任务。如果配置了非实时归档,由日志FLUSH线程产生的任务会分别加入日志归档线程,日志归档线程负责从任务队列中取出任务,按照归档类型做相应归档处理。将日志FLUSH线程和日志归档线程分开的目的是减少不必要的效率损失,除了远程实时归档外,本地归档、远程同步归档、远程异步归档都可以脱离FLUSH线程来做,如果放在FLUSH线程中一起做,则会严重影响系统性能。

7)日志重做线程

为了提高故障恢复效率,DM在故障恢复时采用了并行机制重做日志,日志重做线程就用于日志的并行恢复。通过INI参数LOG_REDO_THREAD_NUM可配置重做线程数,默认是两个线程。

8)日志APPLY线程

在配置了数据守护的系统中,创建了一个日志APPLY线程。当服务器作为备机时,每次接收到主机的物理REDO日志生成一个APPLY任务加入到任务队列,APPLY线程从任务队列中取出一个任务在备机上将日志重做,并生成自己的日志,保持和主机数据的同步或一致,作为主机的一个镜像。备机数据对用户只读,可承担报表、查询等任务,均衡主机的负载。

9)定时器线程

在数据库的各种活动中,用户常常需要数据库在某个时间点开始进行某种操作,如备份;或者在某个时间段内反复进行某种操作等。定时器线程就是为这种需求而设计的。通常情况下,DM Server需要进行定时操作的事件主要有以下几种。(1)逻辑日志异步归档。(2)异步归档日志发送(只在PRIMARY模式下,且OPEN状态下发送)。(3)作业调度。

定时器线程启动之后,每秒检测一次定时器链表,查看当前的定时器是否满足触发条件,如果满足,则把执行权交给设置好的任务,如逻辑日志异步归档等。默认情况下,达梦服务器启动的时候,定时器线程是不启动的。用户可以通过设置dm.ini中的TIMER_INI参数为1来设置定时器线程在系统启动时启动。

10)逻辑日志归档线程

逻辑日志归档用于DM 7的数据复制,目的是加快异地访问的响应速度,包含本地逻辑日志归档线程和远程逻辑日志归档线程。当配置了数据复制后,系统才会创建这两个线程。(1)本地逻辑日志归档线程:本地归档线程从本地归档任务列表中取出一个归档任务,生成到逻辑日志,并将逻辑日志写入到逻辑日志文件中。如果当前逻辑日志的远程归档类型是同步异地归档并且当前的刷盘机制是强制刷盘,那么就生成一个异地归档任务加入到临时列表中。(2)远程逻辑日志归档线程:远程归档线程从远程归档任务列表中取出一个归档任务,并根据任务的类型进行相应的处理。任务的类型包括同步发送和异步发送。

11)数据守护相关线程

在配置了数据守护的观察器上,会创建观察器的实时检测线程、同步检测线程,实现主备机之间的故障检测、故障切换以及恢复。在配置了守护进程的数据守护方案中,数据库实例还会创建UDP消息的广播和接收线程,负责实例和守护进程之间的通信,实现数据守护功能。

12)MAL系统相关线程

MAL系统是DM内部高速通信系统,基于TCP/IP协议实现。服务器的很多重要功能都是通过MAL系统实现通信的,如数据守护、数据复制、MPP、远程日志归档等。MAL系统内部包含一系列线程,有MAL监听线程、MAL发送工作线程、MAL接收工作线程等。

13)其他线程

事实上,达梦数据库系统中不止以上这些线程,在一些特定的功能中会有不同的线程,如回滚段清理PURGE线程、审计写文件线程、重演捕获写文件线程等,这里不再一一列出。

2.DM内存

数据库管理系统是一种对内存申请和释放操作频率很高的软件,

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载