postgresql如何升级版本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgresql如何升级版本相关的知识,希望对你有一定的参考价值。
小版本升级
小版本升级不会改变内部的存储格式,因此总是和大版本兼容。例如,PostgreSQL 12.4 和 PostgreSQL 12.0 以及后续的 PostgreSQL 12.x 兼容。对于这些兼容版本的升级非常简单,只需要关闭数据库服务,安装替换二进制的可执行文件,重新启动服务即可。
大版本升级
官方提供三种方式
- Upgrading Data via pg_dumpall,使用 pg_dumpall / pg_restore 进行升级
- Upgrading Data via pg_upgrade,使用 pg_upgrade 进行升级
- Upgrading Data via Replication,使用逻辑复制进行升级
pg_dump方式
首先是最原始的pg_dump的方式,可以使用unix pipe,也可以使用-j 并行的方式,不过得配合pg_restore,需要额外去备份一些全局的信息如用户和表空间等。
sudo -u postgres pg_dump -h /path/to/old/instance.sock | sudo -u postgres psql -h /path/to/new/instance.sock
pg_dumpall
pg_dumpall的优势在于,可以导出全局的对象,如用户、表空间、全局的一些权限信息等等,所以相较于pg_dump就不需要导出用户信息等全局信息这一步骤了,不过不支持 -j并行,和pg_dump的步骤十分类似。
pg_upgrade方式
pg_upgrade是官方提供的一个升级工具,执行升级之前,需要使用 -c 或者 --check选项,进行升级前的兼容性检查, 可以发现插件、数据类型不兼容等问题。不过需要注意的是,源端和目标端的编译参数、segsize、walsegsize等等得是一样的,可以使用pg_config查看源端的编译参数。
逻辑复制方式
PostgreSQL 逻辑复制支持跨版本之间的数据复制,而且支持不同平台之间的复制,因此也可以用于实现版本升级。我们可以安装一个新版本的数据库作为复制的从节点,当数据已经同步时执行一次主从切换,然后关闭旧版本的主节点。主从切换的升级方法通常只需要几秒钟就能完成,利用第三方高可用组件甚至可以实现零停机时间升级。
以上是关于postgresql如何升级版本的主要内容,如果未能解决你的问题,请参考以下文章