升级后删除旧的 postgresql 吗?

eug*_*ene 6 upgrade postgresql

我按照此处的说明将 postgresql 升级到 9.3

当我跑步时 sudo service postgresql start

表明

 * Starting PostgreSQL 9.1 database server
   ...done.
 * Starting PostgreSQL 9.3 database server
   ...done.
Run Code Online (Sandbox Code Playgroud)

我现在只想使用 9.3(甚至不需要启动 9.1),我该怎么做?

小智 3

首先检查状态,它应该看起来像这样:

$ sudo pg_lsclusters
Ver  Cluster Port Status Owner     Data directory                Log file
9.1  main    5432 online postgres  /var/lib/postgresql/9.1/main  /var/log/postgresql/postgresql-9.1-main.log
9.3  main    5433 online postgres  /var/lib/postgresql/9.3/main  /var/log/postgresql/postgresql-9.3-main.log
Run Code Online (Sandbox Code Playgroud)

停止旧版本:

sudo systemctl stop postgresql@9.1-main.service
Run Code Online (Sandbox Code Playgroud)

然后确保测试您是否可以到达新版本,并且您的数据确实存在(即使 pg_upgrade 没有报告错误,请检查!)。

要删除旧版本,包括旧数据目录,请运行:

sudo apt purge postgresql-9.1
Run Code Online (Sandbox Code Playgroud)

您现在应该只剩下新版本了:

$ sudo pg_lsclusters
Ver  Cluster Port Status Owner     Data directory                Log file
9.3  main    5433 online postgres  /var/lib/postgresql/9.3/main  /var/log/postgresql/postgresql-9.3-main.log
Run Code Online (Sandbox Code Playgroud)


Dan*_*ité 1

特定 PostgreSQL 集群的自动启动由其start.conf文件指定。
对于 postgresql 9.1 主集群,它是/etc/postgresql/9.1/main/start.conf.

请参阅文件开头的注释:

# 自动启动配置
# auto:在init脚本中自动启动/停止集群
# 手动:不要在初始化脚本中启动/停止,但允许手动启动
# pg_ctlcluster
# 禁用:不允许使用 pg_ctlcluster 手动启动(这可以很容易地
# 被规避,只是为了提供一个小小的保护
# 事故)。