Bit*_*r16 27 postgresql ubuntu
我在 Oracle VirtualBox 上运行 Ubuntu 12.04。几个月前,我在我的机器上安装了 PostgreSQL 服务器版本 9.1。就在最近,我了解到PostgreSQL server 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
Run Code Online (Sandbox Code Playgroud)
这与版本 9.1 一起在我的机器上安装了服务器版本 9.3。全新启动后运行 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
Run Code Online (Sandbox Code Playgroud)
然后我做了以下升级后维护:我用 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 版?
小智 47
为了减少黑客攻击,请编辑/etc/postgresql/9.1/main/start.conf
并替换auto
为manual
或disabled
。
注意:systemctl daemon-reload
编辑此文件后调用。
Der*_*rfK 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
Run Code Online (Sandbox Code Playgroud)
覆盖版本搜索。
归档时间: |
|
查看次数: |
37041 次 |
最近记录: |