pg_recvlogical
功能介绍
pg_recvlogical工具通过连接指定的DN,创建或删除逻辑复制槽,以及持续、实时的从该DN获取逻辑解码中间结果,输出到文件或标准输出。
语法
pg_recvlogical [OPTION]...
其中,逻辑复制槽行为参数为必选参数,必须指定一个。其余参数为可选参数,如不指定,将会读取默认值。
参数说明
逻辑复制槽行为参数:必选参数。
--create
创建一个新的逻辑复制槽。
--start
启动该逻辑复制槽的流复制。
--drop
删除一个逻辑复制槽。
连接参数:
-d, —dbname=DBNAME
连接的目标数据库名。
-h, —host=HOSTNAME
连接的目标主机名或socket。
-p, —port=PORT
连接的目标DN的HA端口号。
-U, —username=NAME
连接目标库所使用的用户名。
-w, —no-password
不使用密码进行连接。
-W, —password
使用指定密码进行连接。
复制参数:
-F —fsync-interval=INTERVAL
同步到目标输出文件的间隔时间。
单位为秒,默认值10。
-o, —option=NAME[=VALUE]
指定向逻辑复制槽的输出插件添加参数。
参数的取值为:include-xids、skip-empty-xacts、include-timestamp。
详细请参见《开发者指南》中“SQL参考 > 函数和操作符 > 系统管理函数 > 逻辑复制函数 > options”章节。
-P, —plugin=PLUGIN
指定使用的逻辑复制槽输出插件。
默认值为mppdb_decoding。
-s, —status-interval=INTERVAL
发送的心跳包间隔时间。
单位为秒,默认值10。
-S, —slot=SLOT
指定逻辑复制槽的名称。
-I, —startpos=PTR
当使用已有逻辑复制槽时,指定初始复制的LSN位置。
其它参数:
-f, —file=FILE
设置输出到指定文件。
直接使用”-“表示输出到stdout。
-n, —no-loop
指定此参数,连接失败后不重试。
-v, —verbose
输出详细信息。
-V, —version
输出版本信息,随后立即退出。
-?, —help
输出帮助信息,随后立即退出。
示例
创建名为test_slot的逻辑复制槽。
pg_recvlogical -d postgres -S test_slot -p 26000 --create
开启流式解码,结果输出到stdout。
pg_recvlogical -d postgres -S test_slot -p 26000 --start -v -f -
pg_recvlogical: starting log streaming at 0/0 (slot test_slot)
pg_recvlogical: initiated streaming
pg_recvlogical: confirming write up to 0/0, flush to 0/0 (slot test_slot)
pg_recvlogical: confirming write up to 0/2A342E8, flush to 0/2A342E8 (slot test_slot)
pg_recvlogical: confirming write up to 0/2A34320, flush to 0/2A34320 (slot test_slot)
pg_recvlogical: confirming write up to 0/2A34320, flush to 0/2A34320 (slot test_slot)
BEGIN 16039
table public.t: INSERT: a[integer]:4 b[integer]:4
COMMIT 16039
pg_recvlogical: confirming write up to 0/2A34450, flush to 0/2A34450 (slot test_slot)
pg_recvlogical: confirming write up to 0/2A34450, flush to 0/2A34450 (slot test_slot)
删除逻辑复制槽。
pg_recvlogical -d postgres -S test_slot -p 26000 --drop