【PostgreSQL】关于进程配置
一开始
通过了解PostgreSQL的进程,您将能够理解它内部发生的情况。这包括查询处理、缓冲区管理、写入控制以及统计信息收集等方面。让我们立即加深理解。
从这篇文章中我们可以了解到什么
閱讀完本文將帶來以下幾個好處。
-
- PostgreSQLのプロセス構成の理解が深まる
- PostgreSQLが好きになる。
过程结构

每个过程的详细信息如下所示。
プロセス名説明マスタサーバプロセス最初に起動される親プロセスライタプロセス共有バッファのデータをデータファイルに書き出すWALライタプロセスWALをディスクに書き出すプロセス。WALバッファに書き込まれたWALをWALファイルに書き出すチェックポインタプロセスチェックポイントを設定に従い、自動的に実行するプロセス自動VACUUMランチャ設定に従って自動バキュームワーカを起動する自動VACUUMワーカ設定に従って自動バキューム処理を行うプロセス統計情報コレクタプロセスデータベースの活動状況に関する稼働統計情報を一定感覚で収集するプロセスバックエンドプロセスクライアントから接続要求を受けたときに生成されるプロセスパラレルワーカプロセスパラレルクエリが実行される際に、バックエンドプロセスから起動されるプロセスロガーPostgreSQLのログをファイルへ書き出すWALセンダレプリケーション時にWALをスレーブサーバに転送するWALレシーバレプリケーション時にWALをマスタプロセスから受信するバックグラウンドワーカロジカルレプリケーション用のワーカ。
进程的运行方式
在了解每个过程之后,我们接下来要深入理解这些过程的运动方式。
在启动PostgreSQL服务器时
-
- PostgreSQL(主服务器)启动后,会派生以下子进程:
-
- a. WAL写入器
-
- b. 写入器
-
- c. 检查点进程
-
- d. 统计信息收集器
- e. 自动清理进程助手
从客户端连接执行SQL
-
- 当您从psql或应用程序请求连接到PostgreSQL服务器时,Postgres(主服务器)会fork一个新的后端进程。
-
- 在事务开始后,更改会记录在WAL缓冲区中,并根据设置由WAL写入器写入到磁盘上的WAL文件中。
- 一旦提交,后端进程会将更改写入数据文件中。
自动真空
-
- 一旦启动了PostgreSQL服务器,postgres(主服务器)将自动启动自动Vacuum Launcher进程。
-
- 自动Vacuum Launcher会监视数据库中表的状态,并判断是否需要进行Vacuum处理。
- 当无效元组(无用空间)的数量达到阈值时,自动Vacuum Launcher将触发对该表的Vacuum处理。
总结
在PostgreSQL中,根据需要执行各种进程。通过理解这些进程,我们可以准确地理解和利用PostgreSQL中发生的故障和性能提升。让我们一起更深入地了解PostgreSQL!