2016-10-04 54 views
1

我需要为我们的生产服务器提供额外的实例。PostgreSQL:如何在同一个窗口机器上创建两个实例?

可能吗?

从哪里开始?

的Windows Server

+0

嗨@TimBiegeleisen,我需要的是在Windows中运行。我不知道如何应用这些说明。 :( – fLen

+0

您确定您需要一个完整的单独实例(在单独的端口上,具有自己的服务器配置,事务日志等),而不仅仅是现有实例中的额外数据库和/或表空间? – Wyzard

+0

是的,as尽可能多的单独的端口,但同样的Windows服务器。我需要额外的实例。这是可能的,@Wyzard? – fLen

回答

5

上使用PostgreSQL 9.1如果您已经有二进制文件,然后添加第二个实例(“簇”)是通过运行initdb再注册新的实例作为Windows服务来完成。

(我不会将可执行文件的名称加上存储路径的前缀。您需要将PostgreSQL安装目录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 

该服务将使用“本地网络帐户”执行,因此您的以确保数据目录的权限已正确设置。

+0

谢谢你真的有用!:D – fLen

相关问题