PostgreSQL-大版本升级(pg_upgrade方式)

本文详细介绍了如何使用pg_upgrade工具升级PostgreSQL数据库,包括检查兼容性、选择升级模式(普通和硬链接)、处理数据迁移、统计信息更新以及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.pg_upgrade工具介绍

pg_upgrade 会创建新的系统表,并以重用旧的数据文件的方式进行升级。
pg_upgrade 的参数选项如下: 
 -b bindir,--old-bindir=bindir:旧的 PostgreSQL 可执行文件目录;
 -B bindir,--new-bindir=bindir:新的 PostgreSQL 可执行文件目录;
 -c,--check:只检查升级兼容性,不更改任何数据
 -d configdir,--old-datadir=configdir:旧版本的数据目录
 -D configdir,--new-datadir=configdir:新版本的数据目录
 -j,--jobs=njobs:要同时使用的进程或线程数
 -k,--link:硬链接方式升级
 -o options,--old-options options:直接传送给旧 postgres 命令的选项,多个选
项可以追加在后面
 -O options,--new-options options:直接传送给新 postgres 命令的选项,多个
选项可以追加在后面
 -p port,--old-port=port:旧版本的端口号
 -P port,--new-port=port:新版本的端口号
 -r,--retain:即使在成功完成后也保留 SQL 和日志文件
在升级之前应该运行 pg_upgrade -c 检查新旧版本的兼容性,把每一项不兼容的问题都
解决了才可以顺利升级。使用 pg_upgrade -c 只会检查新旧版本的兼容性,不会运行真
正的升级程序,不会修改数据文件,并且在命令结束时,会输出一份检查结果的报告,还
会对需要手动调整的项做出简要的描述。
pg_upgrade 有普通模式和 link 模式两种升级模式。在普通模式下,会把旧版本的数据拷
贝到新版本中,所以如果使用普通升级模式,要确保有足够的磁盘空间存储新旧两份数据;
link 模式下,只是在新版本的数据目录中建立了旧版本数据文件的硬链接,可以有效减少
磁盘占用的空间。

2.版本信息

升级前     升级后
postgresql14.11 postgresql16.2

3.升级准备

安装依赖:

yum install libicu-devel.x86_64 python3 python3-devel

备份数据:

pg_dumpall -p 5432 > /tmp/backup.sql

4.安装新版pg数据库

wget https://ftp
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值