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

问题描述

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

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

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

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

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

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

解决方法

有几件事需要设置:

  • 逻辑复制supports TRUNCATE

    支持复制 TRUNCATE 命令

    这是在 v11 中引入的

  • COPYTRUNCATE 都没有绕过 WAL

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...