PostgreSQL大版本如何升级?

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️




本文详细讲解了从14.11升级到15.6,使用pg_dumpall进行备份恢复升级的过程

📣 前沿

PostgreSQL版本发布规则,一年一个大版本,一个季度一个小版本;PG遇到的BUG问题,社区会很快进行修复,并在下一个版本中发布,因此有必要进行对数据库版本升级,避免触发已知的BUG带来业务系统的不稳定。

📣 1.确认旧库编译

如果使用源码编译安装,configure 配置和原库一致。
可以使用pg_config查看旧版本数据库安装时的配置参数。

📣 2.安装新版本数据库

[root@pgpcp ~]# cp /opt/postgresql-15.6.tar.gz /pgccc/soft
[root@pgpcp ~]# chown -R postgres:postgres /pgccc/soft
[root@pgpcp ~]# chmod -R 775 /pgccc/soft

[root@pgpcp ~]# su - postgres
[postgres@pgpcp ~]$ cd /pgccc/soft/
[postgres@pgpcp soft]$ tar zxvf postgresql-15.6.tar.gz

[postgres@pgpcp ~] m k d i r − p / p g c c c / p g s q l − 15 [ p o s t g r e s @ p g p c p   ] mkdir -p /pgccc/pgsql-15 [postgres@pgpcp ~] mkdirp/pgccc/pgsql15[postgres@pgpcp ]cd /pgccc/soft/postgresql-15.6
[postgres@pgpcp postgresql-15.6]$./configure --prefix=/pgccc/pgsql-15 --without-readline

–编译及安装
[postgres@pgpcp postgresql-15.6]$ make && make install

📣 3.新版数据库初始化目录

注意:只初始化数据库,不启动
/pgccc/pgsql-15/bin/initdb -D
/pgccc/pgsql-15/pgdata -E UTF8
–locale=en_US.utf8 -U postgres

📣 4.旧版本数据库进行备份

pg_dumpall -Upostgres -f
/home/postgres/dumpall_data.sql

📣 5.停旧版本数据库

pg_ctl -D /pgccc/pgdata stop

📣 6.检查新旧数据库版本兼容性

注意:如果版本兼容性有问题,需要解决
cd /pgccc/pgsql-15/bin/
./pg_upgrade --old-datadir /pgccc/pgdata/
–new-datadir /pgccc/pgsql-15/pgdata/
–old-bindir /pgccc/pgsql-14/bin/
–new-bindir /pgccc/pgsql-15/bin/ --check

📣 7.升级数据库

cd /pgccc/pgsql-15/bin/
./pg_upgrade --old-datadir /pgccc/pgdata/
–new-datadir /pgccc/pgsql-15/pgdata/
–old-bindir /pgccc/pgsql-14/bin/
–new-bindir /pgccc/pgsql-15/bin/

📣 8.启动新版本数据库

cd /pgccc/pgsql-15/bin/
./pg_ctl -D /pgccc/pgsql-15/pgdata/ start

📣 9.调整环境变量

vi /home/postgres/.bash_profile

export PATH
export PS1="[\u@\h \W]\$"
export LANG=en_US.UTF-8
export PGPORT=5432
export PGDATA=/pgccc/pgsql-15/pgdata
export PGHOME=/pgccc/pgsql-15
export PATH=/pgccc/pgsql-15/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:.
export PGUSER=postgres
export PGDATABASE=postgres

[postgres@pgpcp ~]$source /home/postgres/.bash_profile

📣 10.收集统计信息

vacuumdb --all --analyze-in-stages

📣 11.删除旧版本数据库的数据

cd /pgccc/pgsql-15/bin/
./delete_old_cluster.sh

📣 12.总结

Postgresql是一个非常活跃的社区开源项目,更新速度很快,每一次版本的更新都会积极的修复旧版本的BUG,性能上也会有不同幅度的提升。

  • 26
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 31
    评论
在 Linux 下升级 PostgreSQL 版本需要以下步骤: 1. 备份数据库:在升级之前,请务必备份您的 PostgreSQL 数据库。您可以使用 `pg_dump` 工具来备份数据库。 2. 下载新版本:您需要下载并安装新版本PostgreSQL。您可以从官方网站下载对应版本的二进制包或源代码,并根据需要进行编译安装。 3. 停止 PostgreSQL 服务:在升级之前,您需要停止正在运行的 PostgreSQL 服务。您可以使用以下命令停止服务: ``` sudo systemctl stop postgresql ``` 4. 安装新版本:安装新版本PostgreSQL,具体安装方法取决于您的安装方式,可以参考官方文档。 5. 升级数据库:使用 `pg_upgrade` 工具升级数据库。`pg_upgrade` 工具会将旧版本数据库文件转换为新版本的格式。注意:升级数据库时需要以超级用户身份运行 `pg_upgrade` 工具。 6. 启动 PostgreSQL 服务:升级完成后,您需要重新启动 PostgreSQL 服务。您可以使用以下命令启动服务: ``` sudo systemctl start postgresql ``` 7. 验证升级:启动服务后,使用 `psql` 工具连接到数据库并验证升级是否成功。 ``` psql -U postgres -d <your_database> ``` 如果连接成功并且可以访问您的数据库,则表示升级已经成功完成。 注意:升级 PostgreSQL 版本可能会涉及到大量的数据迁移和格式转换,因此在升级之前,请务必备份您的数据,以防止数据丢失。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT邦德

客户部署资料,步骤超详细

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值