Postgresql 有没有可能在零停机的情况下将postgres 9.6升级到10。可以遵循哪些方法?

Postgresql 有没有可能在零停机的情况下将postgres 9.6升级到10。可以遵循哪些方法?,postgresql,postgresql-9.6,postgresql-10,Postgresql,Postgresql 9.6,Postgresql 10,我正在尝试在不停机的情况下将我的postgres数据库从9.6升级到10。这可以做到吗?因为在您的情况下,“没有名字的马”是一个非常好的选择 唯一的问题是9.6还没有内部实现,所以您必须在两个DB上都使用扩展“pglogical”-这里我找到了一些描述--跳过关于Docker的部分,看看pglogical是如何工作的 唯一的小问题是必须将pglogical添加到“shared_preload_libraries”参数中,并且必须重新启动postgresql服务,这在生产过程中有时会很困难 我用p

我正在尝试在不停机的情况下将我的postgres数据库从9.6升级到10。这可以做到吗?

因为在您的情况下,“没有名字的马”是一个非常好的选择

唯一的问题是9.6还没有内部实现,所以您必须在两个DB上都使用扩展“pglogical”-这里我找到了一些描述--跳过关于Docker的部分,看看pglogical是如何工作的

唯一的小问题是必须将pglogical添加到“shared_preload_libraries”参数中,并且必须重新启动postgresql服务,这在生产过程中有时会很困难

我用pglogical做了很多测试(这里有一些注释),尽管最后我从未在生产中使用过pglogical。所以我没有长期使用的经验

但我认为有些问题可能类似于第10页和第11页中逻辑复制的内部实现。这是我目前在第11页使用内部逻辑复制时的笔记--也许它会对你有所帮助

我给你的建议是:

  • 在云虚拟机上的其他机器上制作PG 9.6数据库的热备份副本,使用完全相同的操作系统,如果可能,使用PG_basebackup进行磁盘类型和配置-您可以在这里找到一些灵感:
  • 或者,如果您已经使用pg_basebackup在其他计算机或VM()上对db还原最新备份进行tar备份
  • start作为普通服务器(而不是热备用),并针对PG 10的一些测试安装在DB的这个副本上测试pglogical-尽可能靠近生产环境进行测试,包括至少模拟类似强度的DML操作-这将显示计算机/VM上的负载差异
  • 我强烈建议设置监控,例如使用telegraf+influxdb+Grafana(我认为最简单的实现),以便以后能够分析CPU和内存使用情况-这对于生产使用来说是非常关键的一部分
  • 希望在简短而成功的测试之后实施它并庆祝您的成功:-),请写下您的经历。因为我相信很多人都会欢迎的
或者您可以使用类似Slony的复制解决方案,然后切换。但这不是一件简单的事情。你的数据库有多大,每天插入/更新/删除多少数据?500G。。。约10k ins/upd/del
pg_升级
,带有
--link
选项,但应允许非常短的停机时间。