在 PostgreSQL 中,以下是实例(Instance)、集簇(Cluster)和数据库(Database)这三个概念的区别:
实例(Instance): 实例是指正在运行的 PostgreSQL 服务器进程。每个实例都有自己的配置、内存、处理能力和服务端口等属性。一个物理或虚拟的计算机可以同时运行多个 PostgreSQL 实例,每个实例都独立·地管理自己的数据库集合。
集簇(Cluster): 集簇是一组相关的数据库对象和数据文件的集合。它包含一个或多个数据库,并与一个特定的 PostgreSQL 实例关联。一个集簇由一个数据目录和其下的多个数据库组成,这些数据库共享相同的安装和配置参数,但具有不同的名称和独立的数据空间。
数据库(Database): 数据库是集簇中的一个逻辑容器,用于组织和存储数据。一个集簇可以包含多个数据库,每个数据库都具有独立的表、视图、函数、存储过程以及其他数据库对象。
最顶层的逻辑结构是集簇(Cluster)。一个 PostgreSQL 集簇是一个整体,它由一个数据目录(通常是一个文件夹)和其中的数据库组成。集簇包含了所有的数据库,而数据库又包含了表和其他数据库对象。
此外,集簇可以与一个 PostgreSQL 实例关联。一个实例(Instance)是指正在运行的 PostgreSQL 服务器进程,它可以管理一个或多个集簇。一个 PostgreSQL 实例可以同时运行多个集簇,但每个集簇只能与一个实例关联。
因此,在 PG 的逻辑结构中,集簇(Cluster) 是最顶层的概念,代表了一个完整的 PostgreSQL 数据库环境,并与一个特定的 PostgreSQL 实例相关联。数据库(Database)则是集簇内部组织和存储数据的逻辑容器。