前端之家收集整理的这篇文章主要介绍了
PostgreSQL学习第十一篇 进程及内存结构,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Postgresql数据库启动时,会先启动一个叫Postmaster的主进程,还会fork出一些辅助子进程。
SysLogger(系统日志)进程
BgWriter(后台写)进程
WaLWriter(预写式日志)进程
PgArch(归档)进程
AutoVAcuum(系统自动清理)进程
PgStat(统计数据收集)进程
Postgressql数据库的主要功能都集中于postgres程序,这个程序位于安装目录的bin目录下:
[postgres@pg ~]$ which postgres
/Postgresql/9.6.1/bin/postgres
查询pg_stat_activity表时看到的pid,就是服务进程的pid。
SysLogger(系统日志)进程
只有参数logging_collecter(postgresql.conf)设置为on时,主进程才会启动SysLogger辅助进程。
BgWriter(后台写)进程
将共享内存中的脏页写到磁盘上。
WaLWriter(预写式日志)进程
write ahead log的缩写,预写式日志。预写式日志的概念就是在修改数据之前,必须把这些修改操作记录到磁盘中,这样后面更新实际数据时,就不需要实时的把数据持久化到文件中。
wal日志保存在pg_xlog(是个目录,在数据文件路径中)下。
PgArch(归档)进程
WAL日志会被循环使用。PgArch进程会在覆盖前把WAL日志备份出来。PG从8.x开始提供了PITR(Point In Time Recovery)
PgStat(统计数据收集)进程
pg_statistic中存储了PgStat收集的各类统计信息。
9.3以后,Postgresql使用“mmap()”方式的共享内存,好处是不需要配置内核参数kernel.shmmax和kernel.shmall就能使用较大的共享内存。
原文链接:https://www.f2er.com/postgresql/194132.html