暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

PG体系架构之进程解读

原创 IT邦德 2021-11-09
2385
作者:IT邦德

中国DBA联盟(ACDU)成员,目前从事DBA及程序编程(Web\java\Python)工作,主要服务于生产制造
现拥有 Oracle 11g  OCP/OCM、Mysql、Oceanbase(OBCA)认证
分布式TBase\TDSQL数据库、国产达梦数据库以及红帽子认证
从业8年DBA工作,在数据库领域有丰富的经验
B站主播Oracle、Mysql、PG实战课程,请搜索:jeames007

微信:jem_db
QQ交流群:168797397
更多内容请关注B站(搜索jeames007)

1 概述

PG是关系型的数据库,是多进程架构,运行在单个主机上

a.postgres服务器进程:主服务进程,管理所有的进程
b.backend进程:此进程处理由客户端发起的所有查询
c.background进程:不同的background,处理不同的逻辑
d.walwriter:写在线日志
e.logger:告警日志
f.checkpointer:检查点进程

image.png

image.png

这张图显示了一个PostgreSQL服务器的进程:一个postgres服务器进程,
两个backend进程,七个background进程和两个客户端进程。
还演示了数据库集群、共享内存和两个客户机进程。

2 服务器主进程

管理所有的子进程,同时负责数据的开和关闭
pg_ctl start
pg_ctl status
pg_ctl stop

3.backend进程

此进程处理由客户端发起的所有查询
多个客户端同时访问的时候,并发连接的数(100),max_connections
频繁的连接,会对数据库产生负面的性能影响,解决此问题
一般使用池的中间(pgpool-ll、pgbouncer)

4.background writer

后台写进程
把内存当中的数据写到磁盘,主要是提高DML操作的一些性能,
减少频繁访问磁盘,频率高

5.checkpointer

更新检查点信息,更新控制文件,督促background writer落盘,频率低
特定节点时间内,创建了数据库恢复用的检查点

6.walwriter

在线日志进程
内存中修改的数据,先写到在线日志,后面再落盘

7.archiver

归档进程
在线日志循坏写,存在覆盖的情况,此时会把WAL日志归档,
后期可以使用归档进行数据库的恢复
jmedb=# show archive_mode;
archive_mode 
--------------
 off
(1 row)
jmedb=# alter system set archive_mode='on'; 

image.png

8.autovacuum launcher

系统自动清理进程
删除的数据,继续保留,同时标记了一个状态,
此时如果没有其他事务再去访问的时候,此时会清理这些旧的数据

9.stats collector

收集统计信息
可以对数据做自动的收集统计信息,用于后期查询优化时的代价估算(cost)
select * from pg_statistic

10.logger

后台写告警日志,默认是开启的
配置文件中去配置 
more $PGDATA/postgresql.conf

logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = on

本次分享到此结束啦~

如果觉得文章对你有帮助,点赞、收藏、关注、评论
你的支持就是我创作最大的动力。

❤️ 技术交流可以 关注公众号:IT邦德 ❤️

微信:jem_db
QQ交流群:168797397
更多内容请关注B站看直播(搜索jeames007)

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论