我在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服务器.然后我在/etc/postgresql/$VERSION/main/postgresql.conf中打开了我的配置文件9.1和9.3并交换了它们的端口号,以便我的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
下面的帖子非常有用,但它显示了如何删除群集,而不是如何在启动时禁用群集.我想保留我的旧群集,因为我可能想从中检索更多信息.
I think I have multiple postgresql servers installed,how do I identify and delete the ‘extra’ ones?
我已经考虑过编写一个脚本来在系统加载完毕后终止服务器,但这似乎效率低下.是否有更简洁的方法在启动时禁用9.1版?
对于较少的黑客攻击,编辑/etc/postgresql/9.1/main/start.conf并将auto替换为手动或禁用.