受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: devel

1.2. 架构基础 #

在继续之前,你应该先了解PostgreSQL的基本系统架构。 了解PostgreSQL各部分如何交互,会让本章更容易理解。

用数据库术语来说,PostgreSQL采用客户端/服务器模型。一次PostgreSQL会话由以下协同工作的进程(程序)组成:

  • 一个服务器进程,负责管理数据库文件、接受客户端应用到数据库的连接, 并代表客户端执行数据库操作。 数据库服务器程序叫做postgres

  • 用户用来执行数据库操作的客户端(前端)应用。 客户端应用的形式可以非常多样:可以是一个文本工具, 也可以是一个图形应用程序,或者是一个通过访问数据库来显示网页的 Web 服务器, 还可以是专门的数据库维护工具。 有些客户端应用随PostgreSQL发行版一起提供;大多数则由用户开发。

和典型的客户端/服务器应用一样,客户端和服务器可以位于不同的主机上。 在这种情况下,它们通过 TCP/IP 网络连接通信。 你应该记住这一点,因为在客户端机器上可访问的文件,在数据库服务器机器上可能不可访问 (或者只能使用不同的文件名访问)。

PostgreSQL服务器可以处理来自客户端的多个并发连接。 为此,它会为每个连接启动(forks)一个新进程。 从那时起,客户端和新的服务器进程就无需原始 postgres进程介入而直接通信。 因此,这个管理服务器进程始终在运行,等待客户端连接, 而客户端及其关联的服务器进程则不断创建和退出。 (当然,这一切对用户都是不可见的。这里只是为求完整而提及。)

提交更正

如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。