pgcat增强的 PostgreSQL 逻辑复制软件

联合创作 · 2023-09-30 21:00

Why pgcat?


PostgreSQL 内置的逻辑复制有如下缺陷:



  • 只支持普通表作为复制目标

  • 不能过滤复制数据,使得两个机房之间互相复制时发生死循环

  • 不支持表名映射

  • 没有冲突解决机制


pgcat 做了如下增强:



  • 支持所有表类型,包括 view、fdw、分区表、citus的分布式表等等

  • 只复制本地产生的数据变更,使得可以机房之间安全复制

  • 表名映射,可以将多个源表映射到一个目标表

  • 可选的last-writer-win(类似Cassandra)冲突解决机制(通过trigger来实现)

  • 复制进度保存到单独的表,使得进度可以failover


pgcat 重用了 postgresql 内置的 pgoutput ouput plugin 和 publication,使用 golang 重写了 subscription 部分,以单独的进程来运行。

浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报