↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 6.3
历史版本PostgreSQL 6.3 已于 2003 年 3 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

第 2 章 体系结构

2.1. Postgres 体系结构概念

在我们开始之前,你应当理解基本的 Postgres 系统体系结构。理解 Postgres 的各个部分如何交互将使下一章 更容易理解。 用数据库术语来说,Postgres 使用一种简单的 "每用户一进程"客户端/服务器模型。一个 Postgres 会话 由下列相互协作的 UNIX 进程(程序)组成:

  • 一个监管守护进程(postmaster),

  • 用户的前端应用(例如 psql 程序),以及

  • 一个或多个后端数据库服务器(postgres 进程本身)。

一个 postmaster 管理单个主机上一个给定的 数据库集合。这样的数据库集合称为一个安装或站点。希望访问安装内某个给定数据库的前端应用 对库进行调用。库通过网络把用户请求发送给 postmaster(如何建立一个连接), 后者转而启动一个新的后端服务器进程

图 2.1. 如何建立一个连接

如何建立一个连接


并把前端进程连接到新的服务器。从 那时起,前端进程和后端 服务器进行通信而无需 postmaster 干预。因此,postmaster 总是在运行,等待 请求,而前端和后端进程 则来来去去。

libpq 库允许单个 前端建立到多个后端进程的连接。 但是,前端应用仍然是 单线程进程。目前 libpq 不支持多线程的前端/后端 连接。这种体系结构的一个含义是 postmaster 和后端总是在同一台 机器(数据库服务器)上运行,而前端 应用可以运行在任何地方。你应当牢记 这一点, 因为在客户机上可以访问的文件 在数据库服务器机器上可能无法访问(或者只能 用不同的文件名访问)。

你还应当知道,postmaster 和 postgres 服务器以 Postgres "超级用户"的用户 ID 运行。注意 Postgres 超级用户并不 非得是特殊用户(例如名为 "postgres" 的用户)。而且,Postgres 超级用户 绝对不应当是 UNIX 超级用户("root")!任何 情况下,与某个数据库相关的所有文件都应当属于这个 Postgres 超级用户。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。