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