我在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版吗?