PostgreSQL 数据库跨版本升级常用方案

文章目录

        升级方案概述
        通过逻辑备份与还原进行升级
        利用 pg_upgrade 工具进行升级
        使用逻辑复制功能进行升级
        总结

对于企业而言,将数据库系统升级到新版本通常可以获得更好的性能、更多的功能、最新的安全补丁和错误修复等。因此,本文就来介绍一下 PostgreSQL 数据库版本升级的 3 种常用方案。

如果觉得文章有用,欢迎评论📝、点赞👍、推荐🎁
升级方案概述

PostgreSQL 版本号由主要版本和次要版本组成。例如,PostgreSQL 12.4 中的 12 是主要版本,4 是次要版本;PostgreSQL 10.0 之前的版本由 3 个数字组成,例如 9.6.19,其中 9.6 是主要版本,19 是次要版本。

发布次要版本是不会改变内存的存储格式,因此总是和相同的主要版本兼容。例如,PostgreSQL 12.4 和 PostgreSQL 12.0 以及后续的 PostgreSQL 12.x 兼容。对于这些兼容版本的升级非常简单,只需要关闭数据库服务,安装替换二进制的可执行文件,重新启动服务即可。

接下来,我们主要讨论 PostgreSQL 的跨版本升级问题,例如从 PostgreSQL 12.x 升级到 PostgreSQL 13.y。主要版本的升级可能会修改内部数据的存储格式,因此需要执行额外的操作。常用的跨版本升级方法和适用场景如下:
 

    📝如果使用厂商提供的 PostgreSQL 定制版本,也可能通过他们提供的工具实现版本升级,具体参考相关文档。

注意事项:升级主要版本通过会导致用户可见的不兼容性,因此应用程序可能需要进行相应的修改。具体的变化可以参考发行说明,尤其是“Migration”部分的内容;如果跨多个主要版本进行升级,需要阅读每个中间版本的发行说明。
通过逻辑备份与还原进行升级

传统的跨版本升级方法利用 pg_dump/pg_dumpall 逻辑备份导出数据库,然后在新版本中通过 pg_restore 进行还原。导出旧版本数据库时推荐使用新版本的 pg_dump/pg_dumpall 工具,可以利用最新的并行导出和还原功能,同时可以减少数据库膨胀问题。

逻辑备份与还原非常简单但速度比较慢,停机时间取决于数据库的大小,因此适合中小型数据库的升级。

下面我们介绍这种升级方法的具体操作,假如当前 PostgreSQL 软件的安装目录位于 /usr/local/pgsql,同时数据目录位于 /usr/local/pgsql/data,我们在同一台服务器上进行升级。

    执行逻辑备份之前停止应用程序,确保没有数据更新,因为备份开始后的更新不会被导出。如有必要,可以修改 /usr/local/pgsql/data/pg_hba.conf 文件禁止其他人访问数据库。

    然后备份数据库:

    pg_dumpall > outputfile
 

    如果已经安装了新版本的 PostgreSQL,可以使用新版本的 pg_dumpall 命令备份旧版本数据库。

    停止旧版本的后台服务:

    pg_ctl stop
 

    或者通过其他方式停止后台服务。

    如果安装目录没有包含特定版本标识,可以将目录改名,必要时可以再修改回来。可以使用类似以下的命令重命名目录:

    mv /usr/local/pgsql /usr/local/pgsql.old
 

    安装新版本 PostgreSQL 软件,假如安装目录仍然是 /usr/local/pgsql。

更多请见:http://www.mark-to-win.com/tutorial/51559.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值