2.postgresSQL跨版本升级

pg_upgrade 是 PostgreSQL 官方提供的工具,用于在不同大版本之间(如从 12 到 13、14 到 15 等)进行无损升级。以下是跨版本升级的详细步骤和注意事项:

一、升级前准备

1. 备份数据
  • 全量备份

    pg_dumpall -U postgres -f backup.sql
    
  • 文件系统备份(可选但推荐):

    cp -R /var/lib/pgsql/data /path/to/backup/
    
2. 检查兼容性
  • 确认目标版本支持当前数据格式(如从 12 升级到 15 需通过中间版本 13、14 逐步升级)。

  • 检查扩展兼容性:

    SELECT * FROM pg_extension;  -- 记录当前安装的扩展
    
3. 停止旧版本服务,准备新版本二进制目录
# 停止旧版本(如 PostgreSQL 16)
systemctl stop postgresql-16

# 编译安装新版本(如 PostgreSQL 17)
# 示例(Rocky Linux/RHEL/openeuler):
curl -O https://ftp.postgresql.org/pub/source/v17.5/postgresql-17.5.tar.gz
curl -O https://ftp.postgresql.org/pub/source/v17.5/postgresql-17.5.tar.gz.md5

#校验md5值检查文件完整性 正常输出就是 postgresql-17.5.tar.gz: 成功
cat postgresql-*.tar.gz.md5 | md5sum -c -

#解压
tar -xvf postgresql-17.5.tar.gz

#创建新版本二进制文件目录
mkdir -p /var/lib/postgresql/17/main

#安装编译所需包,这个可以在其他同系统环境机器上线编译好
dnf install -y gcc make readline-devel zlib-devel flex bison libxml2-devel libxslt-devel openssl-devel pam-devel libicu-devel libpq-devel llvm-devel clang-devel clang lz4-devel zstd-devel openldap-devel systemd-devel

#在源码目录下,配置编译
cd postgresql-17.5
./configure --prefix=/var/lib/postgresql/17/main \
         --with-ssl=openssl 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值