达梦数据库-数据库系统结构

数据库和实例

    数据库: 指存放在磁盘上的物理文件, 一般包含数据文件、日志文件、控制文件、参数文件等

    实例:   用于操作数据库, 指当数据库启动后运行的后台进程和内存

DM 数据库逻辑结构

表空间

        表空间是一个逻辑概念, 由多个段组成, 一个表空间可以包含多个数据文件, 默认数据库会自动出创建5个表空间

        SYSTEM : 存储数据库的元数据信息

        ROLL   : 回滚段, 用于提供MVCC机制

        MAIN   : 如果创建的用户没有指定表空间, 则默认创建的数据库对象就存放在该表空间中, 相当于ORACLE的user表空间

        TEMP   : 存放临时数据, 例如SQL语句的执行结果

        HMAIN  : HTS表空间

        表空间相关视图

            V$TABLESPACE        当前数据库中有多少表空间

            V$HUGE_TABLESPACE   HTS表空间相关信息

        段时逻辑概念, 由多个区组成

        段的类型

            数据段: 存放数据和索引的段

            临时段: 临时结果集等, 临时段的分配和释放完全由系统自动控制,用户不能手工进行干预

            回滚段: 用于存储多版本并发

        区是一个逻辑概念, 由多个页组成, 主要用于当进行表空间扩展时, 一次性扩展多少空间

        在进行数据库初始化时可以指定

        数据库的最小存储单元, 也是最小的I/O操作单元

        DM数据库页大小分为 4k 8k 16k 32k , 默认8k, 在数据库初始化时可以指定页大小, 一旦指定后就无法修改

        页中存放内容

            1、页的类型

            2、记录

            3、页的元数据信息

        页大小的选择

            页中存放的是真实的记录, 当一个表中的一行记录的总长度很大时, 则选择16k或者32k的页大小

            因为数据库每次从磁盘读取都是根据数据页的大小进行读取可以减少磁盘IO

        页的相关参数

            fillfactor: 填充因子

                当某个页中存放的数据, 达到该值设置的阈值时, 则不允许再插入数据, 可以有效的减少页分裂

        页分裂和页合并

            页分裂: 当插入或更新一行数据时, 当前页无法满足插入或更新数据的存储容量时发生页分裂

            页合并: 由于删除数据, 造成某个页中的数据存储很低或者达到某个存储限制时, 则需要和其他页合并来减少存储空间

记录

        数据库表中的每一行是一条记录

        记录是存储在数据页中的一条记录只能存储在一个页中

        数据页中还包含了页头控制信息等空间, 每条记录的总长度不能超过页面大小的一半, 这样保证每个页最少可以存储2条记录

DM8中存储的层次结构如下

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

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

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

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

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

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

DM数据库物理结构

配置文件:

用于配置数据库运行时的各个参数

        配置文件类型

            dm.ini      对数据库运行时的参数进行配置

            dmmal.ini   MAL系统的配置文件, 所有站点dmmal.ini需要保证严格一致

            dmarch.ini  用于本地归档和远程归档

            dm_svc.conf DM各接口及客户端需要配置的一些参数, 类似ORACLE的tnsnames.ora

            sqllog.ini  用于sql日志的配置

            dmrep.ini   用于配置复制实例

            dmllog.ini  用于配置逻辑日志

            dmtimer.ini 用于配置定时器

控制文件

        dm.ctl 存储数据库的初始化信息, 是一个二进制文件

        控制文件存储内容

            1、数据库名称

            2、数据库服务器模式

            3、OGUID唯一标识

            4、数据库版本

            5、数据文件版本

            6、数据库启动次数

            7、数据库最近一次启动时间

            8、表空间信息

            9、控制文件校验码

        控制文件备份策略

            1、在修改参数之前进行备份, 修改成功后删除备份文件

            2、在修改参数之后进行备份, 根据参数CTL_BAK_NUM 保留备份数量

        控制文件注意事项

            控制文件存放在裸设备上, 则备份策略1无效

            指定的控制文件路径无效, 则备份策略2无效

数据文件

        存放真是数据的文件

重做日志文件

        记录数据库的修改操作, 包含DML和DDL

        默认DM提供两个日志,循环写入

        redo日志的刷写

            数据库定期将redo日志中的数据写入磁盘

            当redo无法保存写入的数据时, 触发checkout机制, 将数据写入磁盘

归档日志

        归档模式下, redo日志的备份

逻辑日志

        复制模式下的一种特定文件

物理逻辑日志

        专门用于dms_logmnr挖掘数据库历史执行语句的日志

备份文件

        对数据库进行备份的文件

跟踪文件

        对数据库中各会话在运行期间所执行的语句等信息存储, 主要用于问题诊断和性能优化

事件日志

        事件日志文件对DM数据库运行时的关键事件进行记录,如系统启动、关闭、内存申请失败、IO错误等一些致命错误

数据重演文件

        调用系统存储过程SP_START_CAPTURE和SP_STOP_CAPTURE, 主要用于分析在指定的时间内数据库的操作

DM 内存结构

    共享内存池

        指DM在启动后一次性分配给DM数据库的内存, 相当于ORACLE的SGA

    运行时内存池

        指客户端连接后, 所使用的内存, 相当于ORACLE的PGA

    缓冲区

        数据缓冲区

            存放数据和索引的区域, 根据LRU算法进行脏页的刷写

            LRU 链表

                FREE LIST   当前空闲页的数量

                LRU LIST    LRU列表中的数量

                DIRTY LIST  脏页列表的数量, LRU LIST 包含脏页列表

            DM 中存在一个叫做热区的概念, 防止热数据被刷写, 个人理解, 根据LRU算法热数据一般不会被刷写不理解这个存在的意义

            数据缓冲区参数

                MULTI_PAGE_GET_NUM = 1

                    默认DM在读取读取数据时, 只读取当前页的数据, 如果需要其他数据则需要再次读取

                    该参数可以根据配置读取指定相邻页的个数, 从而达到优化,类似于MySQL中的是否读取相邻页的参数

        日志缓冲区

            存储redo日志信息

            RLOG_BUF_SIZE对日志缓冲区大小进行控制

        字典缓冲区

            存储数据库的元数据信息, 采用LRU算法进行淘汰

            DICT_BUF_SIZE,默认的配置大小为5M

        SQL缓冲区

            存储SQL语句执行过程中所需要的内存, 执行计划和结果集缓存

            相当于MySQL的query cache

            USE_PLN_POOL 当指定为非0时,则启动计划重用, 0时禁止

        排序区

            用于进行数据的排序,SORT_BUF_SIZE用于指定排序区的大小, 默认2M

        哈希区

            用于hash连接时, 使用的内存区域, HJ_BUF_SIZE的大小可以指定该区域的内存大小

后台线程

    监听线程   

        用于监听客户端请求, 当有新的连接时, 分配一个线程接收客户端的数据

    工作线程   

        负责将用户输入的SQL, 进行执行并将结果返回客户端

    I/O线程    

        负责从磁盘读写数据到内存, 脏页的刷写   IO_THR_GROUPS用于配置IO线程的个数 DM使用的是aio

    调度线程

        负责处理系统中的定时任务, 调度线程每秒钟轮询一次

        主要负责的任务有以下任务

            1、检查系统级的时间触发器,如果满足触发条件则生成任务加到工作线程的任务队列由工作线程执行;

            2、清理SQL缓存、计划缓存中失效的项,或者超出缓存限制后淘汰不常用的缓存项;

            3、检查数据重演捕获持续时间是否到期,到期则自动停止捕获;

            4、执行动态缓冲区检查。根据需要动态扩展或动态收缩系统缓冲池;

            5、自动执行检查点。为了保证日志的及时刷盘,减少系统故障时恢复时间,根据INI参数设置的自动检查点执行间隔定期执行检查点操作;

            6、会话超时检测。当客户连接设置了连接超时时,定期检测是否超时,如果超时则自动断开连接;

            7、必要时执行数据更新页刷盘;

            8、唤醒等待的工作线程

    日志FLUSH线程

        将日志缓冲区的数据, 写入redo日志

        如果系统配置了实时归档,在FLUSH线程日志刷盘前,会直接将日志通过网络发送到实时备库。如果配置了本地归档,则生成归档任务,通过日志归档线程完成

    归档线程

        将redo日志进行归档

    日志APPLAY线程

        主要用于主备系统中, 相当于MySQL的SQL_THREAD

    定时器线程

        用于定义的定时任务, 每秒检测一次定时器链表

    逻辑日志规定线程

        主要用于复制环境

    MAL系统线程

        DM内部高速通道, 基于TCP/IP 主要用于和其他主机进行通信, 所有高可用环境都会用到

    其他线程

        完成某些特定功能的线程

    线程信息的查看

        V$LATCHES       记录当前正在等待的线程信息

        V$THREADS       记录当前系统中活动线程的信息

        V$WTHRD_HISTORY  记录自系统启动以来,所有活动过线程的相关历史信息。

        V$PROCESS       记录服务器进程信息

​详细内容请参考官方文档:​​https://eco.dameng.com​

更多详情请访问达梦在线服务平台 https://eco.dameng.com/
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
达梦数据库_SQL语言手册.pdf 数据库快照定义语句 数据库快照删除语句 第章数据查询语句和全文检索语句 单表查询 简单查询 带条件查询 集函数 情况表达式 连接查询 子查询 标量子查询 表子查询 派生表子查询 定量比较 带 谓词的子查询 多列表子查询 查询结果的合并 和 子句的使用 子句的使用 子句 选取前儿条数据 选取其屮几条数据 全文检索 层次查询 层次查询子句 层次查询相关伪列 层次查询相关操作符 层次查询相关函数 查看执行计划 第章数据的插入、删除和修改 数据插入语句 数据修改语句 数据删除语句 伪列的使用 和 自增列的使用 自增列定义 属性 第章视图 视图的作用 视图的定义 视图的删除 视图的查询 视图数据的更新 第章嵌入式 前缀和终结符 宿主变量 输入和输出变量 指示符变量 服务器登录与退出 登录服务器 退出服务器 游标的定义与操纵 定义游标语句 打开游标语句 拨动游标语句 关闭游标语句 关于可更新游标 游标定位删除语句 游标定位修改语句 单元组查询语句 动态 立即执行语句 准备语句 执行语句 异常处理 第章函数 数值函数 字符串函数 日期时间函数 空值判断函数 类型转换函数 杂类函数 系统函数 存储加密函数 标记处理函数 备份恢复函数 附加分离数据库 第章一致性和并发性 事务相关语句 事务的开始 事务的结束 保存点相关语句 设置事务隔离级及读写特性 手动上锁语句 第章存储模块 存储模块的定义 存储模块的删除 存储模块的控制语句 语句块 赋值语句 条件语句 循环语句 语句 调用语句 语句 语句 语句 语句 打印语句 存储模块的异常处理 异常变量的说明 异常的抛出 异常处理器 异常处理用法举例 存储模块的语句 游标 动态 游标变量 返回查询结果集 语句应用举例 客户端存储模块 子过程、子函数 子过程 子函数 记录类型 记录类型定义 记录赋值 第章触发器 触发器的定义 触发器类型 触发器激发顺序 新、旧行值的引用 触发器谓词 变异表 设计触发器的原则 触发器的删除 禁止和允许触发器 触发器应用举例 使用触发器实现审计功能 使用触发器维护数据完整性 使用触发器保障数据安全性 使用触发器派生字段值 第章安全管理 创建角色语句 删除角色语句 授权语句数据库权限 授权语句对象权限 授权语句角色权限 回收权限语句数据库权限 回收权限语句对象权限 回收权限语句角色权限 策略与标记管理 创建策略 修改策略 删除策略 安全标记 用户标记设置语句 表标记设置语句 审计设置语句 审计取消语句 审计信息查阅语句 审计分析 创建审计分析规则 删除审计分析规则 加密引擎 创建加密引擎 修改加密引擎 删除加密引擎 第章外部链接 创建外部链接 删除外部链接 使用外部连接进行远程对象操作 第章备份还原 备份数据库 还原数据库 第章包 创建包 创建包规范 创建包主体 删除包 删除包规范 删除包主体 应用实例 第章同义词 创建同义词 删除同义词 附录关键字和保留字 附录 语法描述说明 附录命令参考 附录系统存储过程和函数 附录技术支持 第1章结构化查询语言简介 第章结构化查询语言 简介 结构化查询语言 是在年提出的一种关系数据库语言。 由于语言接近英语的语句结构,方便简洁、使用灵活、功能强人,倍受用户及计算机工业 界的欢迎,被众多计算机公司和数据库厂商所采用,经各公司的不断修改、扩充和完善,语 言最终发展成为关系数据库的标准语言。 的第一个标准是年月由美国国家标准化组织公布的 数据库语言 简称 年国际标准化组织也通过了这一标准。以后通过对 的不断修改和完善,于年第二次公布了标准 年又公布了标准 即 。最新的标准是 (也称 年作为 《信息技术——数据库语言》发布。我国也相继 公布了数据库语言的国家标准。 成为国际标准以后,其影响远远超出了薮据库领域。例如在 软件工程、人工智 能、分布式等领域,人们不仅把作为检索数据的语言规范,而且也把作为检索图形、 图象、声音、文字等信息类型的语言规范。目前,世界上大型的著名数据库管理系统均支持 语言,如 等。在未来相当长的时间里,仍将是数据库领 域以至信息领域中数据处理的主流语言之 由于不同的产品,大都按自己产品的特点对语言进行了扩充,很难完全符合 标准。目前在 市场上已将的符合夲作为衡量产品质量的重要指标,并研制成专门的 测试软件,如 目前, 入门级和过渡级的符合率均达到,并且部分支持 更新的 标准。同时还兼容 和 的部分语言特性。本章主要 介绍系统所支持的语言 语 语言的特点 语言符合结构化査询语言标准,是标准的扩充。它集数据定乂、数据査 询、薮据操纵和数据控制于一体,是一种统一的、综合的关系数据库语言。它功能强大,使用简 单方便、容易为用户掌握 语言具有如下特点: 功能一体化 的功能一体化表现在以下两个方面 支持多媒体数据类型,用户在建表时可直接使用。系统在处理常规数据与 多媒体数据时达到了四个一体化:一体化定义、一体化存储、一体化检索、一体化处理,最大限 度地提高了数据库管理系统处理多媒体的能力和速度; 语言集数据库的定义、査询、更新、控制、维护、恢复、安全等一系列操作于 体,每一项操作都只需一种操作符表示,格式规范,风格一致,简单方便,很容易为用户所掌 握 两种用户接口使用统一语法结构的语言 语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能独立运行于联机交 互方式。作为嵌入式语言, 浯句能够嵌入到和语言程序中,将高级语言也称主 语言灵活的表达能力、强大的计算功能与 语言的数据处理功能相结合,完成各种复杂 的事务处理。而在这两种不同的使用方式中, 语言的语法结构是一致的,从而为用户使 第1章结构化查询语言简介 用提供了极大的方使性和灵活性。 高度非过程化 语言是·种非过程化语言。用户只需指出“做什么”,而不需指出“怎么做”,对数 据存取路径的选择以及 语句功能的实现均由系统自动完成,与用户编制的应用程序与 具体的机器及关系 的实现细节无关,从而方便了用户,提高了应用程序的开发效率,也 增强了数据独立性和应用系统的叮移植性。 面向集合的操作方式 语言采用了集合操作方式。不仅查询结果可以是元组的集合,而且一次插入、删除、 修改操作的对象也可以是元组的集合,相对于面向记录的数据库语言一次只能操作一条记录来 语言的使用简化了用户的处理,提高了应用程序的运行效率 语言简洁,方便易学 语言功能强大,格式规范,表达简洁,接近英语的语法结构,容易为用户所掌握。 保留字与标识符 标识符的语法规则兼容标准 ,标识符分为正规标识符和定界标识符两大类。 正规标识符以字母、、、或汉字开头,后面可以跟随字母、数字、、、或者汉字,正 规标识符的最大长度是个英文字符或个汉字。正规标识符不能是保留字 正规标识符的例子:, 表 定界标识符的标识符体用双引号括起来时,标识符体可以包含任意字符,特别地,其中使用 连续两个双引号转义为一个双引号 定界标识符的例子: 保留字的清单参见附录 语言的功能及语句 语言是一种介于关系代数与关系演算之间的语言,其功能主要包括数据定义、查询 操纵和控制四个方面,通过各种不同的语句米实现。按照所实现的功能, 语句分 为以下几种 数据库、登录、用户、模式、基表、视图、索引、序列、全文索引、存储过程和触发器 的定义和删除语句,登录、基表、视图、仝文索引的修改语句,对象的更名语句; 査询(含全文检索)、插入、删除、修改语句; 数据库安全语句。包括创建角色语句、删除角色语句,授权语句、回收权限语句,修改 登录口令语句,审计设置语句、取消审计设置语句等。 在嵌入方式中,为了协调 语言与主语言不同的数据处理方式 语言引入 了游标的概念。因此在嵌入方式下,除了数据查询语句一次查询一条记录外,还有几种与游标 有关的语句: 游标的定义、打廾、关闭、拨动语句 游标定位方式的数据修改与删除语句。 为了有效维护数据库的完整性和一致性,支持 的并发控制机制 语言提供 了事务的回滚( )与提交( )语句。同时允许选择实施事务级读一致 性,它保证同一事务内的可重复读,为此提供用户多种手动上锁语句,和设置事务隔离级别 第1章结构化查询语言简介 语句 所支持的数据类型 数据类型是可表示值的集。值的逻辑表示是字值。值的物理表示依赖于实现。系统具 有 的绝大部分数据类型,以及部分 和 的数据类型。 常规数据类型 字符数据类型 类型 语法:长度 功能: 数据类型指定定长字符串。在基表中,定义 类型的列时,可以指 定一个不超过的正整数作为字符长度,例如 如果未指定长度,缺省为。 确保存储在该列的所有值都具有这一长度。 数据类型的最大长度由数据库页面大 小决定,字符类型最大长度和页面大小的对应关系请见下表支持按字节存放字符 串 表 数据库页面大 最大长度 类型 语法: 长度 功能:与 相同。 类型 语法: 长度 功能 数据类型指定变长字符串,用法类似 数据类型,可以指定一 个不超过的正整数作为字符长度,例如: 。如果未指定长度,缺省为 在系统中, 数据类型的实际最大长度由数据库页面大小决定,具体最 大长度算法如表 的区别在于前者长度不足时,系统自动填充空 格,而后者只占用实际的字节空间。 表 数据库页面大 实际最大长度 注:这个限制长度只针对建表的情况,在定义变量的时候,可以不受这个限制长度的限 制 数值数据类型

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值