文章目录
一、 监听线程
二、工作线程
三、IO 线程
四、调度线程
五、日志 FLUSH 线程
六、日志归档线程
七、日志 APPLY 线程
八、定时器线程
九、逻辑日志归档线程
十、 MAL 系统相关线程
十一、 其他线程
十二、线程信息的查看
一、 监听线程
注意:监听线程比普通线程的优先级更高 DN服务器所有配置端口端口范围:[1024,65534] 主要工作: 在服务器端口上进行循环监听,一旦有来自客户的连接请求,监听线程被唤醒并生成一个会话申请任务,加入工作线程的任务队列,等待工作线程进行处理。
二、工作线程
为DM服务器核心线程,从任务队列取出任务,并更具任务的类型进行相应处理,负责所有实际的数据相关操作
三、IO 线程
工作任务: 1、需要处理的数据页不在缓冲区中,此时需要将相关数据页读入缓冲区; 2、缓冲区满或系统关闭时,此时需要将部分脏数据页写入磁盘; 3、检查点到来时,需要将所有脏数据页写入磁盘。
四、调度线程
1、检查系统级的时间触发器,如果满足触发条件则生成任务加到工作线程的任务队列由工作线程执行;
2、清理 SQL 缓存、计划缓存中失效的项,或者超出缓存限制后淘汰不常用的缓存项;
3、执行动态缓冲区检查。根据需要动态扩展或动态收缩系统缓冲池;
4、自动执行检查点。为了保证日志的及时刷盘,减少系统故障时恢复时间,根据 INI 参数设置的自动检查点执行间隔定期执行检查点操作;
5、会话超时检测。当客户连接设置了连接超时时,定期检测是否超时,如果超时则自动断开连接;
6、必要时执行数据更新页刷盘;
7、唤醒等待的工作线程。
五、日志 FLUSH 线程
日志FLUSH线程和IO线程分开,更快响应,保证性能 为了保证数据故障恢复的一致性,REDO 日志的刷盘必须在数据页刷盘之前进行,当事务提交或执行检查点时,会同志FLUSH线程进行日志刷盘 FLUSH线程在刷盘之前对不同缓冲区内的日志进行合并,减少了IO次数,进一步提高了性能。
六、日志归档线程
日志归档线程和日志FLUSH线程分开,减少不必要的效率损失 远程实时归档、本地归档、远程异步归档都可以脱离FLUSH线程来做
七、日志 APPLY 线程
在配置了数据守护的系统中,创建了一个日志APPLY线程 备库每次接受到主库的物理REDO日志生成一个APPLY任务加入到自己的任务队列 APPLY线程从任务队列中取出一个任务在备库上重做生成自己的日志。
八、定时器线程
DM需要定时操作的事件主要有: 逻辑日志异步归档; 异步归档日志发送(只有在 PRIMARY 模式下,且是 OPEN 状态下); 作业调度。 定时器线程需要设置dm.ini文件钟的TIME_INI参数为1来设置
九、逻辑日志归档线程
包含本地逻辑日志归档线程、远程逻辑日志归档线程
十、 MAL 系统相关线程(TCP/IP协议实现)
服务器的很多重要功能都是通过 MAL 系统实现通信的,例如数据守护、数据复制、MPP、远程日志归档等。MAL 系统内部包含一系列线程,有 MAL 监听线程、MAL 发送工作线程、MAL 接收工作线程等。
十一、 其他线程
回滚段清理PURGE线程
十二、线程信息的查看(动态性能视图)
名称 | 说明 |
V$LATCHES | 记录当前正在等待的线程信息 |
V$THREADS | 记录当前系统中活动线程的信息 |
V$PROCESS | 记录服务器进程信息 |
想了解更多相关内容请移步达梦数据库官方地址: https://eco.dameng.com