PostgreSQL 9.4.4 中文手册
上一页 | 上一级 |  | 下一页

# 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

上一页 | 起始页 | 下一页
pg_receivexlog | 上一级 | pg_restore