相关疑难解决方法(0)

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

我在 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 …

postgresql ubuntu

27
推荐指数
2
解决办法
4万
查看次数

如何在同一台主机上管理不同版本的PostgreSQL服务器?

我在装有 Ubuntu 14.04 的同一台主机上安装了 PostgreSQL 9.4 和 9.5。我的问题是:

  1. 当我运行时service postgresql start|stop,两个版本都开始/停止。但我想控制做哪一个。
  2. 当我使用psql连接到 PostgreSQL 时,它总是连接到 9.4。但我想控制要做什么服务器。我知道我可以通过不同的端口连接,9.4 为 5432,9.5 为 5433。但我想通过对等身份验证进行连接,即通过 Unix 套接字。

我设法分别为上述两个问题找到了这些线索,但还没有解决我的问题:

  1. 我发现一个命令pg_ctlcluster可以完成这项工作,但我不知道如何指定正确的参数,例如集群名称。我怎么能弄明白?或者你有什么别的办法?
  2. Unix 套接字可以通过unix_socket_directories = '/var/run/postgresql'. 但是两个版本都有相同的配置目录,其中有9.4-main.pg_stat_tmp 9.4-main.pid 9.5-main.pg_stat_tmp 9.5-main.pid不同版本的子目录。当我这样做时psql -h /var/run/postgresql,它只是连接到旧的 9.4 版本。

有人可以帮忙吗?谢谢!

postgresql

4
推荐指数
1
解决办法
5395
查看次数

标签 统计

postgresql ×2

ubuntu ×1