美文网首页
2. pg进程结构

2. pg进程结构

作者: 善良的良 | 来源:发表于2019-05-06 23:46 被阅读0次

postmaster

所有数据库进程的主进程,守护进程,实际上第一个postgres进程

  • 数据库的启停
  • 监听客户端连接
  • 为每个客户端里连接fork专用的postgres进程
  • postgres进程出错时尝试修复
  • 管理数据文件
  • 管理数据库的辅助进程

postgres

由postmaster fork出的子进程

  • 直接与客户端进程通讯
  • 负责接收客户端的所有请求
  • 包含数据库引擎,负责解析sql和生成执行计划
  • 根据命令调用各种辅助进程和访问各内存结构
  • 负责返回命令执行结果给客户端
  • 在客户端断开连接时释放进程

辅助进程

Backgroup writer

将shared buffer中的脏数据页写到磁盘
使用LRU算法进行清理脏页
平时多在休眠,被激活时工作

Autovacuum launcher/workers

负责回收垃圾数据进程
当参数autovacuum设为on的时候启用自动清理功能
Launcher为清理的守护进程,每次启动的时候会调用一个或多个worker
Worker是负责真正清理工作的进程,由autovacuum_max_workers参数设定其数量

WAL writer

将redo日志写入磁盘文件
触发时机:

  • WAL BUFFER满了
  • 事务commit时
  • WAL writer进程到达间歇时间时;
  • checkpoint发生时

Checkpoint

  • 用于保证数据库的一致性
  • 它会触发bgwriter和wal writer动作
  • 拥有多个参数控制其启动的间隔

Syslogger

记录系统日志

  • logging_collector参数为on时启动,不建议关闭
  • log_directory设定日志目录
  • log_destination设定日志输出方式,甚至格式
  • log_filename设定日志文件名
  • log_truncate_on_rotation设定是否重复循环使用且删除日志
  • log_rotation_age设定循环时间
  • log_rotation_size设定循环的日志尺寸上线

Archiver:

用于将写满的WAL日志文件转移到归档目录,该进程只有在归档模式才会启用

Statistics Collector:

统计信息的收集进程。
收集表和索引的空间信息和元组信息等,甚至是表的访问信息。收集到的信息除了能被优化器使用以外,还有autovaccum也能利用,甚至给数据库管理员作为数据库管理的参考信息

其他
startup -- 主要用于数据库恢复的进程
bgworker -- 分为很多种worker,例如logical replication worker launcher. parallel worker. replication worker等
wal sender -- 逻辑复制、流式物理复制的WAL发送进程
wal receiver -- 逻辑复制、流式物理复制的WAL接收进程
work process -- 工作进程,动态fork,例如并行计算的进程。

相关文章

  • 2. pg进程结构

    postmaster 所有数据库进程的主进程,守护进程,实际上第一个postgres进程 数据库的启停 监听客户端...

  • PostgreSQL体系结构

    概览 PG是一个典型的c/s模型 体系结构=实例+存储结构实例=进程+内存结构 实例结构 PG是多进程的,类似or...

  • PostgreSQL体系架构

    PG的几个主要进程,以及PG的核心架构。进程和体系结构详见下图: 从上面的体系结构图可以看出来,PG使用经典的C/...

  • PG内存结构

    子区域描述work_memExecutor使用此区域按顺序和不同的操作对元组进行排序,并使用merge-join和...

  • Nodejs链接postgresql

    1.安装pg cnpm install pg -g 2.连接pg使用连接池的方式: var pgsql = req...

  • 1.postgresql命令

    1.导出备份数据 2.基础命令 2.1 定时备份pg 3.pg-docker使用 4.复制远程pg数据到本地pg脚...

  • Nginx 的进程结构,你明白吗?

    Nginx 进程结构 这篇文章我们来看下 Nginx 的进程结构,Nginx 其实有两种进程结构: 单进程结构 多...

  • PG体系结构

    创建数据库 PostgreSQL 创建数据库可以用以下三种方式: 1、使用 CREATE DATABASE SQL...

  • PG体系结构

  • PostgreSQL DBA(10) - 统计信息

    本节简单介绍了PostgreSQL数据库中统计信息相关的数据字典表及其结构,包括pg_class、pg_stati...

网友评论

      本文标题:2. pg进程结构

      本文链接:https://www.haomeiwen.com/subject/rkxloqtx.html