暂无图片
复制槽的问题,高手过来解答下
我来答
分享
暂无图片 匿名用户
复制槽的问题,高手过来解答下

物理复制中,可以不配置物理复制槽,但是逻辑复制的必须配置复制槽,


疑问,没有物理复制槽 的情况下,从库重启或者从库复制断了,没有复制槽记录位置点,主库如何知道从哪里开始发送给从库,从库从哪里开始继续应用redo?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
彭冲
  • 没有物理复制槽就有你说的这种风险:网络中断或重启,重新连接时就会发现所需要的WAL已经被删除了,流复制就中断了,必须重建。

  • 物理复制槽就是为了解决这个问题,但物理复制槽不像逻辑复制场景,创建订阅就自动去发布端创建逻辑复制槽,删除订阅就去发布端销毁复制槽。

  • 虽然逻辑复制设计是配套就带复制槽,但也存在缺陷,非常多的案例是不活跃,不使用的复制槽引起磁盘问题。

  • 物理复制槽要考虑你的需求,再决定是否要再主库手工创建复制槽,从库配置primary_slot_name

暂无图片 评论
暂无图片 有用 2
reddey
2025-08-26
物理复制槽要考虑需求,那么应用场景是什么?物理复制槽会存在像逻辑复制槽那样的缺陷吗?
雷鹏

备库会记录WAL接收和应用的位置,通过函数或者视图能够查询当前情况 pg_last_wal_receive_lsn()  pg_last_wal_replay_lsn()  pg_stat_wal_receiver;

这些信息会持久化到控制文件和WAL文件本身,备库启动后,会把自己需要的WAL和点位信息发送给主库,主库再检查自己有没有,有就给,没有就报错。

暂无图片 评论
暂无图片 有用 3
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏