在Debian系统上升级PostgreSQL的步骤如下:
升级前准备
- 备份数据:
- 使用
pg_dump
工具进行备份:pg_dump -U your_username -d your_database_name -f backup.sql
- 查看当前数据库版本:
psql -V
- 更新软件包列表:
sudo apt update
- 添加PostgreSQL官方APT仓库(如果尚未添加):
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" /etc/apt/sources.list.d/pgdg.list'
- 导入PostgreSQL APT仓库的GPG密钥:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
- 检查可用的PostgreSQL版本:
apt-cache policy postgresql
升级步骤
小版本升级
- 安装最新版本数据库:
sudo apt install postgresql-13
- 停止旧版本的PostgreSQL服务:
sudo systemctl stop postgresql
- 使用
pg_upgrade
进行升级:
sudo /usr/pgsql-15/bin/pg_upgrade --old-bindir /usr/pgsql-14/bin --new-bindir /usr/pgsql-15/bin --old-datadir /var/lib/pgsql/14/data --new-datadir /var/lib/pgsql/15/data --link --check
- 验证升级:
psql -V
大版本升级
- 备份源库(使用
pg_dumpall
):
pg_dumpall -U postgres -f all_databases.sql
- 查看编译选项(使用
pg_config
):
pg_config --configure
- 安装新版本数据库:
sudo apt install postgresql-13
- 初始化新实例并停止旧实例:
sudo /usr/pgsql-15/bin/initdb -D /var/lib/pgsql/15/data -E UTF8 --locale en_US.UTF-8 -U postgres sudo systemctl stop postgresql
- 使用
pg_upgrade
命令进行升级:
sudo /usr/pgsql-15/bin/pg_upgrade --old-bindir /usr/pgsql-14/bin --new-bindir /usr/pgsql-15/bin --old-datadir /var/lib/pgsql/14/data --new-datadir /var/lib/pgsql/15/data --link --check
- 修改环境变量:
export PGHOME=/usr/pgsql-15 export PATH=$PGHOME/bin:$PATH
- 重启数据库:
sudo systemctl start postgresql
- 验证升级:
psql -V
注意事项
- 在执行升级之前,请仔细阅读相应版本的发行说明,了解可能的更改和影响。
- 如果使用
pg_upgrade
的--link
选项,新版本服务可以直接使用原有的数据库文件而不需要执行复制,通常可以在几分钟内完成升级操作。 - 以上步骤为在Debian系统上升级PostgreSQL的基本流程,具体操作可能会因系统版本和具体需求有所不同,建议参考官方文档进行操作。