我可以在同一台机器上运行Postgres 8.4和Postgres 9吗?

8

能否同时运行Postgres 8.4和9(两个安装)?

谢谢

6个回答

7

简短回答:是的。

详细回答:

你没有说明你的操作系统,所以很难说如何做。例如,在Debian / Ubuntu中,你可以直接从软件包安装第二个版本(postgresql-8.4postgresql-9.0),一切都可以开箱即用(感谢postgresql-common)。在其他系统上,你可能需要使用“低级”命令手动执行,例如initdbpg_ctl。确保第二次安装(数据库群集)使用不同的端口(例如5433),而不是相同的数据目录。


有没有一种方法可以这样做并使用相同的数据目录? - sudo

2
是的,只要满足以下三个前提条件:
  1. PostgreSQL正在监听唯一的IP /端口(请查看 pgbouncer ,您可能可以将两个 PostgreSQL 副本隐藏在单个 IP / 端口后面,并通过减少活动连接数来减少内存占用)
  2. 您有足够的SYSV共享内存可用(这通常是限制因素)
  3. 您使用不同的PGDATA目录。
我强烈建议使用pgbouncer

2
SYSV 共享内存并不是真正的限制因素,您只需要确保更新相关内核参数(主要是 SHMMAX)到比它们微小的默认值更合理的值即可。 - Greg Smith
当然可以!尽管我的经验告诉我,胆小的系统管理员往往会对几个缩写感到不安,尤其是'shm *'、'ipc *'和'sysv *'。 :~] 这是为了追求卓越而需要付出的一点代价。 - Sean

2
在Windows上,您不需要做任何事情,因为安装程序会自动创建唯一的数据目录,并检测现有的安装并自动调整端口。例如,您的第一个安装将侦听5432端口,而第二个安装将侦听5433端口,因为安装程序已经为您配置好了。

1

你总是可以这样做,问题在于如何同时安装两个版本,这取决于你的操作系统。例如,在RedHat Linux衍生系统上,这非常难以实现。PostgreSQL RPM软件包只打算在任何时候安装单个版本。有时,唯一合理的方法是为您想要安装的第二个版本从源代码构建自己的PostgreSQL,如果您以前从未这样做过,那将是一次有趣的冒险。

在Debian Linux上,同时安装两个版本非常容易。我认为在Windows上也很简单,但这可能取决于您使用的安装程序。

一旦您安装了两个不同版本的数据库,那么您就必须担心其他人谈论的事情:使每个数据库运行在自己的端口上并具有自己的安装目录。与同时安装两个版本所需的工作相比,这些通常微不足道。


0

是的,你只需要将数据目录放在不同的位置。


0

是的,你可以这样做。你需要在不同的端口上运行它们,并使用不同的数据目录。

端口和数据目录都可以在postgresql.conf中设置。

我相信还有其他几种指定数据目录的方法,包括使用PGDATA环境变量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接