什么是PostgreSQL“集群”,如何创建一个?

我对数据库很新,我没有做很多。现在我想了解数据库集群这个术语。我google了很多,发现很多有用的链接,但我不能理解他们 – 也许因为我对数据库有很少的基本知识,而且他们是非常科技语言。

我需要关于这些问题的建议:

> Postgresql中的数据库集群是什么?
>如何在Postgresql中创建集群?

Postgresql数据库“集群”是一个postmaster和一组补充过程,它们都管理包含一个或多个数据库的共享数据目录。

Postgresql中的术语“cluster”一个历史怪癖,与“compute cluster”的一般含义完全不同,“compute cluster”通常指的是一起工作以实现更高性能和/或可用性的计算机组。它也与Postgresql命令CLUSTER无关,这是关于组织表。

如果你正在读这个,你可能实际上正在寻找有关高可用性,复制或池的信息,在这种情况下,你应该阅读Replication,Clustering and High Availability wiki文章high availability部分的Postgresql手册,然后看看工具,如repmgr

通常在安装Postgresql时为您创建集群;安装时通常会为你initdb一个新的集群。对于基本或中间用户来说,不经常需要创建集群或管理多个集群,这是很不寻常的,所以如果您解释为什么要这样做,以及您尝试解决的根本问题,将有所帮助。 user manual可能可以解释这更好,因为它假设你从源代码安装Postgresql,相对很少的人实际上这样做。

每个集群的数据目录都使用initdb创建,并使用通过系统服务(Windows服务,launchd,init,upstart,systemd等,取决于操作系统和版本)或直接通过pg_ctl启动的postmaster进行管理。

集群具有内置数据库template0,template1和postgres;其他数据库用户创建。

集群的postmaster通过侦听tcp端口接受传入连接,并将它们交给worker后端。只有一个邮局主管可以在给定端口上运行,因此每个群集必须有不同的端口。

我在this previous answer写了更多关于Postgresql的结构。参见子标题“关系?模式?嗯?

如何在Pg中“创建”集群完全取决于你如何运行它。因为你问,我怀疑你在一个使用pg_wrapper的Ubuntu系统,在这种情况下,你将使用pg_wrapper命令像pg_createcluster

* Postgresql术语中的“集群”和术语“集群”的常见用法间的混淆是一个混乱和令人遗憾的历史奇怪,特别是在讨论Postgresql实例的聚类时。你可以有一个Postgresql集群集群,这是痛苦的。

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...