问题标签 [logical-replication]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - 如何在 Postgres 中选择复制下的表或在 Postgres 中列出复制下的数据库
我有 3 个节点 Postgres 集群,想知道逻辑复制下的表/数据库。我面临的问题是当领导者/主节点出现故障并且其中一个副本接管作为领导者/主节点时,然后随着时间的推移,当旧的领导者/主节点重新加入集群时。在这种情况下,我想知道在这个新副本的逻辑复制下发生了什么变化。
注意:新副本将被同步并包含与其他节点相同的数据。我正在使用 postgres 11 及更高版本
postgresql - 逻辑复制不会触发 FOR EACH STATEMENT Trigger only FOR EACH ROW
当我有以下情况时,我正在使用逻辑复制并设法触发触发器:
我也试过ALWAYS
-> REPLICA
。
但是当我使用时for each STATEMENT
,它不再工作。我更喜欢使用for each statement
,因为我也可以添加OR TRUNCATE
.
如何在 Truncate 上触发触发器?
postgresql - 获取错误`复制槽“pgl_testdb_pgnode_pdaaa79d_sub1”不存在`
我有一个启用逻辑复制的 3 节点集群,并且订阅者连接到虚拟 IP,指向集群设置下的当前领导者/主节点。数据正在流式传输/复制到订阅者。
每当主节点出现故障并且其中一个副本将自己提升为主节点时,在这种情况下,逻辑复制就会停止陈述以下错误
2021-04-13T09:32:12.912262+00:00 host2 postgres_2[13527]: [7-1] pid=13527,session=6075651c.34d7,line=1,sqlstate=42704,user_app=sub1,user=bpuser,db=testdb,client=10.186.34.182,txId=0 ERROR: replication slot "pgl_testdb_pgnode_pdaaa79d_sub1" does not exist
这个错误出现在新的Master上,我使用的是postgres 12
postgresql - 逻辑复制是否支持双向?
我在每个 PostgreSQL 实例上创建了两个发布,但在同一张表上。然后我从每个实例订阅了这些出版物。我没有在两个实例的日志中看到错误,但我可以看到复制工作在一侧,即单向。
逻辑复制是否支持双向?
谢谢
postgresql - Postgres 逻辑复制 - 在不访问发布服务器的情况下监控订阅服务器
我希望每个订阅服务器在不访问发布服务器的情况下监控其运行状况
1.我使用发布者的以下代码来获取滞后。是否也可以从订阅服务器计算延迟
如果我从订户处使用以下内容
我仍然需要发布者提供以下内容select pg_current_wal_lsn();
有没有办法在不访问发布者的情况下知道滞后?
2. 我在导致复制停止的表之一有重复值,但是
所有表格都显示为“r”。
- 我怎么知道哪个表有问题
- 我怎么知道复制停止的原因是什么
3. 订阅者如何知道它的逻辑槽甚至发布者被丢弃了
postgresql - 解除关联的复制槽是否等同于新建复制槽
是否ALTER SUBSCRIPTION a1 SET (slot_name = NONE)
将复制槽带入类似于新创建的复制槽的新状态?
我有一个订阅 a1 指向复制槽 rs1 并监听发布pub1。
我将取消 a1 与复制槽 rs1 的关联
并且将让 a2 使用复制槽 rs1 并监听发布pub2
使用指向与新订阅不同的发布的订阅使用的先前使用的复制槽是否有效?
如果使用旧复制槽的新订阅是新创建的,或者它已经存在但与之前的复制槽解除关联,这会有所不同吗?
postgresql - Postgres - 在插槽删除和创建之间执行的数据更改未复制到订阅者
我正在测试逻辑复制以更好地了解其行为。
我注意到,如果我删除复制槽,将数据插入表然后创建复制槽,那么在复制槽被删除和重新创建之间插入的数据不同步。
订户如何检测到这种情况?
有没有办法通知订阅者他们需要重新创建订阅?
这种情况是否类似于在新提升的主服务器上创建复制槽的 HA 故障转移?
postgresql - Postgres 逻辑复制:复制槽、订阅者和发布者创建顺序很重要吗?
我遇到了一个场景,它说出版物不存在,尽管它确实存在。我怀疑造成这种情况的原因是脚本在发布者和订阅者服务器上运行的顺序。
以任何顺序创建“复制槽”、订阅者和发布者是否有效?
postgresql - Postgres 逻辑复制 - 限制每个发布者/订阅者的带宽
我有一个出版商,大约有 50 个订阅者。不经常(每月几次)将大小为 30MB 的二进制文件写入数据库。此时所有订阅者都在获取此文件,但我遇到了网络带宽问题。
是否可以限制(在 Postgres 或操作系统中)每个发布者/订阅者的逻辑复制使用的带宽?
是否可以限制首次同步期间使用的带宽?
postgresql - 流复制故障转移,是否应该重建这些服务器上的逻辑复制订阅者?
我的设置有:
在站点 A 上具有流复制的两台 Postgres 服务器(一主一从)加上 在站点 B 上具有流复制的两台 Postgres 服务器(一主一从)
我想添加从站点 A 主服务器(和逻辑发布者)到站点 B 主服务器(和逻辑订阅者)的逻辑复制。
如果发布者站点有故障转移,我们需要重建逻辑复制,因为新提升的主节点没有复制槽。
但是,我们是否需要在订阅者所在的站点 B 上为故障转移重建逻辑复制?我假设在故障转移期间,我们可能会丢失写入站点 B 中服务器 1 中的订户的数据,但没有到达站点 B 中的服务器 2。有没有办法防止订户端丢失数据,因此不需要重建逻辑复制?