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就能使用较大的共享内存。总结
以上是内存溢出为你收集整理的PostgreSQL学习第十一篇 进程及内存结构全部内容,希望文章能够帮你解决PostgreSQL学习第十一篇 进程及内存结构所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)