[转帖]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' 日志文件目录,默认

[转帖]PostgreSQL(三) 内存参数优化和原理(work_mem)内存表 pgfincore插件使用方法

1.常用内存参数 1.1 shared_buffers shared_buffers是PostgreSQL用于共享缓冲区的内存,是由8kb大小的块所形成的数组。PostgreSQL在进行更新、查询等操作时,首先从磁盘把数据读取到内存,之后进行更新,最后将数据写回磁盘。shared_buffers可以

[转帖]PostgreSQL与MySQL 分析对比

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

[转帖]PostgreSQL的MVCC vs InnoDB的MVCC

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

[转帖]用sysbench进行数据库OLTP基准测试

https://www.cnblogs.com/ariesblog/p/13847740.html 基于TPC-C的OLTP基准测试,对比Mysql和PostgreSQL的性能 一、什么是TPC-C和tpmC 1、TPC-C TPC-C是一种旨在衡量联机事务处理(OLTP)系统性能与可伸缩性的行业标

[转帖]gitlab:一次近乎完美的PostgreSQL版本大升级实践

作者 | Jose Finotto 译者 | 马可薇 策划 | 万佳 2020 年 5 月,我们与 OnGres 合作,对 GitLab 上的 Postgres 集群进行版本大更新,从 9.6 版本升级到 11 版本。升级全部在维护窗口内运行,没有丝毫差错;更新中所有涉及的内容、计划、测试,以及全流

[转帖]KingbaseES不同字符类型比较转换规则

https://www.cnblogs.com/kingbase/p/14798059.html Postgresql 常用的字符数据类型的有char、varchar和text,其中 char 固定长度类型, varchar 和 text 是可变长度类型。这三种类型在进行比较时,会进行隐含的类型转换

[转帖]IvorySQL--Linux环境源码编译安装

https://www.ivorysql.org/zh-CN/blog/IvorySQL-Linux IvorySQL可以在Linux, OSX, Unix和Windows平台上构建,与PostgreSQL的编译安装基本上是一样的。本文对基于Linux的系统上编译源代码的步骤进行说明。 一、准备工作