1、简介

本文简单的介绍了 PostgreSQL 的主要进程类型与功能。

2、PostgreSQL进程分为主进程与辅助进程。

2.1、主进程:

  1. PostMaster进程是整个数据库实例的总控进程,负责启动关闭该数据实例。

2.2、辅助进程:

  1. SysLogger(系统日志)进程
  2. BgWriter(后台写)进程
  3. WALWrite(预写式日志)进程
  4. PgArch(归档)进程
  5. AutoVacuum(系统自动清理)进程
  6. Pgstat(统计收集)进程
  7. CheckPoint(检查点)进程

3、辅助进程概括

SysLogger(系统日志)进程

  1. 需要在Postgres.conf logging_collection设置为on,此使主进程才会启动Syslogger辅助进程。

BgWriter(后台写)进程

  1. 把共享内存中的脏页写到磁盘上的进程。主要是为了提高插入、更新和删除数据的性能。

WALWrite(预写式日志)进程

  1. Write Ahead Log (预写式日志),在修改数据之前把修改操作记录到磁盘中,以便后面更新实时数据时不需要数据持久化到文件中。

PgArch(归档)进程

  1. WAL日志会被循环使用,PgArch在归档前会把WAL日志备份出来。通过PITY (Pointin Time Recovery)技术,可以对数据库进行一次全量备份后,该技术将备份时间点之后的WAL日志通过归档进行备份,使用数据库的全量备份再加上后面产生的WAL日志,即可把数据库向前推到全量备份后的任意一个时间点。

AutoVacuum(系统自动清理)进程

  1. PostgreSQL数据库中,对表进行DELETE操作后,旧的数据并不会立即被删除,并且,在更新数据时,也并不会在旧的数据上做更新,而是新生成一行数据。
  2. 旧的数据只是被标识为删除状态,只有在没有并发的其他事务读到这些旧数据时,他们才会被清除。这个清除工作就由AutoVacuum进程完成。

Pgstat(统计收集)进程

  1. 做数据的统计收集工作。主要用于查询优化时的代价估算,包括一个表和索引进行了多少次的插入、更新、删除操作。磁盘块读写的次数、行的读次数。pg_statistic中存储了PgStat收集的各类信息。

CheckPoint(检查点)进程

  1. checkpoint又名检查点,一般checkpoint会将某个时间点之前的脏数据全本刷新到磁盘,以实现数据的一致性与完整性。目前各个流行的关系型数据库都具备checkpoint功能,其主要目的是为了缩短崩溃恢复时间,以Oracle为例,在进行数据恢复时,会以最近的Checkpoint为参考点执行事务前滚。而在WAL机制的浅析中,也提过PostgreSQL在崩溃恢复时会以最近的Checkpoint为基础,不断应用之后的WAL日志。
0 评论  
添加一条新评论