Debian系统如何更新PostgreSQL

2025-05-11 4

Image

在 Debian 系统中更新 PostgreSQL 的步骤如下,分为小版本升级(如 13.x → 13.y)和大版本升级(如 12.x → 13.x)两种情况:


一、小版本升级(安全维护更新)

适用于同一主版本内的更新(如 14.714.8),通常通过包管理器直接完成:

# 1. 更新软件包列表
sudo apt update

# 2. 升级所有已安装软件包(包括 PostgreSQL)
sudo apt upgrade

# 或仅升级 PostgreSQL
sudo apt install --only-upgrade postgresql-14  # 根据实际版本替换数字

# 3. 重启 PostgreSQL 服务
sudo systemctl restart postgresql

二、大版本升级(如 13.x → 14.x)

需手动操作,步骤如下:

1. 备份数据

sudo -u postgres pg_dumpall > /path/to/backup.sql

2. 添加官方仓库(可选)

如果 Debian 官方源未提供版,可添加 PostgreSQL 官方仓库:

# 安装依赖
sudo apt install curl ca-certificates gnupg

# 添加仓库(以 PostgreSQL 16 为例)
echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# 更新软件包列表
sudo apt update

3. 安装新版本

# 安装新版本(例如 PostgreSQL 16)
sudo apt install postgresql-16

# 旧版本(如 15)仍会保留,需手动迁移

4. 迁移数据

使用 pg_upgrade 工具(需停服):

# 停止 PostgreSQL
sudo systemctl stop postgresql

# 执行升级(以 15 → 16 为例)
sudo -u postgres pg_upgrade \
  -b /usr/lib/postgresql/15/bin \  # 旧版本二进制路径
  -B /usr/lib/postgresql/16/bin \  # 新版本二进制路径
  -d /var/lib/postgresql/15/main \ # 旧数据目录
  -D /var/lib/postgresql/16/main   # 新数据目录

# 若提示需初始化,先运行:
sudo -u postgres /usr/lib/postgresql/16/bin/initdb -D /var/lib/postgresql/16/main

5. 启动新版本并清理

# 启动新版本
sudo systemctl start postgresql@16-main

# 验证数据
psql -U postgres -c "SELECT version();"

# 确认无误后卸载旧版本(谨慎操作!)
sudo apt remove postgresql-15
sudo apt autoremove

注意事项

  1. 兼容性:大版本升级前检查官方文档的兼容性说明。
  2. 依赖冲突:若使用扩展(如 PostGIS),需同步升级扩展版本。
  3. 回滚:如果失败,可从备份恢复数据并重新启动旧版本服务。

建议在测试环境先演练升级流程!

(本文来源:nzw6.com)

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关