首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgres复制失败“新的时间线y在当前恢复点之前派生出当前数据库系统时间线x”

Postgres复制失败“新的时间线y在当前恢复点之前派生出当前数据库系统时间线x”
EN

Stack Overflow用户
提问于 2019-08-07 01:14:44
回答 1查看 1.1K关注 0票数 0

我们有一个PostgreSQL设置,每个可用区中有3个节点,每个可用区都跨可用区复制。所有复制都是带异步复制的热待机。我们利用每个从AZ群集的复制插槽。

我们经常对DB容器进行自动滚动升级。一段时间后,slaves停止从主群集复制,并显示如下消息:

代码语言:javascript
复制
2019-08-06 16:57:11.061 UTC [2987482] LOG:  replication terminated by primary 
server
2019-08-06 16:57:11.061 UTC [2987482] DETAIL:  End of WAL reached on timeline 3 
at 0/293D7AE0.
2019-08-06 16:57:11.136 UTC [2987477] LOG:  new timeline 4 forked off current 
database system timeline 3 before current recovery point 0/293D7D28

我正在寻找一些指针来解决这个问题。

我们尝试将每个集群缩小到每个AZ中的单个节点,但在那里我们没有看到这个问题。我的理解是,由于跨AZ的复制是在前面的代理发生的,因此在滚动升级期间,一旦主服务器发生更改,从服务器就不确定如何继续复制。

我想知道在复制过程中,协议中是否有一些东西可以处理这样的事情。

slaves上的recovery.conf如下所示:

代码语言:javascript
复制
standby_mode = 'on'
primary_conninfo = 'host=foo-bar.com port=5432 user=repluser password= 
sslmode=verify-ca sslcert=/etc/db_repl_secrets/tls.crt 
sslkey=/etc/db_repl_secrets/tls.key sslrootcert=/etc/db_repl_secrets/ca.crt'
primary_slot_name = 'stolon_us_east_1'
recovery_target_timeline = 'latest'
EN

回答 1

Stack Overflow用户

发布于 2019-08-07 13:51:41

该消息可能表明备用服务器在赶上主服务器之前已经升级,现在主服务器不能充当备用服务器的角色。

在将服务器用作备用服务器之前,您是否在服务器上运行了pg_rewind

如果我的解释不正确,请更详细地描述您的操作过程。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57381062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档