发布于 2026-01-06 2 阅读
0

如何在单个服务器上设置多个 PostgreSQL 实例 简介 要求

如何在单个服务器上设置多个 PostgreSQL 实例

介绍

要求

介绍

PostgreSQL 近年来凭借其强大的功能而广受欢迎。这些功能包括存储高级数据结构(例如 JSON、数组)、在高流量环境下的可扩展性,以及专为数据处理而设计的一系列丰富功能。此外,PostgreSQL 还提供了许多其他优势。

在这篇短文中,我将简要讨论在单台机器上创建多个 PostgreSQL 实例的简单方法。根据您的具体使用场景,这是一种非常常见的应用场景。就我而言,我需要测试两个将在不同环境中共存的服务。

要求

  • 已安装 PostgreSQL(任意版本)
  • Ubuntu(任何版本)

我们假设您已经在端口 5432 上运行了一个 PostgreSQL 服务器。

创建第二个实例的步骤

  1. 打开 bash 并运行以下命令
$sudo pg_createcluster 12 main1 --port=5433 --start
Enter fullscreen mode Exit fullscreen mode

请为“main1”文件夹和端口号选择您喜欢的名称。端口号不能是5432,因为PostgreSQL默认配置为在5432端口运行。如果您想运行第二个实例,则需要将其配置为使用不同的端口。
此命令将创建另一个名为main1的PostgreSQL集群,并
在5433端口上启动它。

2.
运行此命令将产生以下结果:

图片描述

3.
修改 Postgres 配置文件以允许更改密码:
当您尝试访问新服务时,您将被拒绝访问。为了简化更改密码的过程,请导航到此文件夹并使用您喜欢的文本编辑器打开 pg_hba.conf 文件。请注意,PostgreSQL 版本可能有所不同。

$sudo nano /etc/postgresql/12/main3/pg_hba.conf
Enter fullscreen mode Exit fullscreen mode

4.
向下滚动到此部分, 并进行以下更改:
图片描述

图片描述

注:

重置密码后,请务必将这些更改恢复到原始配置。这些更改可能会对数据库安全构成威胁。5
.
访问实例:

$sudo su postgres
$psql -U postgres -h localhost -p 5433 -W
Enter fullscreen mode Exit fullscreen mode

6.
更改密码:

psql$\password postgres
Enter fullscreen mode Exit fullscreen mode
psql$\q
Enter fullscreen mode Exit fullscreen mode

重启服务器。

sudo service postgreSQL restart 5433
Enter fullscreen mode Exit fullscreen mode

并将Postgres配置文件更新回原始设置。

sudo nano /etc/postgresql/12/main3/pg_hba.conf
Enter fullscreen mode Exit fullscreen mode

图片描述

要检查正在运行的postgres实例数量,请使用以下命令:

ps -aux
Enter fullscreen mode Exit fullscreen mode

图片描述
就我而言,你可以看到我有 3 个实例正在运行。

用于管理实例的实用命令

在这个例子中,我们假设该服务位于 main2 文件夹中。

  • 开始服务
sudo pg_ctlcluster 12 main2 start
Enter fullscreen mode Exit fullscreen mode
  • 停止服务
sudo pg_ctlcluster 12 main2 stop
Enter fullscreen mode Exit fullscreen mode
  • 重启服务
sudo pg_ctlcluster 12 main2 restart
Enter fullscreen mode Exit fullscreen mode

谢谢你!

文章来源:https://dev.to/titon/how-to-set-up-multiple-postgresql-instances-on-a-single-server-15gg