我可以在同一台服务器上安装 PostgreSQL 热备实例吗?

我可以在同一台服务器上安装 PostgreSQL 热备实例吗?

我正在尝试在已有 PostgreSQL 的服务器 (Windows Server 2008) 上安装第二个实例。我过去曾设法使用不同的版本完成此操作,但在这种情况下,我希望第二个实例是热备用 (只读复制) 服务器,以便人们从中运行报告,而不会影响带有锁定等的生产服务器。当我运行版本 9.2 的安装程序时,它告诉我数据库已安装并提供升级。

是否只需手动创建一个指向不同数据目录的重复 Windows 服务条目即可运行?还是这种行为根本不受支持?

答案1

如果目标是拥有一个专用的盒子,在多个 tcp/ip 端口上运行 postgres 上的多个实例,而且这听起来像是一个处女项目,....我强烈建议在盒子上安装一个高质量的操作系统。centos 或 debian 是很好的服务器 Linux 发行版,或者如果你喜欢冒险,你也可以使用 freebsd....

一旦你做到了这一点,启动多个 postgres 实例就变得轻而易举了,每个实例都有自己的 tcp/ip 端口,有自己的 conf 文件、/tmp 和 /data 目录。

根据我的经验,在 *nix 上执行此操作非常简单,但在 Windows 上尝试会让人发疯 :P

答案2

我找到答案了:)

Postgres 引擎已经安装完毕,我需要做的就是设置一个新的托管 Windows 服务(使用命令行工具 sc 很容易),并使用与现有 postgres 服务相同的可执行路径 - 只需用新的数据目录替换数据目录参数。

新的数据目录本质上是 Postgres 的一个完全不同的实例,需要编辑 Pogres.conf 文件以使用不同的端口(以及可能指向其他地方的任何其他相关设置)。就我而言,我还需要关闭 WAL 归档并启用热备用设置。

它有助于在我们的设置中,我们按照默认设置将应用程序安装在 C:\Program Files 中,但我们将数据目录保存在单独的磁盘上。

相关内容