# 皮克_恢复逻辑的
皮克_recvlogical — 控制 PostgreSQL 逻辑解码流
# 概要
pg_recvlogical
[选项
...]
# 描述
pg_recvlogical
控制逻辑解码复制槽并从这些复制槽流式传输数据。
它创建了一个复制模式连接,因此它受到相同的约束皮克_收货,加上那些用于逻辑复制的(见第 49 章)。
pg_recvlogical
没有相当于逻辑解码SQL接口的peek and get模式。它在收到数据并在干净退出时懒惰地发送数据的重播确认。要检查插槽上的待处理数据而不使用它,请使用pg_logical_slot_peek_changes
.
# 选项
必须至少指定以下选项之一才能选择操作:
--创建槽
使用指定的名称创建一个新的逻辑复制槽- 投币口
,使用指定的输出插件- 插入
, 对于指定的数据库--dbname
.
--drop-slot
删除具有指定名称的复制槽- 投币口
,然后退出。
- 开始
从指定的逻辑复制槽开始流式传输更改- 投币口
,继续直到被信号终止。如果服务器端更改流以服务器关闭或断开连接结束,则循环重试,除非--无循环
被指定。
流格式由创建插槽时指定的输出插件确定。
连接必须与用于创建插槽的数据库相同。
--创建槽
和- 开始
可以一起指定。--drop-slot
不能与其他动作结合。
以下命令行选项控制输出的位置和格式以及其他复制行为:
-E *
lsn*
--endpos=*
lsn*
在- 开始
模式,当接收到达指定的 LSN 时,自动停止复制并以正常退出状态 0 退出。如果指定时不在- 开始
模式,引发错误。
如果有一条 LSN 正好等于的记录*lsn
*,记录将被输出。
这--endpos
选项不知道事务边界,并且可能会在事务的中途截断输出。任何部分输出的事务都不会被消耗,并且会在下一次读取槽时再次重播。单个消息永远不会被截断。
-f *
文件名*
--文件=*
文件名*
将接收和解码的交易数据写入此文件。采用-
对于标准输出。
-F *
间隔秒数*
--fsync-interval=*
间隔秒数*
指定 pg 的频率_recvlogical 应该发出同步()
调用以确保输出文件安全地刷新到磁盘。
服务器偶尔会请求客户端执行刷新,并将刷新位置报告给服务器。除此之外,此设置还可以更频繁地执行刷新。
指定间隔0
禁用发行同步()
完全调用,同时仍向服务器报告进度。在这种情况下,一旦发生崩溃,数据可能会丢失。
-一世 *
lsn*
--startpos=*
lsn*
在- 开始
模式,从给定的 LSN 开始复制。有关此效果的详细信息,请参阅文档第 49 章和第 53.4 节.在其他模式下被忽略。
--如果不存在
不出错时--创建槽
已指定且具有指定名称的插槽已存在。
-n
--无循环
当与服务器的连接丢失时,不要循环重试,直接退出。
-o *
姓名*[=*
价值*]
--选项=*
姓名*[=*
价值*]
通过选项*姓名
到输出插件,如果指定,选项值价值
*.存在哪些选项及其效果取决于使用的输出插件。
-P *
插入*
--插件=*
插入*
创建插槽时,使用指定的逻辑解码输出插件。看第 49 章.如果插槽已存在,则此选项无效。
-s *
间隔秒数*
--状态间隔=*
间隔秒数*
该选项与中的同名选项具有相同的效果皮克_收货.见那里的描述。
-S *
槽名*
--槽=*
槽名*
在- 开始
模式,使用名为的现有逻辑复制槽*槽名
*.在--创建槽
模式,创建具有此名称的插槽。在--drop-slot
模式,删除具有此名称的插槽。
-v
--详细
启用详细模式。
以下命令行选项控制数据库连接参数。
-d *
数据库名称*
--dbname=*
数据库名称*
要连接的数据库。有关这意味着什么,请参阅操作说明。这*数据库名称
*可以是一个连接字符串.如果是这样,连接字符串参数将覆盖任何冲突的命令行选项。默认为用户名。
-h *
主机名或 IP*
--主机=*
主机名或 IP*
指定运行服务器的机器的主机名。如果该值以斜杠开头,则将其用作 Unix 域套接字的目录。默认值取自PGHOST
环境变量,如果设置,则尝试 Unix 域套接字连接。
-p *
港口*
--端口=*
港口*
指定服务器正在侦听连接的 TCP 端口或本地 Unix 域套接字文件扩展名。默认为PGPORT
环境变量(如果设置)或编译的默认值。
-U *
用户*
--用户名=*
用户*
要连接的用户名。默认为当前操作系统用户名。
-w
--无密码
永远不要发出密码提示。如果服务器需要密码验证,而密码无法通过其他方式获得,例如.pgpass
文件,连接尝试将失败。此选项在没有用户输入密码的批处理作业和脚本中很有用。
-W
- 密码
强制 pg_recvlogical 在连接到数据库之前提示输入密码。
这个选项从来都不是必需的,因为 pg_如果服务器要求密码验证,recvlogical 将自动提示输入密码。然而,pg_recvlogical 将浪费一次连接尝试,发现服务器需要密码。在某些情况下,值得输入-W
以避免额外的连接尝试。
提供以下附加选项:
-V
- 版本
打印 pg_recvlogical 版本并退出。
-?
- 帮助
显示关于 pg 的帮助_recvlogical 命令行参数,然后退出。
# 环境
与大多数其他 PostgreSQL 实用程序一样,此实用程序使用 libpq 支持的环境变量(请参阅第 34.15 节)。
环境变量PG_COLOR
指定是否在诊断消息中使用颜色。可能的值为总是
,汽车
和绝不
.
# 笔记
皮克_如果在源集群上启用了组权限,recvlogical 将保留收到的 WAL 文件的组权限。
# 例子
看第 49.1 节例如。