[转帖]PostgreSQL进程结构

postgresql,进程,结构 · 浏览次数 : 0

小编点评

**1.简介** 本文简要介绍了 PostgreSQL 的主要进程类型与功能。 **2.PostgreSQL进程类型** **2.1 主进程** * 全数据库实例的总控进程 * 启动关闭该数据实例 **2.2 辅助进程** * SysLogger(系统日志)进程 * 将脏页写到磁盘上的进程 * 主要用于提高插入、更新和删除数据的性能 * BgWriter(后台写)进程 * 把共享内存中的脏页写到磁盘上的进程 * WALWrite(预写式日志)进程 * Write Ahead Log (预写式日志),在修改数据之前把修改操作记录到磁盘中 * PgArch(归档)进程 * WAL日志会被循环使用,PGArch在归档前会把WAL日志备份出来 * AutoVacuum(系统自动清理)进程 * 在DELETE操作后,旧数据并不会立即被删除,而是被自动清理 * Pgstat(统计收集)进程 * 做数据的统计收集工作 * CheckPoint(检查点)进程 * checkpoint又名检查点,一般checkpoint会将某个时间点之前的脏数据全本刷新到磁盘,以实现数据的一致性与完整性 **3.辅助进程概括** * SysLogger:系统日志进程 * BgWriter:后台写进程 * WALWrite:预写式日志进程 * PgArch:归档进程 * AutoVacuum:系统自动清理进程 * Pgstat:统计收集进程 * CheckPoint:检查点进程

正文

http://www.pgsql.tech/article_101_10000099

1、简介

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

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

2.1、主进程:
PostMaster进程是整个数据库实例的总控进程,负责启动关闭该数据实例。
2.2、辅助进程:
SysLogger(系统日志)进程
BgWriter(后台写)进程
WALWrite(预写式日志)进程
PgArch(归档)进程
AutoVacuum(系统自动清理)进程
Pgstat(统计收集)进程
CheckPoint(检查点)进程

3、辅助进程概括

SysLogger(系统日志)进程
需要在Postgres.conf 中 logging_collection设置为on,此使主进程才会启动Syslogger辅助进程。

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

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

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

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

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

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

文章知识点与官方知识档案匹配,可进一步学习相关知识
PostgreSQL技能树基本结构4111 人正在系统学习中

与[转帖]PostgreSQL进程结构相似的内容:

[转帖]PostgreSQL进程结构

http://www.pgsql.tech/article_101_10000099 1、简介 本文简单的介绍了 PostgreSQL 的主要进程类型与功能。 2、PostgreSQL进程分为主进程与辅助进程。 2.1、主进程: PostMaster进程是整个数据库实例的总控进程,负责启动关闭该数据

[转帖]postgresql日志参数

https://www.jianshu.com/p/407c03aaa600 postgresql日志参数 logging_collector:这个参数启用日志收集器,它是一个捕捉被发送到stderr的日志消息的后台进程,并且它会将这些消息重定向到日志文件中;默认是OFF,修改参数需要重启。 log

[转帖]PostgreSQL 日志参数解释 常用环境日志参数配置

1.常用日志参数 logging_collector = on/off 是否将日志重定向至文件中,默认是off(该配置修改后,需要重启DB服务),启动之后查看进程ps -ef|grep postgres,会多一个logger进程。 log_directory = 'pg_log' 日志文件目录,默认

[转帖]Barman安装及备份PostgreSQL

barman特点 零数据丢失备份。保证用户在只有一台备份服务器的情况下达到零数据丢失。 与备份服务器合作。允许备份服务器在与主服务器的流式复制不可用时,从barman获取wal文件。 可靠的监控集成。用于监控和创建有关Barman配置状态的报告。 可并行的备份和恢复。以更快的速度执行拷贝,加快了整个

[转帖]postgresql 编译选项 --with-uuid=e2fs、--with-uuid=ossp 的理解

postgresql 的 rpm 包使用的是 ‘–with-uuid=e2fs’ postgresql 源码 configure 的帮助选项有 uuid 的几个选项,有啥区别? # ./configure --help --with-uuid=LIB build contrib/uuid-ossp

[转帖]postgresql 的 pg_hba.conf 的行记录顺序

postgresql: 9.6 一直觉得 pg_hba.conf 的行记录与顺序无关,遵循细化优先的规则。今天在回顾 pg_hba.conf 文档时发现这种认识是错的。 下面这段话是从文档拷贝过来的: 因为每一次连接尝试都会顺序地检查pg_hba.conf记录,所以这些记录的顺序是非常关键的。通常,

[转帖]postgresql 的 .pgpass密码文件的使用

.pgpass 是 连接 postgresql 时使用的密码文件,通常位置为 ~/.pgpass。 在使用某些组件时还真的必须使用。具体的格式为: hostname:port:database:username:password 常见的使用如下: # su - postgres $ vi ~/.pg

[转帖]PostgreSQL与MySQL 分析对比

http://www.pgsql.tech/article_101_10000079 概述 在几个流行的数据库中,我首先接触到的是MySQL,随着工作发展,接触到越来越多的是PostgreSQL数据库。这两个十分流行的开源数据库。在这之后,我就会经常和一些朋友进行讨论:MySQL和PostgreSQ

[转帖]PostgreSQL的MVCC vs InnoDB的MVCC

任何一个数据库最主要功能之一是可扩展。如果不删除彼此,则尽可能较少锁竞争从而达到这个目的。由于read、write、update、delete是数据库中最主要且频繁进行的操作,所以并发执行这些操作时不被阻塞则显得非常重要。为了达到这种目的,大部分数据库使用多版本并发控制(Multi-Version

[转帖]PostgreSQL中切换WAL是否会触发checkpoint

https://www.modb.pro/db/570143?utm_source=index_ori 内容概述 Oracle数据库中切换redo日志会触发检查点事件,那么在PostgreSQL中是否也会触发checkpoint事件呢? Oracle中测试 [oracle@orcldb ~]$ sq