PostgreSQL:如何在同一个窗口机器中创建两个实例?

fLe*_*Len 5 database windows instance postgresql-9.1

我需要为我们的生产服务器提供额外的实例.

可能吗?

从哪里开始?

在Windows Server上使用Postgresql 9.1

a_h*_*ame 13

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

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

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

initdb -D c:\Data\PostgresInstance2 -W -A md5
Run Code Online (Sandbox Code Playgroud)

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

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

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

pg_ctl start -D c:\Data\PostgresInstance2
Run Code Online (Sandbox Code Playgroud)

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

pg_ctl register -N postgres2 -D c:\Data\PostgresInstance2
Run Code Online (Sandbox Code Playgroud)

该服务将使用"本地网络帐户"执行,因此您必须确保正确设置数据目录的权限.