在继续之前,您应该了解基本的 PostgreSQL 系统架构。了解 PostgreSQL 各部分之间如何进行交互将使本章更加清晰。
在数据库术语中,PostgreSQL 使用客户端/服务器模型。PostgreSQL 会话包含以下协作进程(程序)
与客户端/服务器应用程序典型情况类似,客户端和服务器可以位于不同的主机上。在这种情况下,它们通过 TCP/IP 网络连接进行通信。您应该记住这一点,因为在客户端机上可以访问的文件可能无法在数据库服务器机上访问(或可能只能使用不同的文件名访问)。
PostgreSQL 服务器可以处理来自客户端的多个并行连接。为了实现这一点,它为每个连接启动(“派生”)一个新进程。从那一点开始,客户端和新的服务器进程会在没有原始 postgres
进程干预的情况下进行通信。因此,服务器进程常驻运行,等待客户端连接,而客户端和关联服务器进程则会来来去去。(所有这一切当然对用户不可见。我们在这里提到它只是为了完整性。)