在阅读有关流复制协议的文档时,我发现我可以获取快照名称。这似乎很方便在开始流式传输复制消息之前执行同步并确保我拥有所有数据。但是,在调用 pg_create_logical_replication_slot sql 函数时我无法获取快照(并且我的客户端未实现流复制协议)。我如何获取此快照名称以执行初始同步?
就上下文而言,我有一个仅附加表,并想将其用作某种“事件生产者”,使用逻辑复制来构建订阅机制。
在阅读有关流复制协议的文档时,我发现我可以获取快照名称。这似乎很方便在开始流式传输复制消息之前执行同步并确保我拥有所有数据。但是,在调用 pg_create_logical_replication_slot sql 函数时我无法获取快照(并且我的客户端未实现流复制协议)。我如何获取此快照名称以执行初始同步?
就上下文而言,我有一个仅附加表,并想将其用作某种“事件生产者”,使用逻辑复制来构建订阅机制。
您必须启动逻辑复制连接:
然后就可以使用该命令
CREATE_REPLICATION_SLOT
创建逻辑复制槽:要在该快照上创建
pg_dump
数据库,请使用--snapshot
选项pg_dump
,并保持上面的复制连接保持打开。复制槽必须用于逻辑复制或解码。