问题标签 [logical-decoding]
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 - PostgresQL:整个事务是否总是写入复制槽?
我创建了一个复制槽:
事务中的每个步骤在复制槽中都有自己的行。这是一个例子:
问题:
在事务生命周期的哪个时刻,事务步骤开始写入复制槽?
是否有可能在事务提交之前将事务步骤写入复制槽?
换句话说,是否有可能在任何给定时间只有一半事务被写入复制槽,如下所示:
非常感谢您对此的见解。
postgresql - 逻辑解码 - postgres - 多种输出格式
我一直在尝试使用 postgres 的逻辑解码来构建管道。但是,我有点困惑。请在下面找到我的问题
- 我已经建立了一个 pub-sub,我可以看到 2 个服务器之间的数据流动。但是,我还没有设置任何插槽。何时使用 create_replication_slots?
- 我期望在我已经实现的 2 台服务器之间复制表。但是,像旧值和新值这样的详细日志记录,我想存储在 S3 的文件中吗?我可以同时写入表和将详细的日志记录写入 s3 吗?
- 如果我在 server1 上有一个数据库 db1,在 server2 上有一个数据库 db2,我可以将它们放在 server3 上,数据库 server3.db1 连接到 server1.db1,server3.db2 连接到 server2.db2?
我正在使用 postgres10
请分享您对此的看法
exe - 如何解释可执行二进制文件
所有这些在 Unix 中没有扩展名的文件和在 Windows 中的“.exe”都是保持程序静态的好方法;我正在寻找的是对其二进制内容的解释。我的意思不是解码内容,而是以可靠的方式对其进行分组。
java - 将 0 到 255(1 字节)范围的 10 个不同值编码为 3 字节长度值并将其恢复为原始值
我需要解决问题:
我有 10 个不同的字节(2^8),每个字节的值范围是 0 到 255。它需要编码成 3-字节(2^24)的长度。稍后我需要从编码的 3 字节值中检索原始值。
我尝试了Cantor 和 Szuszik 函数,但编码值超过了 3 字节长度。
有没有其他替代方法可以解决数学或计算机科学/二进制逻辑中的这个问题?
postgresql - 如何在 postgres 上的级联备用服务器上进行逻辑复制?
是否可以在处于级联复制模式的备用服务器上启用逻辑复制?
postgresql - 流复制协议中的适当备用状态更新
问题是关于流复制协议。这非常简单,是为物理复制而设计的,能够:
- 发送服务器状态 >
Primary keepalive message
- 接收副本状态 >
Standby status update
- 发送 WAL 数据 >
XLogData
还有逻辑解码,使用相同的 XLogData 帧通过插件发送从 WAL 解码的数据,pglogical
而不是原始 WAL。
Streaming Replication 希望我提交 Standby 状态更新,以释放资源并删除旧的 WAL,根据文档
最后一个 WAL 字节的位置 + 1 ...
pglogical
在 XLogData 帧中使用自己的消息返回自己的 LSN 位置,但这些不可用。
当数据写入不同的数据库时,逻辑解码不起作用。并且插槽位置还需要更新,否则插槽将丢失。因此,唯一的方法是从 发送 LSN 位置Primary keepalive message
,根据文档发送
服务器上 WAL 的当前结束。
这令人困惑。如果插槽在位置 100 并且服务器已经在位置 200 上怎么办?
所以,
在试验和检查 pg_recvlogical 的来源之后,明白了,这Primary keepalive message
并不意味着“服务器上 WAL 的当前结束”,而是实际上从插槽位置逐渐增加到当前(pg_current_wal_lsn()
)服务器 LSN。中间有 XLogData 帧(如果有的话)。似乎,类似的消息是按 LSN 顺序接收的。
现在,问题:
Q1) 它是否记录在某处?
Q2) 这有意义吗?我是不是误会了什么?
Q3) 流式消息总是按 LSN 排序吗?
Q4) 可以提交职位Primary keepalive message
吗?