1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

PostgreSQL数据库版本升级

PostgreSQL数据库版本升级

你好,我是本际云服务器推荐网的小编小本本。在数据库使用过程中,会遇到一些已知的BUG问题。为了避免这些问题对业务系统造成的不稳定性,有必要进行数据库版本升级。本文主要分享PG小版本升级、跨版本升级和借助逻辑复制进行数据库升级的相关方法。

PostgreSQL数据库版本升级

PG小版本升级

PG小版本的迭代不会改变内部的存储格式,因此升级小版本只需要安装最新版本后,使用新版本重新启动数据库即可。具体步骤如下:

  1. 备份当前数据目录。
  2. 安装最新版本数据库。
  3. 使用新版本启动数据库。
  4. 调整环境变量(PGHOME/LD_LIBRARY_PATH等)。

注:在安装新版本数据库时,要保证数据库块大小一致。

PG跨版本升级

在PG大版本升级时,可以通过pg_upgrade进行升级。在9.4版本之后可以通过第三方扩展插件pg_logical进行逻辑复制升级;10版本社区加入了逻辑复制功能,可以借助逻辑复制进行升级。具体步骤如下:

  1. 备份全局信息、角色和表空间。
  2. 备份数据。
  3. 在新版本数据库中进行恢复。
  4. 建议使用pg_upgrade-c参数检查新旧版本的兼容性。
  5. 安装新版本并初始化数据目录。
  6. 使用pg_upgrade进行升级。

注:PG大版本升级在9.4版本之间只能通过pg_upgrade进行升级,9.4版本之后可以通过第三方扩展插件pg_logical进行逻辑复制升级。

借助逻辑复制进行版本升级

逻辑复制是基于逻辑解析,主库将表中的WAL日志解析成一定格式并发送给逻辑备库,逻辑备库收到解析后的WAL日志进行重做,从而实现表数据同步。使用逻辑复制进行版本升级的步骤如下:

  1. 转储全局信息、角色、表空间。
  2. 转储表结构信息。
  3. 在目标端恢复备份。
  4. 在源数据库上创建发布。
  5. 在目标端创建订阅。

注:逻辑复制目前不支持DDL解析,只能解析INSERT/UPDATE/DELETE/TRUNCATE;TEMPORARY表和UNLOGGED表不被复制,表必须有PRIMARY KEY或者唯一约束,否则UPDATE、DELETE操作无法复制;序列和大对象不被复制;新增加的表,不会自动加入订阅。

以上是PG小版本升级、跨版本升级和借助逻辑复制进行版本升级的相关方法,希望对你有所帮助。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/5932.html