1.14.?ux_receivewal

1.14.1. 用法
1.14.2. 描述
1.14.3. 选项
1.14.4. 环境变量
1.14.5. 注解
1.14.6. 示例

ux_receivewal — 以流的方式从一个UXDB服务器得到预写日志

1.14.1.?用法

ux_receivewal [option...]

1.14.2.?描述

ux_receivewal被用来从一个运行状态的UXDB集群以流的方式得到预写式日志。预写式日志会被使用流复制协议以流的方式传送,并且被写入到文件的一个本地目录。这个目录可以被用作归档位置来做一次使用时间点恢复的恢复。

当预写式日志在服务器上被产生时,ux_receivewal实时以流的方式传输预写式日志,并且不像archive_command那样等待段完成。由于这个原因,在使用ux_receivewal时不必设置archive_command

与 UXDB 后备服务器上的 WAL 接收进程不同,ux_receivewal默认只在一个WAL文件被关闭时才刷入WAL数据。要实时刷入WAL数据,必须指定选项--synchronous

预写式日志在一个常规UXDB连接上被以流式传送,并且使用复制协议。连接必须由一个超级用户或一个具有REPLICATION权限的用户建立,并且ux_hba.conf必须允许复制连接。服务器也必须被配置一个足够高max_wal_senders的来至少留出一个可用会话给流。

如果该连接丢失,或者它一开始就由于一个非致命错误而没有被建立,ux_receivewal将无限期地重试连接并且尽可能重新建立流。为了避免这种行为,使用-n参数。

1.14.3.?选项

-D directory
--directory=directory

要把输出写到哪个目录。

这个参数是必需的。

--if-not-exists

当指定--create-slot并且具有指定名称的槽已经存在时不要抛出错误。

-n
--no-loop

不要在连接错误上循环。相反,碰到一个错误时立刻退出。

-s interval
--status-interval=interval

指定发送回服务器的状态包之间的秒数。这允许澳门游戏平台注册网站更容易地监控服务器的进度。0表示完全禁用这种周期性的状态更新,不过当服务器需要时还是会发送更新避免超时导致的断开连接。默认值是10秒。

-S slotname
--slot=slotname

要求ux_receivewal使用一个已有的复制槽。在使用这个选项时,ux_receivewal将会报告给服务器一个刷写位置,指示每一个段是何时被同步到磁盘的,这样服务器可以在不需要该段时移除它。

ux_receivewal的复制客户端在服务器上被配置为一个同步后备时,那么使用复制槽将会向服务器报告刷写位置,但只在一个WAL文件被关闭时报告。因此,该配置将导致主服务器上的事务等待很长的时间并且无法令人满意地工作。要使配置正确,还必须同时使用选项--synchronous

--synchronous

在WAL数据被收到后立即刷入到磁盘。还要在刷写后立即向服务器回送一个状态包(不考虑--status-interval)。

如果ux_receivewal的复制客户端在服务器上被配置为一个同步后备,应该指定这个选项来确保向服务器发送及时反馈。

-v
--verbose

启用详细输出模式。

-Z level
--compress=level

启用预写式日志上的gzip压缩,并且指定压缩级别(0到9,0是不压缩而9是最大压缩)。所有的文件名后都将被追加后缀.gz

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

-d connstr
--dbname=connstr

指定用于连接到服务器的参数为一个连接字符串。

为了和其他客户端应用一致,该选项被称为--dbname。但是因为ux_receivewal并不连接到集群中的任何特定数据库,连接字符串中的数据库名将被忽略。

-h host
--host=host

指定运行服务器的机器的主机名。如果该值以一个斜线开始,它被用作 Unix 域套接字的目录。默认值取自UXHOST环境变量(如果设置),否则会尝试一个 Unix 域套接字连接。

-p port
--port=port

指定服务器正在监听连接的 TCP 端口或本地 Unix 域套接字文件扩展。默认用UXPORT环境变量中的值(如果设置),或者一个编译在程序中的默认值。

-U username
--username=username

要作为哪个用户连接。

-w
--no-password

从不发出一个口令提示。如果服务器要求口令认证并且没有其他方式提供口令(例如一个.uxpass文件),那儿连接尝试将失败。这个选项对于批处理任务和脚本有用,因为在其中没有一个用户来输入口令。

-W
--password

强制ux_receivewal在连接到一个数据库之前提示要求一个口令。

这个选项不是必不可少的,因为如果服务器要求口令认证,ux_receivewal将自动提示要求一个口令。但是,ux_receivewal将浪费一次连接尝试来发现服务器想要一个口令。在某些情况下值得用-W来避免额外的连接尝试。

为了控制物理复制槽,ux_receivewal可以执行下列两种动作之一:

--create-slot

--slot中指定的名称创建一个新的物理复制槽,然后退出。

--drop-slot

删除--slot中指定的复制槽,然后退出。

其他选项也可用:

-V
--version

打印ux_receivewal版本并退出。

-?
--help

显示有关ux_receivewal命令行参数的帮助并退出。

1.14.4.?环境变量

和大部分其他UXDB工具相似,这个工具也使用libpq支持的环境变量。

1.14.5.?注解

在使用ux_receivewal替代archive-command作为主要的WAL备份方法时,强烈建议使用复制槽。否则,服务器可能会在预写式日志文件被备份好之前重用或者移除它们,因为没有任何信息(不管是来自archive-command或是复制槽)能够指示WAL流已经被归档到什么程度。不过要注意,如果接收者没有持续地取走WAL数据,一个复制槽将会填满服务器的磁盘空间。

1.14.6.?示例

要从位于mydbserver的服务器流式传送预写式日志并且将它存储在本地目录/home/uxdb/uxdbinstall/dbsql/archive

$ ux_receivewal -h mydbserver -D /home/uxdb/uxdbinstall/dbsql/archive
XML 地图 | Sitemap 地图