gpt4 book ai didi

sql - 什么是 PostgreSQL "Cluster"以及如何创建一个?

转载 作者:太空狗 更新时间:2023-10-30 01:37:43 27 4
gpt4 key购买 nike

我对数据库很陌生,我还没有在这方面做过很多工作。现在我想了解术语数据库集群。我在谷歌上搜索了很多,找到了许多有用的链接,但我无法理解它们 - 可能是因为我对数据库的基本知识知之甚少,而且它们的语言非常技术性。

我需要关于这些方面的建议:

  1. 什么是 PostgreSQL 中的数据库集群?
  2. 如何在 PostgreSQL 中创建集群?

最佳答案

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

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


如果您正在阅读本文,您可能实际上是在寻找有关高可用性、复制或池的信息,在这种情况下,您应该阅读 Replication, Clustering and High Availability维基文章和 high availability PostgreSQL 手册的一部分,然后查看像 repmgr 这样的工具.


集群通常在您安装 PostgreSQL 时为您创建;安装通常会为您 initdb 一个新集群。基本用户或中级用户需要创建集群或管理多个集群的情况很少见,因此如果您解释为什么您想要这样做,以及潜在的问题是什么,将会有所帮助您要解决的问题是user manual可能会更好地解释这一点,因为它假定您从源代码安装 PostgreSQL,而实际上很少有人这样做。

每个集群的数据目录都是使用 initdb 创建的,并由通过系统服务启动的 postmaster 管理(Windows 服务、launchdinitupstartsystemd 等,具体取决于操作系统和版本)或直接通过 pg_ctl

集群内置数据库template0template1postgres;其他数据库由用户创建。

集群的 postmaster 通过监听 tcp 端口接受传入连接,并将这些连接交给工作后端。只有一个 postmaster 可以在给定端口上运行,因此每个集群必须有不同的端口。

我在 this previous answer 中写了更多关于 PostgreSQL 结构的文章.请参阅子标题“关系?架构?嗯?”。

如何在 Pg 中“创建”集群完全取决于您如何运行它。既然你在问,我怀疑你在使用 pg_wrapper 的 Ubuntu 系统上。 ,在这种情况下,您将使用 pg_wrapper 命令,例如 pg_createcluster .


* PostgreSQL 术语中的“集群”与术语“集群”的常见用法之间的混淆是一个令人困惑且令人遗憾的历史怪事,尤其是在讨论 PostgreSQL 实例的集群时。你可以拥有一个 PostgreSQL 集群集群,这很痛苦。

关于sql - 什么是 PostgreSQL "Cluster"以及如何创建一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12908205/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com