我正在尝试将Postgres数据库从9.6升级到10,而不会造成任何停机。能做到吗?
答案 0 :(得分:1)
正如“ a_horse_with_no_name”中提到的那样,逻辑复制在您的情况下是一个很好的选择。
唯一的问题是9.6还没有内部实现,因此您必须在两个DB上都使用扩展名“ pgologic”-在这里我找到了一些描述-https://rosenfeld.herokuapp.com/en/articles/infrastructure/2017-11-10-upgrading-postgresql-from-9-6-to-10-with-minimal-downtime-using-pglogical-略过有关Docker的部分,并了解pgologic的工作方式。
唯一的小问题是必须将pgologic添加到“ shared_preload_libraries”参数中,并且必须重新启动PostgreSQL服务,这有时在生产中可能会很困难...
我在pgologic上做了很多测试(这里有一些注释-http://postgresql.freeideas.cz/pglogical-postgresql-9-6-small-hints-debian/),尽管最后我从未在生产中使用pgologic。因此,我没有长期使用的经验。
但是我认为某些问题可能与PG 10和11中的逻辑复制的内部实现类似。因此,这是我目前在PG 11上使用内部逻辑复制的注意事项-http://postgresql.freeideas.cz/setting-logical-replication-is-not-entirely-straight-forward/-可能来自它会帮助您。
我对您的建议是: