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

问题描述:

是否可以同时运行Postgres 8.4和9(两次安装)?我可以在同一台机器上运行Postgres 8.4和Postgres 9吗?

谢谢

简短的回答:是的

龙答:

您没有指定您的操作系统,所以现在还很难说就怎么做。例如在Debian/Ubuntu中,您可以安装包(postgresql-8.4postgresql-9.0)中的第二个版本,并且所有工作都是开箱即用的(感谢postgresql-common)。在其他系统上,您可能需要使用“低级别”命令(例如initdbpg_ctl)手动执行此操作。确保第二次安装(数据库集群)使用不同的端口(例如5433)而不是相同的数据目录。

+0

有没有办法做到这一点,并使用相同的数据目录? – sudo

是的,你只要把数据directores在不同的位置。

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

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

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

是的,提供以下三个前提条件被满足:

  1. 的PostgreSQL是一个唯一的IP /端口上侦听(看看pgbouncer,你可能可以隐藏的PostgreSQL的两个副本的单一IP /端口后面和减少通过减少活动连接
  2. 数)的内存占用你有足够的可用SYSV共享内存(这往往是限制因素)
  3. 您可以使用不同的PGDATA目录。

我不能推荐使用pgbouncer就够了。

+2

SYSV共享内存并不是一个真正的限制因素,您只需确保将相关内核参数(主要是SHMMAX)更新为比它们最小的默认值更合理的值。 –

+0

绝对!虽然根据我的经验,胆怯的系统管理员倾向于围绕几个TLA,特别是'shm *','ipc *'和'sysv *'发出尖锐的声音。 :〜]一个很小的代价来支付真棒。 – Sean

在Windows上,你不需要做任何事情,因为安装程序会自动创建独特的数据目录和检测现有安装并自动调节端口。

例如 - 你的第一个安装将监听5432和您的第二个安装将监听5433,作为安装程序配置为你好。

你总是可以的,问题是这将是多么困难,同时安装两个版本,这取决于您的操作系统。例如,在RedHat Linux衍生系统上,这很难做到。 PostgreSQL RPM软件包仅用于同时安装单个版本。有时候,唯一合理的方法就是从源代码中为你想要安装的第二个版本构建你自己的PostgreSQL,如果你以前从未做过,这是一个有趣的冒险。

在Debian的Linux两个版本同时非常的方便。我相信它在Windows上也很简单,但它可能取决于您使用的安装程序。

一旦你安装了两个不同版本的数据库,你只需要担心别人正在讨论的事情:让每个数据库在自己的端口上运行,并有自己的安装目录。与一次安装两个版本所需的工作相比,这些通常微不足道。