我安装了多个PostgreSQL服务器。如何禁用旧服务器的自动启动?


24

我在Oracle VirtualBox上运行Ubuntu 12.04。几个月前,我在机器上安装了PostgreSQL服务器9.1版。就在最近,我了解到PostgreSQL服务器9.3支持JSON数据类型,因此我决定升级。

我按照以下说明升级到9.3:

https://wiki.postgresql.org/wiki/Apt

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install postgresql-9.3 pgadmin3

此服务器在服务器上安装了9.3版以及9.1版。重新启动后运行pg_lsclusters会给出:

Ver Cluster Port Status Owner    Data directory               Log file
9.1 main    5433 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
9.3 main    5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log

然后,我进行了以下升级后维护:我使用pg_dump从9.1服务器中导出了几张表,并将它们还原到了9.3服务器中。然后,我在9.1和9.3中打开我的配置文件,/etc/postgresql/$VERSION/main/postgresql.conf并交换了它们的端口号,以便默认情况下我的psql客户端连接到新服务器。

我的问题是这个。9.1和9.3均在启动时启动。我想阻止9.1自动启动,因为它大约占用了系统内存的5%。我怎样才能做到这一点?

咨询资源:

启动服务器时的PostgreSQL文档页面将我指向标准的init.d目录。我的init.d目录中确实包含脚本postgresql。似乎可以将此脚本配置为仅启动一个版本,但是所需的更改对我来说并不明显。

http://www.postgresql.org/docs/9.1/interactive/server-start.html

下面的帖子非常有用,但是它显示了如何删除集群,而不是如何在启动时禁用集群。我想保留旧的群集,因为我可能想从中检索更多信息。

我想我已经安装了多个postgresql服务器,如何识别和删除“多余的”服务器?

我已经考虑过在系统完成加载后编写脚本来杀死服务器,但这似乎效率很低。有更干净的方法可以在启动时禁用9.1版吗?

Answers:


43

为了减少麻烦,请编辑/etc/postgresql/9.1/main/start.conf或替换automanualdisabled


谢谢ch2500!该解决方案很直观,并且完全满足我的需要。
BitPusher16

我一直在寻找这样一个答案几个小时。非常感谢。
乔纳森·瓦纳斯科

10

Debian创建了多个脚本(如pg_ * cluster实用程序)来简化在单个服务器上运行PostgreSQL的多个版本或安装的过程,这就是为什么在postgresql.org上没有对此进行记录的原因。

我不确定PostgreSQL自己的.deb软件包是否使用与Debian相同的启动机制,但查看我拥有的软件包,如果您创建/etc/init.d/postgresql-9.1(即使其为空文件),/etc/init.d/postgresql则将假定您想单独控制该版本,并且不会默认情况下启动它。您仍然可以使用

service postgresql start 9.1

覆盖版本搜索。


感谢DerfK,这项工作奏效了。我创建了一个您建议的文件,在其中添加了一个哈希爆炸,并使其可执行。重新启动后,pg_lsclusters给出了: Ver Cluster Port Status Owner Data directory Log file 9.1 main 5433 down postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log 9.3 main 5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log
BitPusher16

PostgreSQL Debian打包团队的软件包与Debian的软件包相同。您应该使用pg_ * cluster基础结构,而不是黑客入侵自己的sysv init启动脚本。
Michael Renner 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.