达梦数据库_达梦的数据库什么水平

达梦数据库_达梦的数据库什么水平达梦(DM8)数据库由实例和数据库共同组成。实例由一组正在运行的后台进程及其所fork出的一系列线程和分配内存组成。数据库是由一系列存放在操作系统上的文件组成。体系结构图大致为:本文只要针对体系结构中的实例,也就是达梦(DM8)数据库中内存结构与线程结构进行介绍。1.内存池达梦(DM8)实例内存池包括运行时内存和共享内存池组成,可以通过查询动态视图V$MEM_POOL查看当前数据库系统中所有内存池的状态:1.1共享内存池数据库运行时的主要内存池,由数据库参数文件dm.ini中的参数MEMO

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

达梦(DM8)数据库由实例和数据库共同组成。
实例由一组正在运行的后台进程及其所fork出的一系列线程和分配内存组成。数据库是由一系列存放在操作系统上的文件组成。
体系结构图大致为:
在这里插入图片描述

本文只要针对体系结构中的实例,也就是达梦(DM8)数据库中内存结构与线程结构进行介绍。

1.内存池

达梦(DM8)实例内存池包括运行时内存和共享内存池组成,可以通过查询动态视图V$MEM_POOL查看当前数据库系统中所有内存池的状态:
1.1 共享内存池
数据库运行时的主要内存池,由数据库参数文件dm.ini中的参数MEMORY_POOL决定共享内存池大小(根据服务器系统会有所变化),可根据生产环境需要进行修改,修改后必须重启数据库生效。
在这里插入图片描述

1.1.1 SQL缓冲区,属于共享内存池一部分,是数据库执行SQL语句需要分配的内存,主要用于生成解析SQL语句、缓存重用执行计划以及结果集缓存等。参数CACHE_POOL_SIZE决定缓冲区代销,默认为20M,修改后需重启数据库。

在这里插入图片描述

1.1.2 字典缓冲区,属于共享内存池一部分,有缓存数据字典信息,如模式信息、表信息、列信息、触发器信息等,才去LRU算法加载数据字典,可以加快SQL语句的解析。由参数DICT_BUF_SIZE决定缓冲区大小,默认为5M。修改后需重启数据库。

在这里插入图片描述

1.1.3 数据缓冲区,用于缓存从磁盘读取的数据页。是共享内存池中最重要的内存区域之一。由四种类型的数据缓冲区组成,分别是NORMAL、KEEP、FAST、RECYCLE。
NORMAL缓冲区主要处理没有特殊指定缓冲区的数据页,由参数BUFFER决定大小,默认100M;KEEP缓冲区缓冲需要长期缓存的在内存数据页,由参数KEEP参数决定大小,默认8M;RECYCLE缓冲区主要用户临时表空间数据缓存,由参数RECYCLE决定大小,默认64M;FAST缓冲区根据用户指定的参数FAST_POOL_PAGES大小由系统自动进行管理,默认值为3000,单位是数据页数量(实际参数值根据服务器系统会有所变化)。

在这里插入图片描述

1.1.4 日志缓冲区,用于存放重做日志的内存缓冲区,记录数据库中的改动向量。由参数RLOG_BUF_SIZE决定大小。默认值为1024,单位数据页数量。

在这里插入图片描述

1.1.5 排序区,对数据操作排序时所占用的内存空间,由参数SORT_BUF_SIZE决定大小,默认39M。每次排序操作先申请排序区内存,排序结束后释放内存。

在这里插入图片描述

1.1.6 哈希区,达梦(DM8)为哈希连接设定的虚拟内存缓冲区,但并不是专门创建的特定属于用于哈希连接的内存,只有使用哈希连接时排序的数据量大小达到了哈希缓冲区带下才会使用。
1.1.7 SSD缓冲区,是达梦(DM8)针对内存、机械磁盘、SSD磁盘之间数据分配的缓冲层。

1.2 运行时内存
DM8数据库中一些功能模块运行时属于自己特有的内存池,例如会话内存池一般是在会话连接时分配属于当前会话的内存。

2.线程

达梦(DM8)数据库只有一个进程,但会fork出多个线程来完成数据库中的各项操作,主要线程有:监听线程、IO线程、工作线程、调度线程、日志想成等。通过v p r o c e s s 视 图 查 看 当 前 数 据 库 的 进 程 信 息 。 通 过 v process视图查看当前数据库的进程信息。通过v processvthreads视图查看当前数据库启动的线程及其每个线程的功能描述。

在这里插入图片描述

2.1 监听线程,在服务器上数据库端口循环监听是否有客户端连接请求,每次会生成会话申请交给工作线程进行处理。
2.2 工作线程,DM8数据库核心线程,处理监听线程生成的会话申请以及处理其他数据先关操作类型的任务。每个会话有专门的工作线程处理请求,所以工作线程随着会话连接增加而增加。但当会话连接超出阈值时就不再增加,转而轮询请求加入队列,等待工作线程空闲后再处理。
2.3 IO线程,负责将内存中的脏数据写到磁盘文件中,将数据持久化处理。通常情况有三种情况会触发IO线程:
(1)sql查询的数据页不在缓冲区,需要从磁盘中读取数据页。
(2)缓冲区中数据页满或者数据库关闭会触发IO线程将脏数据页写入磁盘。
(3)生成检查点。
IO线程个数可以通过参数文件dm.ini中的IO_THR_GROUPS进行设置,默认值为2.

2.4 调度线程,数据库中管理所有定时任务或定时电镀任务。每秒轮询一次。

2.5 日志FLUSH线程,负责将内存池中日志缓冲区中的产生的redo log写入磁盘中的联机日志文件中。日志FLUSH线程要先于IO线程,也就是日志写入磁盘在脏数据页写入磁盘之前进行。

2.6 日志归档线程,主要负责将联机日志进行归档操作。

2.7 日志APPLY线程,主要是在数据守护系统中生成的线程,用于备库接收主库的物理redo日志后在备库上将日志重做,并生成自己的日志,保持备库和主库数据的同步一致。

2.8 定时器线程,处理数据库中配置的定时操作,例如备份等,默认是不启动的,触发定时器线程的场景有:
(1)逻辑日志异步归档。
(2)主库发送异步归档日志给备库。
(3)定时作业。

2.9 逻辑日志归档线程、MAL线程及其他线程,

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180132.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CANoe/CANalyzer诊断功能的深入理解以及CAPL诊断编程实现

    CANoe/CANalyzer诊断功能的深入理解以及CAPL诊断编程实现之前和大家分享了CANoe的基础使用(分析、仿真、测试、诊断),这篇文章将继续深入探讨如何使用CANoe/CANalyzer中的诊断功能。诊断用于在将ECU安装到系统之前或之后配置,维护,支持,控制和扩展ECU,例如,一辆车。诊断通常在请求-响应方案中执行:测试仪(客户端)向…

    2022年6月30日
    95
  • java中输出流OutputStream 类应用实例(转)

    java中输出流OutputStream 类应用实例(转)

    2021年9月2日
    79
  • django模型数据类型_盒子模型的基本属性

    django模型数据类型_盒子模型的基本属性模型中常用字段字段说明AutoField一般不需要使用这个类型,自增长类型,数据表的字段类型为整数,长度为11位BigAutoField自增长类型,数据表的字段类型为bigint,长度为2

    2022年7月28日
    8
  • 关于缺陷报告_登录模块缺陷报告

    关于缺陷报告_登录模块缺陷报告基本原则:尽快报告缺陷、有效描述缺陷、报告缺陷时不做任何评价、确保缺陷可以重现软件缺陷是存在于软件之中的那些不希望或不可能接受的偏差软件测试过程管理的理念:尽早测试、全面测试、全过程测试、独立迭代测试 缺陷报告的写作准则书写清晰、完整的缺陷报告是对保证缺陷正确处理的最佳手段。 它也减少了工程师以及其它质量保证人员的后续工作。为了书写更优良的缺陷报告,需要遵守“5

    2022年9月16日
    3
  • 数据恢复案例之Linux服务器数据恢复成功案例

    数据恢复案例之Linux服务器数据恢复成功案例一、服务器数据恢复故障描述介绍数据恢复案例前照例先介绍故障服务器的物理状况。本次数据恢复的服务器是linux操作系统,某品牌730系列服务器,MD3200系列存储。导致数据丢失的原因是机房意外断电导致系统无法正常启动,客户管理员对无法访问的服务器进行了修复操作后进入系统查看数据,服务器部分文件已经丢失。于是客户管理员联系了数据恢复中心进行服务器数据恢复。二、服务器数据恢复故障分析1.备…

    2022年5月9日
    55
  • SEH学习

    SEH学习以前觉得加技术的QQ群作用只有一个:闲聊,浪费时间现在想找5,6个长期有时间学习逆向的朋友,在一个小群里面,有问题互相讨论(只讨论技术上的问题)为了保持群的活跃,有要求如下群成员要求1懂C语言汇编,基础windows知识2懂得最基本的脱壳激活成功教程知识3乐于助人4群成员之间互相认识,了解各自水平有兴趣加我的QQ315,1028,21(逗号是为了避免

    2025年6月13日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号