达梦体系结构:进程架构

达梦体系结构:进程架构

  • 进程结构
    • 监听线程
    • 会话线程
    • 工作线程
    • IO线程
    • 日志刷盘线程
    • 日志归档线程
    • 日志重做线程
    • 调度线程
    • 检查点线程

达梦数据库由数据库实例构成:

  • 数据库是指磁盘上存放的数据库文件的集合,包括参数文件、控制文件、数据文件、日志文件等。
  • 实例是指一组运行的数据库进程/线程以及一块大型的共享内存。

进程结构

与Oracle多进程架构不同,达梦数据库采用的是单进程多线程的架构。

查看数据库进程:

[dmdba@localhost ~]$ ps -ef | grep dmserver
dmdba       1677       1  2 20:48 ?        00:00:02 /dm8/bin/dmserver path=/dm8/data/DAMENG/dm.ini -noconsole
dmdba       3349    3301  0 20:49 pts/1    00:00:00 grep dmserver[dmdba@localhost ~]$ ps -Tp 1677PID    SPID TTY          TIME CMD1677    1677 ?        00:00:02 dmserver1677    1776 ?        00:00:00 dm_sqllog_thd1677    1787 ?        00:00:00 dm_dpc_pthd1677    1788 ?        00:00:00 dm_dpc_pthd1677    1789 ?        00:00:00 dm_dpc_pthd1677    1790 ?        00:00:00 dm_dpc_pthd1677    1791 ?        00:00:00 dm_dpc_pthd1677    1792 ?        00:00:00 dm_dpc_pthd1677    1797 ?        00:00:00 dm_dpc_pthd1677    1798 ?        00:00:00 dm_dpc_pthd1677    1799 ?        00:00:00 dm_dpc_pthd1677    1800 ?        00:00:00 dm_dpc_pthd1677    1801 ?        00:00:00 dm_dpc_pthd1677    1802 ?        00:00:00 dm_dpc_pthd1677    1803 ?        00:00:00 dm_dpc_pthd1677    1807 ?        00:00:00 dm_dpc_pthd1677    1808 ?        00:00:00 dm_dpc_pthd1677    1809 ?        00:00:00 dm_dpc_pthd1677    2113 ?        00:00:00 dm_quit_thd1677    2133 ?        00:00:00 dm_io_thd1677    2134 ?        00:00:00 dm_io_thd1677    2135 ?        00:00:00 dm_io_thd1677    2136 ?        00:00:00 dm_io_thd1677    2137 ?        00:00:00 dm_io_thd1677    2138 ?        00:00:00 dm_io_thd1677    2139 ?        00:00:00 dm_io_thd1677    2140 ?        00:00:00 dm_io_thd1677    2141 ?        00:00:00 dm_io_thd1677    2142 ?        00:00:00 dm_io_thd1677    2143 ?        00:00:00 dm_io_thd1677    2144 ?        00:00:00 dm_io_thd1677    2145 ?        00:00:00 dm_io_thd1677    2146 ?        00:00:00 dm_io_thd1677    2147 ?        00:00:00 dm_io_thd1677    2148 ?        00:00:00 dm_io_thd1677    2153 ?        00:00:00 dmserver1677    2213 ?        00:00:00 dm_rsyswrk_thd1677    2214 ?        00:00:00 dm_rsyswrk_thd1677    2215 ?        00:00:00 dm_hio_thd1677    2216 ?        00:00:00 dm_hio_thd1677    2217 ?        00:00:00 dm_hio_thd1677    2218 ?        00:00:00 dm_hio_thd1677    2221 ?        00:00:00 dm_chkpnt_thd1677    2222 ?        00:00:00 dm_redolog_thd1677    2225 ?        00:00:00 dm_tskwrk_thd1677    2226 ?        00:00:00 dm_tskwrk_thd1677    2227 ?        00:00:00 dm_tskwrk_thd1677    2228 ?        00:00:00 dm_tskwrk_thd1677    2229 ?        00:00:00 dm_tskwrk_thd1677    2230 ?        00:00:00 dm_tskwrk_thd1677    2231 ?        00:00:00 dm_tskwrk_thd1677    2232 ?        00:00:00 dm_tskwrk_thd1677    2233 ?        00:00:00 dm_tskwrk_thd1677    2234 ?        00:00:00 dm_tskwrk_thd1677    2235 ?        00:00:00 dm_tskwrk_thd1677    2236 ?        00:00:00 dm_tskwrk_thd1677    2237 ?        00:00:00 dm_tskwrk_thd1677    2238 ?        00:00:00 dm_tskwrk_thd1677    2239 ?        00:00:00 dm_tskwrk_thd1677    2240 ?        00:00:00 dm_tskwrk_thd1677    2241 ?        00:00:00 dm_sqllog_thd1677    2242 ?        00:00:00 dm_sql_aux_thd1677    2243 ?        00:00:00 dm_purge_thd1677    2244 ?        00:00:00 dmserver1677    2245 ?        00:00:00 dm_trctsk_thd1677    2246 ?        00:00:00 dm_wrkgrp_thd1677    2247 ?        00:00:00 dm_wrkgrp_thd1677    2248 ?        00:00:00 dm_wrkgrp_thd1677    2249 ?        00:00:00 dm_wrkgrp_thd1677    2250 ?        00:00:00 dm_wrkgrp_thd1677    2251 ?        00:00:00 dm_wrkgrp_thd1677    2252 ?        00:00:00 dm_wrkgrp_thd1677    2253 ?        00:00:00 dm_wrkgrp_thd1677    2254 ?        00:00:00 dm_wrkgrp_thd1677    2255 ?        00:00:00 dm_wrkgrp_thd1677    2256 ?        00:00:00 dm_wrkgrp_thd1677    2257 ?        00:00:00 dm_wrkgrp_thd1677    2258 ?        00:00:00 dm_wrkgrp_thd1677    2259 ?        00:00:00 dm_wrkgrp_thd1677    2260 ?        00:00:00 dm_wrkgrp_thd1677    2261 ?        00:00:00 dm_wrkgrp_thd1677    2262 ?        00:00:00 dm_audit_thd1677    2263 ?        00:00:00 dm_audit_thd1677    2264 ?        00:00:00 dm_sched_thd1677    2265 ?        00:00:00 dm_lsnr_thd1677    3481 ?        00:00:00 dm_sql_thd

查看数据库进程资源消耗:

top -Hp 1677

与数据库进程相关的视图:

select * from v$process;select * from v$threads;

监听线程

监听进程对应的是 dm_lsnr_thd。监听进程用于在服务器端口上进行循环监听,一旦收到来自客户端的连接请求,监听进程被唤醒并生成一个会话进程,将申请的任务加入工作线程的任务队列,等待工作线程进行处理。

会话线程

会话线程对应的是 dm_sql_thd。每个会话对应一个会话线程。当数据库连接会话较多时,会话线程的数量也会很多。

会话对应的线程ID可以在视图V$SESSIONS中查到。

select sess_id,thrd_id,trx_id,sql_id,state from v$sessions;

工作线程

工作线程对应的是 dm_tskwrk_thddm_wrkgrp_thd。工作线程是达梦的核心线程,默认有16个工作线程。

IO线程

IO线程对应的是 dm_io_thd。主要用于以下三种场景:

  • 需要访问的数据页不在内存中时,通过物理读将磁盘中的数据页读到内存中。
  • 缓冲区满或者数据库关闭时,将内存中的脏数据刷到磁盘中。
  • 执行检查点时,将内存中所有脏数据落盘。

日志刷盘线程

对应的进程是 dm_redolog_thd。负责日志刷盘。主要用于在事务提交或者检查点时将日志缓冲区中的REDO日志写入到磁盘中的日志文件中。

日志归档线程

对应的进程是 dm_rsyswrk_thd。用于REDO日志的归档。

日志重做线程

主要用于数据库恢复,日志重做线程会根据REDO日志进行并行的故障恢复。

调度线程

对应的进程是 dm_sched_thd。用于定时调度任务。包括但不限于以下场景:

  • 检查系统级的事件触发器;
  • 清理SQL缓存、计划缓存中的失效项,或者超出缓存限制后淘汰不常用的缓存项;
  • 动态缓冲区检查。根据需要动态扩展或收缩系统缓冲池;
  • 自动执行检查点;
  • 会话超时检测;
  • 必要时执行数据更新页刷盘;
  • 唤醒等待的工作线程。

检查点线程

对应的进程是 dm_chkpnt_thd。负责CHECKPOINT检查点操作。检查点时,IO线程会将脏数据页刷到磁盘数据文件中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/795058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ObjectiveC-10-OOP面向对象程序设计-分类/类别

类别(Category)是OjectiveC的一个特性,主要目的是让开发者可以以模块的形式向类添加方法(扩展),创建标准化的方法列表供给其他人实现。 有些文档也会翻译成类别,其实是一个意思。 概述 语法说明 类别提供了一个简单的…

Codeforces Round 933 (Div. 3)G. Rudolf and Subway 虚点辅佐的dijkstra,用的链式前向星

Problem - G - Codeforces 推荐视频题解:G_哔哩哔哩_bilibili 思路: 先不管同一个线路上的,就正常建边,这样点距都是1. 然后虚点就是该线路的每个点都连的点。 到虚点的边权是1,表示我们坐这趟线路。 然后这个虚点…

C语言中strlen函数的实现

C语言中strlen函数的实现 为了便于和strlen函数区别,以下命令为_strlen。 描述:实现strlen,获取字符串的长度,函数原型如下: size_t strlen(const char *str);_strlen实现: size_t _strlen(const char*…

在flutter中添加video_player【视频播放插件】

添加插件依赖 dependencies:video_player: ^2.8.3插件的用途 在Flutter框架中,video_player 插件是一个专门用于播放视频的插件。它允许开发者在Flutter应用中嵌入视频播放器,并提供了一系列功能来控制和定制视频播放体验。这个插件对于需要在应用中展…

Django - 视图和模板

视图 视图 - 是具体的业务代码 在 app 下的 views.py 文件中编写代码 from django.http import HttpResponsedef index(request):return HttpResponse("这里是我的站点")为了调用该视图,我们还需要编写urlconf,也就是路由配置。在polls目录中…

Vite 项目中环境变量的配置和使用

Vite 项目中环境变量的声明 我们要在 Vite 项目中进行环境变量的声明,那么需要在项目的根目录下,新建 .env.[mode] 文件用于声明环境变量,如: .env.test 文件用于测试环境下项目全局变量的声明.env.dev 文件用于开发环境下项目全…

Scikit-Learn K均值聚类

Scikit-Learn K均值聚类 1、K均值聚类1.1、K均值聚类及原理1.2、K均值聚类的优缺点1.3、聚类与分类的区别2、Scikit-Learn K均值聚类2.1、Scikit-Learn K均值聚类API2.2、K均值聚类初体验2.3、K均值聚类案例1、K均值聚类 K-均值(K-Means)是一种聚类算法,属于无监督学习。K-M…

OpenFOAM学习笔记

OpenFOAM 计算流体力学:用计算机求解流体控制方程,来模拟真实情况下,流体的流动状态OpenFOAM的离散方法:有限体积法,将整个空间划分成若干个控制体OpenFOAM使用的网格系统:同位网格(Collocated…

nvm保姆级安装使用教程

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 开发环境篇 ✨特色专栏: M…

python相机校准

文章目录 张正友标定法角点检测标定去畸变 张正友标定法 相片是三维世界在二维平面上的投射,故而其深度信息是损失掉了的。但是,如果把拍照看作理想的小孔成像过程,那么相片中的每个像素,都将通过一个锥体与世界中真实的点一一对…

MongoDB聚合运算符:$median

文章目录 语法参数字段使用类型操作计算注意事项数组处理窗口函数 举例$median作为累加器在 p r o j e c t 阶段使用 project阶段使用 project阶段使用median在$setWindowField阶段使用$median $median聚合运算符以标量值返回中位数的近似值,即第50百分位数。$media…

常见的常见免费开源绘图工具对比 draw.io/Excalidraw/Lucidchart/yEd Graph Editor/Dia/

拓展阅读 常见免费开源绘图工具 OmniGraffle 创建精确、美观图形的工具 UML-架构图入门介绍 starUML UML 绘制工具 starUML 入门介绍 PlantUML 是绘制 uml 的一个开源项目 UML 等常见图绘制工具 绘图工具 draw.io / diagrams.net 免费在线图表编辑器 绘图工具 excalidr…

spa、vue、elementUi

spa (single page application). 动态重写当前页面而非从服务器重新加载整个新页面。使应用程序更像一个桌面应用程序。所有的html、javascript、css通过单个页面检索加载资源。前端页面使用ajax与后端通信。一个项目只有一个html页面。所有的页面跳转都通过路由导航。 vue可用…

【OpenCV进阶】图像中添加中文字幕

OpenCV中的putText函数可以在图像上添加一些你想要的信息,但是该函数只能添加英文字母或数字,无法添加中文字幕。函数原型如下: CV_EXPORTS_W void putText( InputOutputArray img, const String& text, Point org,int fontFace, double…

XSS分类

简介 XSS全称为Cross Site Scripting,为了和CSS分开简写为XSS,中文名为跨站脚本。该漏洞发生在用户端,是指在渲染过程中发生了不在预期过程中的JavaScript代码执行。XSS通常被用于获取Cookie、以受攻击者的身份进行操作等行为。 反射型XSS …

云数据库AWS Aurora(一)

背景 Amazon Aurora 是Amazon Web Services (AWS) 提供的一种关系数据库服务,它兼容并提供与MySQL和PostgreSQL相同的API。Aurora设计为云环境中的商业数据库,具备高性能、高可用性、低成本等特性。 AWS一些组件定义 首先介绍下AWS一些组件。 EC2&am…

Swift:在 Win10 上编程入门

访问 https://swift.org/download/ 找到 Windows 10:x86_64 下载 swift-5.10-RELEASE-windows10.exe 大约490MB 建议安装在 D:\Swift\ ,安装后大约占2.56GB 官网文档:https://www.swift.org/documentation/ 中文教程:The swift…

C++之双向链表与哈希链表用法区别实例(二百六十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

Unity常用性能优化

DrawCall:CPU向GPU发送渲染命令的过程。 批次:批次是指在一次渲染帧中提交的DrawCall数量。 合批:即批量渲染,合批是一种优化技术,通过将多个需要渲染的物体合并为一个或少数几个DrawCall。 静态合批:对…

Streamlit 构建大语言模型 (LLM) web 界面

文章目录 Streamlit 构建大语言模型 (LLM) web 界面选择Streamlit的原因原理流程streamlit布局示例代码聊天机器人示例代码(简化版) Streamlit在ChatGLM3-6B中的应用 Streamlit 构建大语言模型 (LLM) web 界面 选择Streamlit的原因 易用性:S…