微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

postgresql COPY 是否可以通过逻辑复制进行复制?

如何解决postgresql COPY 是否可以通过逻辑复制进行复制?

我在两个 postgres 实例之间设置了几个(逻辑)复制表。所有 SELECT、INSERT、UPDATE、DELETE 事务都按预期复制。

我的用例是从逻辑转储文件自定义格式、copY 或 INSERT?)中恢复/追加几千行

TruncATE 不会被复制...在我的理解中(这也依赖于其他商业数据库供应商如何做到这一点的知识),因为它绕过了复制机制所需的事务日志(这将是另一个问题,如果合乎逻辑复制依赖于 WAL 段?)

由于我找不到任何关于它的文档,我想知道:

  • copY 绕过事务日志 (WAL)?
  • copY 对逻辑复制有任何限制,因此实际上在复制环境中必须使用 INSERT?

附言抱歉,如果我在这里混淆了事情,我真的很想澄清这些主题以更好地了解它们是如何协同工作的

解决方法

有几件事需要设置:

  • 逻辑复制supports TRUNCATE

    支持复制 TRUNCATE 命令

    这是在 v11 中引入的

  • COPYTRUNCATE 都没有绕过 WAL

  • COPY 数据一直使用逻辑复制进行复制,就像所有其他数据修改语句一样

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。