PostgreSQL 进程简介

Pg数据库启动时,会先启动一个叫Postmaster的主进程,然后fork出一些辅助子进程,这些辅助子进程各自负责一部分功能。

主进程Postmaster是整个数据库实例的总控进程,负责启动和关闭数据库实例,事实Postmaster是指向postgre的一个链接:

[highgo@hgdb ~]$ which postmaster
/data/highgo/4.1.1/bin/postmaster

[highgo@hgdb ~]$ which postgres
/data/highgo/4.1.1/bin/postgres

[highgo@hgdb ~]$ ll /data/highgo/4.1.1/bin/postmaster
lrwxrwxrwx. 1 highgo highgo 8 Nov  6 16:25 /data/highgo/4.1.1/bin/postmaster -> postgres



辅助子进程:

① SysLogger(系统日志)进程
SysLogger辅助进程通过从Postmaster进程、所有的服务进程及其他辅助进程收集所有的stderr输出,并将这些输出写入到日志文件中。
	
② BgWriter(后台写)进程
BgWriter辅助进程可周期性的把内存中的脏数据刷新到磁盘中。

③ WalWriter(预写式日志)进程
WalWriter进程就是写WAL日志的进程,在修改数据之前,必须要把这些修改操作记录到磁盘中,这样后面更新实际数据时,就不需要实时的把数据持久化到文件中。

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

⑤ AutoVAcuum(系统自动清理)进程
PG数据库中对表进行delete操作后,旧的数据不会立即被删除,并且更新数据时,也并不会在旧的数据上做更新,而是新生成一行数据,旧的数据被标识为删除状态,在没有并发失误读这些旧数据后,他们被AutoVAcuum进程清除。

⑥ PgStat(统计收集)进程
PgStat辅助进程主要做数据的统计收集工。收集的信息用于查询优化。
By 天蝎座

你可能感兴趣的:(PostgreSQL,Highgo,DB)