我用sudo apt upgrade将postgres更新到版本14。
psql --version
psql (PostgreSQL) 14.1 (Ubuntu 14.1-2.pgdg20.04+1)但是pg_dump并没有和其他的东西一起升级:
pg_dump --version
pg_dump (PostgreSQL) 12.9 (Ubuntu 12.9-2.pgdg20.04+1)知道为什么吗?
我还清除了所有的postgres并重新安装了postgresql-14:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get -y install postgresql-14但随后:
pg_dump --version
Error: PostgreSQL version 12 is not installed运行Ubuntu 20.04。
更新:
添加运行pg_lsclusters的结果
pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
12 main 5432 down,binaries_missing postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
14 main 5433 online postgres /var/lib/postgresql/14/main /var/log/postgresql/postgresql-14-main.log发布于 2021-12-07 15:20:11
pg_lsclusters的输出表明,未首先删除Postgres 12实例,就卸载了Postgres 12二进制文件。注意Status列是如何表示binaries_missing的。在卸载时,删除脚本需要特别注意不要破坏您的数据,这就是为什么实例及其数据可能有点棘手的原因。
若要删除“僵尸”实例,请使用
$ sudo pg_dropcluster 12 main然后只有14/main实例将保留在pg_lsclusters列表中,pg_dump和其他通过Debian/Ubuntu pg_包装脚本的客户端应用程序将停止首先选择12/main实例。
您还可能希望将您的14/main实例重新定位到5432端口,因为它是Postgres的默认端口,如果您不打算在同一主机上拥有多个实例,那么使用默认端口将使您的生活更加轻松。
https://dba.stackexchange.com/questions/303607
复制相似问题