场景:广州地域云数据库 PostgreSQL 14,双可用区主备,另有一台只读实例。主实例 wal_level=logical。下游同 VPC 用逻辑订阅同步 public.orders,发布 orders_pub,订阅连主实例内网,端口 5432,copy_data=off。没手工建槽,槽名与订阅同名,tencentdb_force_enable_failover_slot 保持默认。
现象:
active 能回到 true。另一次在备库接收 WAL 慢于逻辑订阅时切换,两端都报错,复制停住。failover_slot_timeline_diverged_option 仍是默认 error。options=-c tencentdb_force_enable_failover_slot=off,只读侧能看到本地槽。只读一延迟,confirmed_flush_lsn 就不走,只读侧 WAL 比主库涨得快。已尝试:
pg_replication_slots 和 pg_failover_slots,槽名在 failover 视图里。restart_lsn 和 confirmed_flush_lsn,延迟期间位点不走。rewind,怕位点对不齐,下游重复入账。问题:
error 时,两端报错、复制暂停后怎么恢复?改成 rewind 会不会从切换点重放,下游做不到幂等时重复入账?相似问题