pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
在继续之前,你应当理解 Postgres 系统的 基本体系结构。理解 Postgres 各部分的 交互方式会让下一章 更容易理解。用数据库术语 来说,Postgres 使用简单的"每用户 一进程"客户端/服务器模型。一个 Postgres 会话 由下列协作的 Unix 进程(程序)组成:
一个管理守护进程(postmaster),
用户的前端应用(例如 psql 程序),以及
一个或多个后端数据库服务器(postgres 进程本身)。
单个 postmaster 管理单个主机上给定的 数据库集合。这样的 数据库集合称为一个安装或站点。希望 访问安装中某个 数据库的前端 应用调用该库。 该库通过网络把用户请求发送给 postmaster (如何建立连接(a)), 后者再启动一个新的后端服务器 进程 (如何建立连接(b))
图 36.1. 如何建立连接

并把前端进程连接到新服务器 (如何建立连接(c))。 从那时起,前端进程和后端 服务器之间的通信不再需要 postmaster 干预。因此, postmaster 总是在运行并等待 请求,而前端和后端进程 则来来去去。libpq 库允许单个 前端对后端进程建立多个 连接。但前端应用仍然是一个 单线程进程。libpq 目前 不支持多线程的前端/后端 连接。 这一体系结构的一个含义是 postmaster 和后端总是运行在同一 台机器(数据库服务器)上,而前端 应用可以运行在任何地方。你应当牢记 这一点, 因为在客户端 机器上可以访问的文件在数据库服务器 机器上可能无法访问(或者只能用 不同的 文件名访问)。 你还应当知道 postmaster 和 postgres 服务器以 Postgres "superuser."(超级用户)的 user-id 运行。注意 Postgres 超级用户不必是任何 特定的用户(例如名为 "postgres" 的用户),虽然 许多系统就是这样安装的。而且, Postgres 超级用户 绝对不应该是 Unix 超级用户 "root"!无论 如何,与数据库 相关的所有文件都应属于这个 Postgres 超级用户。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。