1

postgresql如何升级版本

 1 year ago
source link: https://blog.51cto.com/u_13874232/5783086
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

postgresql如何升级版本

精选 原创

小版本升级

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

大版本升级

官方提供三种方式

  1. Upgrading Data via pg_dumpall,使用 pg_dumpall / pg_restore 进行升级
  2. Upgrading Data via pg_upgrade,使用 pg_upgrade 进行升级
  3. 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 逻辑复制支持跨版本之间的数据复制,而且支持不同平台之间的复制,因此也可以用于实现版本升级。我们可以安装一个新版本的数据库作为复制的从节点,当数据已经同步时执行一次主从切换,然后关闭旧版本的主节点。主从切换的升级方法通常只需要几秒钟就能完成,利用第三方高可用组件甚至可以实现零停机时间升级。

  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK