问题描述
我在两个 postgres 实例之间设置了几个(逻辑)复制表。所有 SELECT、INSERT、UPDATE、DELETE 事务都按预期复制。
我的用例是从逻辑转储文件(自定义格式、copY 或 INSERT?)中恢复/追加几千行
TruncATE 不会被复制...在我的理解中(这也依赖于其他商业数据库供应商如何做到这一点的知识),因为它绕过了复制机制所需的事务日志(这将是另一个问题,如果合乎逻辑复制依赖于 WAL 段?)
由于我找不到任何关于它的文档,我想知道:
附言抱歉,如果我在这里混淆了事情,我真的很想澄清这些主题以更好地了解它们是如何协同工作的
解决方法
有几件事需要设置:
-
逻辑复制supports
TRUNCATE
:支持复制
TRUNCATE
命令这是在 v11 中引入的
-
COPY
和TRUNCATE
都没有绕过 WAL -
COPY
数据一直使用逻辑复制进行复制,就像所有其他数据修改语句一样