2.9.?ux_rewind

2.9.1. 用法
2.9.2. 描述
2.9.3. 选项
2.9.4. 环境变量
2.9.5. 注解

ux_rewind — 把一个UXDB数据目录与另一个从它复制出来的数据目录同步

2.9.1.?用法

ux_rewind [option...] { -D | --target-uxdata } directory { --source-uxdata=directory | --source-server=connstr }

2.9.2.?描述

ux_rewind是用于在集群的时间线分叉以后,同步一个UXDB集群和同一集群的另一份拷贝的工具。一种典型的场景是在失效后让一个旧的主服务器重新上线,同时有一个后备机跟随着新的主机。

其结果等效于把目标数据目录替换成源数据目录。数据文件中只有更改过的块才会被拷贝,所有其他的文件会被整个拷贝,包括配置文件。ux_rewind比起做一个新的基础备份或者rsync等工具的优势在于,ux_rewind不要求通读集群中未更改的块。这使得它在数据库很大并且在集群间只有小部分块不同时速度很快。

ux_rewind检查源集群和目标集群的时间线历史来判断它们在哪一点分叉,并且期望在目标集群的ux_wal目录中找到WAL来返回到分叉点。分叉点可能会在目标时间线、源时间线或者它们的共同祖先上找到。在典型的失效场景中,目标集群在分叉后很快就被关闭,这不是问题,但是如果目标集群在分叉后已经运行了很长时间,旧的WAL文件可能已经不存在了。在这样的情况下,它们可以被手工从WAL归档复制到ux_wal目录,或者通过配置recovery.conf在启动时取得。ux_rewind的使用并不限于失效的场景,例如一个后备服务器可能被提升、运行一些写事务,然后被倒回再次成为一个后备。

当目标服务器在运行了ux_rewind之后第一次启动时,它将进入到恢复模式并且重放源服务器在分叉点之后产生的所有WAL。当ux_rewind被运行时有某些WAL在源服务器上不可用,并且因此无法被ux_rewind会话所复制,则在目标服务器被启动时必须让这些 WAL 可用。这可以通过在目标数据目录中创建一个recovery.conf文件并且在其中使用一个适当的restore_command来实现。

ux_rewind要求目标服务器在uxsinodb.conf中启用了wal_log_hints选项,或者在用initdb初始化集群时启用了数据校验。目前默认情况下这两者都没有被打开。full-page-writes也必须被设置为on,这是默认的。

2.9.3.?选项

ux_rewind接受下列命令行参数:

-D directory
--target-uxdata=directory

这个选项指定要与源数据目录同步的目标数据目录。在运行ux_rewind之前目标服务器必须被干净地关闭。

--source-uxdata=directory

指定要和目标服务器同步的源服务器的数据目录的文件系统路径。这个选项要求源服务器必须被干净地关闭。

--source-server=connstr

指定一个libpq连接串用于连接要与目标服务器同步的源UXDB服务器。该连接必须是一个具有超级用户访问权限的普通(非复制)连接。这个选项要求源服务器正在运行且不处于恢复模式。

-n
--dry-run

做除了实际修改目标目录之外的其他所有事情。

-P
--progress

启用进度报告。在从源集群拷贝数据时,打开这个选项将会发送一个近似的进度报告。

--debug

打印详细的调试输出,这主要对于调试ux_rewind的开发者有用。

-V
--version

显示版本信息然后退出。

-?
--help

显示帮助然后退出。

2.9.4.?环境变量

在使用--source-server选项时,ux_rewind也使用libpq支持的环境变量。

2.9.5.?注解

2.9.5.1.?如何工作

其基本思想是从源集群拷贝所有文件系统级别的改变到目标集群:

  1. 以源集群的时间线历史从目标集群分叉出来的点之前的最后一个检查点为起点,扫描目标集群的WAL日志。对于每一个WAL记录,读取每一个被动过的数据块。这会得到在目标集群中从源集群被分支出去以后所有被更改过的数据块列表。

  2. 使用直接的文件系统访问(--source-uxdata)或者SQL(--source-server),把所有那些更改过的块从源集群拷贝到目标集群。

  3. 把其他文件(除了关系文件之外的所有文件,例如ux_xact和配置文件)从源集群拷贝到目标集群。

  4. 从源集群应用WAL,从失效处创建的检查点开始(严格来说,ux_rewind并不应用WAL,它只是创建一个备份标签文件,该文件让UXDB从那个检查点开始向前重放所有WAL)。

XML 地图 | Sitemap 地图