Ubuntu 22.04下重装PostgreSQL 12/13集群(保留现有数据库)
恢复Ubuntu 22.04上PostgreSQL 12/13二进制文件并保留现有集群
步骤1:添加PostgreSQL官方软件源
Ubuntu 22.04默认软件源仅包含PostgreSQL 14,需添加官方源获取旧版本包:
# 导入PG官方GPG密钥 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7FCC7D46ACCC4CF8 # 添加PG源到sources.list.d echo "deb http://apt.postgresql.org/pub/repos/apt/ jammy-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list # 更新软件包索引 sudo apt update
步骤2:安装PostgreSQL 12和13的二进制包
直接安装对应版本的核心包,避免使用postgresql元包(会安装默认版本):
# 安装PG 12核心包 sudo apt install postgresql-12 # 安装PG 13核心包 sudo apt install postgresql-13
安装时若提示是否覆盖现有集群配置,选择否——你的12/13集群数据目录仍保留,无需初始化新集群。
步骤3:启动现有集群
验证二进制文件恢复情况:
# 检查PG 12的initdb是否存在 which initdb.12 # 检查PG 13的initdb是否存在 which initdb.13
启动对应集群:
# 启动PG 12的main集群 sudo pg_ctlcluster 12 main start # 启动PG 13的main集群 sudo pg_ctlcluster 13 main start
步骤4:确认集群状态与数据完整性
查看所有集群状态,确认12/13集群已处于online状态:
pg_lsclusters
登录数据库验证数据:
# 登录PG 12集群(端口默认可能为5432,根据实际情况调整) psql -p 5432 -U postgres # 查看数据库列表确认数据存在 \l
异常处理
若启动集群时出现权限错误,修复数据目录权限:
sudo chown -R postgres:postgres /var/lib/postgresql/12/main sudo chown -R postgres:postgres /var/lib/postgresql/13/main
内容的提问来源于stack exchange,提问作者rigyt
相关产品推荐
相关产品推荐

