PostgreSQL学习第十一篇 进程及内存结构

    xiaoxiao2021-03-26  9

    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://ju.6miu.com/read-600148.html

    最新回复(0)