postgresql COPY 是否可通过逻辑复制进行复制?
Is postgresql COPY replicable via logical replication?
我在两个 postgres 实例之间设置了几个(逻辑上的)复制表。所有 SELECT、INSERT、UPDATE、DELETE 事务均按预期复制。
我的用例是 restore/append 逻辑转储文件中的几千行(自定义格式,COPY 或 INSERT?)
TRUNCATE 未被复制...在我的理解中(这也依赖于其他商业数据库供应商如何做的知识)因为它绕过了复制机制所需的事务日志(这将是另一个问题,如果逻辑复制依赖于 WAL 段?)
由于我找不到任何关于它的文档,我想知道是否:
- COPY 绕过事务日志 (WAL)?
- COPY 对逻辑复制有任何限制,因此实际上在复制环境中必须使用 INSERT?
P.S。抱歉,如果我在这里搞混了,我真的很想清楚这些主题,以便更好地理解它们是如何协同工作的
有几点需要纠正:
逻辑复制supports TRUNCATE
:
Replication of TRUNCATE
commands is supported
这是在 v11 中引入的
既不COPY
也不TRUNCATE
绕过WAL
COPY
数据总是通过逻辑复制进行复制,就像所有其他数据修改语句一样
我在两个 postgres 实例之间设置了几个(逻辑上的)复制表。所有 SELECT、INSERT、UPDATE、DELETE 事务均按预期复制。
我的用例是 restore/append 逻辑转储文件中的几千行(自定义格式,COPY 或 INSERT?)
TRUNCATE 未被复制...在我的理解中(这也依赖于其他商业数据库供应商如何做的知识)因为它绕过了复制机制所需的事务日志(这将是另一个问题,如果逻辑复制依赖于 WAL 段?)
由于我找不到任何关于它的文档,我想知道是否:
- COPY 绕过事务日志 (WAL)?
- COPY 对逻辑复制有任何限制,因此实际上在复制环境中必须使用 INSERT?
P.S。抱歉,如果我在这里搞混了,我真的很想清楚这些主题,以便更好地理解它们是如何协同工作的
有几点需要纠正:
逻辑复制supports
TRUNCATE
:Replication of
TRUNCATE
commands is supported这是在 v11 中引入的
既不
COPY
也不TRUNCATE
绕过WALCOPY
数据总是通过逻辑复制进行复制,就像所有其他数据修改语句一样