pg_decoderbufs 是一款以 protocol buffer 格式进行逻辑解析的插件。
pg_decoderbufs 只能对 DML (Delete、Update、Insert )进行逻辑解析,解析结果为 protocol buffer 格式。
Options 名称 | debug-mode |
---|---|
含义 | 在进行逻辑解码后,将解码结果以字符模式输出。 |
使用示例 |
说明 关于
|
PostgreSQL 类型与 decoderbuf 字段的映射信息如下:
PostgreSQL Type OID | Decoderbuf Field |
---|---|
BOOLOID | datum_boolean |
INT2OID | datum_int32 |
INT4OID | datum_int32 |
INT8OID | datum_int64 |
OIDOID | datum_int64 |
FLOAT4OID | datum_float |
FLOAT8OID | datum_double |
NUMERICOID | datum_double |
CHAROID | datum_string |
VARCHAROID | datum_string |
BPCHAROID | datum_string |
TEXTOID | datum_string |
JSONOID | datum_string |
XMLOID | datum_string |
UUIDOID | datum_string |
TIMESTAMPOID | datum_string |
TIMESTAMPTZOID | datum_string |
BYTEAOID | datum_bytes |
POINTOID | datum_point |
PostGIS geometry | datum_point |
PostGIS geography | datum_point |
已将 wal_level
设置成 logical
。
待逻辑解析的表有唯一索引、主键或者已经指定 REPLICA IDENTITY。
创建发布,并指定逻辑解析插件为 decoderbufs
。
select pg_create_logical_replication_slot('demo', 'decoderbufs');
开启读写,并以 debug-mode
模式,查看逻辑解析。
select * from pg_logical_slot_peek_changes('demo', null, null, 'debug-mode', '1'); select * from pg_logical_slot_get_changes('demo', null, null, 'debug-mode', '1'); select * from pg_replication_slots;