2

实际上我正在使用 WAL 文件来设计复制工具,我需要知道是否有任何方法可以获取在特定事务 id (xid) 中执行的 sql 语句

这是我从处理 pg_xlog 目录中的 WAL 文件中获得的信息块...

INSERT INTO "16425" ([cur:0/192E8EAC, xid:1111, rmid:10(Heap), len:39/67, prev:0/112E8E68] insert: s/d/r:1663/16384/16425 blk/off:527/44 header: t_infomask2 3 t_infomask 2048 t_hoff 24
INSERT INTO "16425" ([cur:0/192E8EF0, xid:1111, rmid:10(Heap), len:39/67, prev:0/112E8EAC] insert: s/d/r:1663/16384/16425 blk/off:527/45 header: t_infomask2 3 t_infomask 2048 t_hoff 24 
4

1 回答 1

2

不,这不容易。WAL 在低得多的级别上工作。

有一些工作正在进行中,类似于您在 PostgreSQL 9.3 中描述的内容,但这是一个非常大的项目。在 pgsql-hackers 列表中搜索“逻辑复制”和“BDR”以了解更多信息。

于 2012-12-13T12:21:42.283 回答