PostgreSQL:如何在同一 window 机器上创建两个实例?

PostgreSQL: How to create two instances in same window machine?

我需要为我们的生产服务器添加额外的实例。

可能吗?

从哪里开始?

在 Windows 服务器上使用 Postgresql 9.1

如果您已经拥有二进制文件,则添加第二个实例 ("cluster") 由 运行 initdb 完成,然后将该新实例注册为 Windows服务。

(我不会在可执行文件的名称前添加它们的存储路径。您需要将 Postgres 安装的 bin 目录添加到系统范围 PATH,使用完全限定的名称,或者简单地切换到 bin 目录使其成为当前目录)

为此,打开命令行 (cmd.exe) 并使用 initdb 创建实例:

initdb -D c:\Data\PostgresInstance2 -W -A md5

-W 使 initdb 提示您输入要用作该实例的超级用户的名称和密码 - 确保您记住您提供的用户名和密码。 -D 指定 应创建群集的位置。 不要c:\Program Files 下创建它。

初始化实例(集群)后,编辑 c:\Data\PostgresInstance2\postgresql.conf 以使用不同的端口,例如port = 5433。如果实例应该可以从外部访问,您还需要调整 listen_addresses

您可以通过手动启动新实例来检查是否一切正常:

pg_ctl start -D c:\Data\PostgresInstance2

更改端口(并调整其他配置参数)后,您可以为新集群创建 Windows 服务:

pg_ctl register -N postgres2 -D c:\Data\PostgresInstance2

该服务将使用 "Local Network Account" 执行,因此您 以确保正确设置数据目录的权限。

@NewSheriff

您的第二台服务器的启动命令需要使用您在配置中指定的端口 例如如果使用端口 5433 而不是端口 5432 然后添加: -o“-p 5433” 到你的 start-up 命令的末尾应该通过你提到的错误消息