这是 pg_receivexlog 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
pg_receivexlog - 从 PostgreSQL 服务器流式传输事务日志
概要
pg_receivexlog [选项...]
商品描述
pg_receivexlog 用于从正在运行的 PostgreSQL 集群中传输事务日志。
事务日志使用流式复制协议流式传输,并写入
到本地文件目录。 此目录可用作以下文件的存档位置
使用时间点恢复进行恢复(请参阅第 24.3 节,“连续存档和
时间点恢复 (PITR)”,在文档中)。
pg_receivexlog 实时流式传输事务日志,因为它是在
服务器,并且不会像 archive_command 那样等待段完成。 为了这
原因,在使用 pg_receivexlog 时不需要设置 archive_timeout。
与 PostgreSQL 备用服务器的 WAL 接收器不同,pg_receivexlog 默认刷新
WAL 数据仅在 WAL 文件关闭时。 选项 - 同步 必须指定为
实时刷新 WAL 数据。
事务日志通过常规 PostgreSQL 连接流式传输,并使用
复制协议。 必须与超级用户或具有以下权限的用户建立连接
REPLICATION 权限(请参阅文档中的第 20.2 节“角色属性”),以及
pg_hba.conf 必须允许复制连接。 服务器也必须配置
将 max_wal_senders 设置得足够高,以便至少保留一个会话可用于
流。
如果连接丢失,或者最初无法建立,则会出现非致命的
错误,pg_receivexlog 将无限重试连接,并重新建立流
尽快。 要避免此行为,请使用 -n 参数。
配置
-D 目录
--目录=目录
将输出写入的目录。
此参数是必需的。
--如果不存在
不要出错时 --创建插槽 已指定,并且具有指定的插槽
名称已存在。
-n
--无循环
不要循环连接错误。 相反,立即退出并出现错误。
-s 间隔
--状态间隔=间隔
指定发送回服务器的状态数据包之间的秒数。 这个
允许更轻松地监控服务器的进度。 零值禁用
定期状态更新完全,尽管更新时仍会发送
由服务器请求,避免超时断开连接。 默认值为 10 秒。
-S 插槽名称
--槽=插槽名称
要求 pg_receivexlog 使用现有的复制槽(见第 25.2.6 节,
文档中的“复制槽”)。 使用此选项时,pg_receivexlog
将向服务器报告刷新位置,指示每个段何时被
同步到磁盘,以便服务器可以删除该段,如果不是否则
需要。
当 pg_receivexlog 的复制客户端在服务器上配置为
同步备用,然后使用复制槽将刷新位置报告给
服务器,但仅当 WAL 文件关闭时。 因此,该配置将
导致主节点上的事务等待很长时间并且实际上不起作用
令人满意。 除了 --synchronous 选项(见下文)之外,还必须指定
使这项工作正常。
- 同步
收到 WAL 数据后立即将其刷新到磁盘。 也发送状态
刷新后立即将数据包返回到服务器,而不管 --status-interval。
如果 pg_receivexlog 的复制客户端是
在服务器上配置为同步备用,确保及时反馈
发送到服务器。
-v
--详细
启用详细模式。
以下命令行选项控制数据库连接参数。
-d 连接器
--数据库名=连接器
指定用于连接到服务器的参数,作为连接字符串。 看
文档中的第 31.1.1 节“连接字符串”以获取更多信息。
该选项称为 --dbname 以与其他客户端应用程序保持一致,但
因为 pg_receivexlog 没有连接到集群中的任何特定数据库,
连接字符串中的数据库名称将被忽略。
-h 主持人
--主机=主持人
指定运行服务器的机器的主机名。 如果值
以斜杠开头,用作 Unix 域套接字的目录。 这
默认值取自 PG主机 环境变量,如果设置,否则为 Unix 域
尝试套接字连接。
-p 端口
--端口=端口
指定服务器使用的 TCP 端口或本地 Unix 域套接字文件扩展名
正在侦听连接。 默认为 PG端口 环境变量(如果已设置),或
一个编译的默认值。
-U 用户名
--用户名=用户名
要连接的用户名。
-w
--无密码
永远不要发出密码提示。 如果服务器需要密码认证和
密码无法通过其他方式获得,例如 .pgpass 文件、连接
尝试会失败。 此选项在没有用户的批处理作业和脚本中很有用
存在以输入密码。
-W
- 密码
强制 pg_receivexlog 在连接到数据库之前提示输入密码。
这个选项从来不是必需的,因为 pg_receivexlog 会自动提示输入
password 如果服务器要求密码认证。 但是, pg_receivexlog 将
浪费连接尝试发现服务器需要密码。 在某些情况下
值得打字 -W 以避免额外的连接尝试。
pg_receivexlog 可以执行以下两个操作之一以控制物理
复制槽:
--创建插槽
使用中指定的名称创建一个新的物理复制槽 - 投币口,然后退出。
--drop-slot
删除具有中指定名称的复制槽 - 投币口,然后退出。
其他选项也可用:
-V
- 版
打印 pg_receivexlog 版本并退出。
-?
- 帮帮我
显示有关 pg_receivexlog 命令行参数的帮助,然后退出。
环境
此实用程序与大多数其他 PostgreSQL 实用程序一样,使用环境变量
libpq 支持(请参阅文档中的第 31.14 节“环境变量”)。
附注
当使用 pg_receivexlog 而不是 archive_command 作为主要的 WAL 备份方法时,它是
强烈建议使用复制槽。 否则,服务器可以自由回收或
在备份之前删除事务日志文件,因为它没有任何
来自 archive_command 或复制槽的信息,关于 WAL 的距离
流已存档。 但是请注意,复制槽将填满服务器的
如果接收器没有跟上获取 WAL 数据的速度,则磁盘空间。
示例
从 mydbserver 处的服务器流式传输事务日志并将其存储在本地
目录 /usr/local/pgsql/archive:
$ pg_receivexlog -h 我的数据库服务器 -D /usr/local/pgsql/存档
使用 onworks.net 服务在线使用 pg_receivexlog
