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 命令的末尾应该通过你提到的错误消息
我需要为我们的生产服务器添加额外的实例。
可能吗?
从哪里开始?
在 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 命令的末尾应该通过你提到的错误消息