作者: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:检查点进程


这张图显示了一个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';

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




