9.3 9.4 9.5 9.6 10 11 12
阿里云PostgreSQL 问题报告 纠错本页面

pg_recvlogical

名称

pg_recvlogical -- 控制PostgreSQL逻辑解码数据流

大纲

pg_recvlogical [option...]

描述

pg_recvlogical控制逻辑解码复制槽和来自这些复制槽的流数据。

它创建一个复制模式的连接,所以它受制于和pg_receivexlog 一样的约束,加上那些逻辑复制(参阅第 46 章

选项

必须至少声明下列的一个选项用来选择一个动作:

--create-slot

创建一个新的逻辑复制槽,使用--slot声明的名字、 --plugin声明的输出插件、--dbname声明的数据库。

--drop-slot

删除--slot声明的复制槽,然后退出。

--start

--slot声明的逻辑复制槽开始流修改,直到被信号终止。 如果服务器端的修改流以服务器关机或断开结束,那么在一个循环中重试, 除非声明了--no-loop

流的格式是由创建槽时声明的输出插件决定的。

必须连接到创建该槽时使用的那个数据库。

--create-slot--start可以一起声明。 --drop-slot不能和其他动作组合。

下面的命令行选项控制输出和其他复制行为的位置和格式:

-f filename
--file=filename

将接收到的和解码的事务数据写入到这个文件中。使用-来标准输出。

-F interval_seconds
--fsync-interval=interval_seconds

声明pg_recvlogical应该多久发出一次fsync() 调用,确保输出文件安全的刷新到了磁盘上。

服务器将偶尔请求客户端执行一次刷新,并报告刷新位置给服务器。 这个设置除此之外,会更频繁的执行刷新。

声明间隔为0完全禁用发出fsync()调用, 而仍然向服务器汇报进展。在这种情况下,一旦崩溃,数据可能会丢失。

-I lsn
--startpos=lsn

--start模式下,从给定的LSN开始复制。关于这个操作的影响的细节, 请查看第 46 章第 49.3 节中的文档。 在其他模式下忽略。

-n
--no-loop

当到服务器的连接断开时,不在一个循环中重试,只是退出。

-o name[=value]
--option=name[=value]

传递选项name到输出插件,选项值为value (如果声明了的话)。退出哪个选项和它们的影响取决于使用的输出插件。

-P plugin
--plugin=plugin

当创建一个槽时,使用指定的逻辑解码输出插件。参阅第 46 章。 如果槽早已存在,那么该选项没什么影响。

-s interval_seconds
--status-interval=interval_seconds

这个选项和pg_receivexlog中具有相同名字的选项的影响相同。 参阅那里的描述。

-S slot_name
--slot=slot_name

--start模式下,使用现有的名字为slot_name 的逻辑复制槽,在--create-slot模式下,用这个名字创建槽。 在--drop-slot模式下,删除这个名字的槽。

-v
--verbose

启用详细模式。

下列的命令行选项控制数据库连接参数。

-d database
--dbname=database

要连接的数据库。查看该动作的描述获取这详细意味着什么。这可以是一个libpq连接字符串; 参阅第 31.1.1 节获取更多信息。缺省是用户名。

-h hostname-or-ip
--host=hostname-or-ip

声明正在运行服务器的机器的主机名。如果该值以一个斜线开始,那么它用作Unix域套接字的路径。 缺省来自PGHOST环境变量,如果已经设置,否则尝试一个Unix域套接字连接。

-p port
--port=port

声明TCP端口或服务器正在监听链接的本地Unix域套接字文件扩展。 缺省是PGPORT环境变量,如果设置了的话,或者是一个内部编译的缺省值。

-U user
--username=user

要连接的用户名。缺省是当前操作系统的用户名。

-w
--no-password

永不发出密码提示。如果服务器请求密码认证并且密码不可通过其他方式, 比如.pgpass文件,获得,那么该连接尝试将失败。 这个选项在批量作业和没有用户输入密码的脚本中有用。

-W
--password

强制pg_recvlogical在连接到数据库之前提示密码。

这个选项从来都不重要,因为如果服务器需要密码认证,那么pg_recvlogical 将自动提示一个密码,pg_recvlogical 将在找出服务器想要一个密码上浪费一个连接尝试。在某些情况下, 输入-W来避免额外的连接尝试是值得的。

下列附加选项是可用的:

-V
--version

打印pg_recvlogical的版本并退出。

-?
--help

显示关于pg_recvlogical命令行参数的帮助,然后退出。

环境

这个工具,和大多数其他PostgreSQL工具一样,使用libpq 支持的环境变量(参阅第 31.14 节)。

例子

参阅第 46.1 节获取一个示例。

又见

pg_receivexlog
<
/BODY >