PostgreSQL进程

PostgreSQL进程

postmaster:
数据库实例的总控进程,负责启动和关闭该数据库实例。用户可以运行postmaster、postgres命令加上合适的参数启动数据库。实际上postmaster命令是一个指向postgres的链接。
当用户与postgresql数据库建立连接时,实际上是先与postmaster进程建立连接,此时,客户端程序会发出身份验证的消息给postmaster主进程,postmaster主进程根据消息中的信息进行客户端身份验证,
如果验证通过,它会fork出一个子进程来为这个连接服务。fork出的子进程为服务进程。查询pg_stat_activity表时看到的pid就是这些服务进程的PID。

Syslogger(系统日志)进程:
只有在参数logging_collect设置为“on”时,主进程才会启动syslogger辅助进程。syslogger辅助进程通过从postmaster进程、所有的服务进程及其他辅助进程收集所有的stderr输出,并将这些输出写入到日志文件中。
在postgresql.conf配置文件中设置了日志文件大小和存在时间,当一个日志文件达到配置中的大小或其他条件时,syslogger就会关闭旧的日志文件,并创建一个新的日志文件,如果收到装载配置文件的信息(SIGHUP),
就会检查配置文件中的配置参数“log_directory”和“log_filename”是否与当前的相同,如果不相同,则会切换日志文件并使用新的配置。

bgwriter(后台写)进程:
bgwriter辅助进程是把共享内存中的脏页写到磁盘上的进程,当往数据库中插入或更新数据时,并不会马上就把数据持久化到数据文件中,bgwriter辅助进程可周期性的把内存中的脏数据刷新到磁盘中,
刷脏数据的频率不能太快,也不能太慢。这些机制由“bgwriter_”开头的配置参数控制。

walwriter(预写式日志写)进程
wal是writer ahead log的缩写,中文称之为预写式日志。wal log也被简称为xlog。walwriter进程就是写wal日志的进程,预写式日志的概念就是在修改数据之前,必须要把这些修改操作记录在磁盘中,这样后面实际更新数
据时,就不需要实时地把数据持久化到文件中,即使机器突然宕机或数据库异常退出,导致一部分内存中的脏数据没有及时地刷新到文件中,在数据库重启后,通过读取wal日志,并把最后一部分的wal日志重新执行一遍,就可
以恢复到宕机时的状态。

pgarch(归档)进程
wal日志会被循环使用,也就是说,较早时间的wal日志会被覆盖,pgarch进程会在覆盖前把wal日志备份出来。

autovacuum(自动清理)进程
在PG数据库中,对表进行DELETE操作后,旧的数据并不会立即被删除。并且,在更新数据时,也不会在旧的数据上做更新,而是生成一行数据。此时旧数据只是被标识未删除状态,只有在没有并发的其他事务读到这些旧数据时,
它们才会被删除,这个清除工作就是由autovacuum进程来完成的。

pgstat(统计数据收集)进程
pgstat辅助进程主要做数据的统计收集工作,收集的信息主要用于查询优化的代价估算,这些信息包含在一个表和索引上进行了多少次插入、更新、删除操作,磁盘块读写的次数,以及行的读次数。系统表pg_statistic中
存储了pgstat收集的各类统计信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值