sys_archivecleanup—清理 KingbaseES WAL 归档文件。
sys_archivecleanup 可供备节点服务器通过 archive_cleanup_command 来清理 WAL 文件归档。
sys_archivecleanup 也可以作为一个单独的程序运行,清理 WAL 文件归档。
在备节点服务器上使用 sys_archivecleanup,需在 kingbase.conf 配置文件中配置以下内容:
archive_cleanup_command = 'sys_archivecleanup archivelocation %r'
其中 archivelocation 是要移除的 WAL 段文件的目录。当被用在 archive_cleanup_command 时,所有逻辑上
在 %r 参数值之前的 WAL 文件都将从 archivelocation 中被移除。这样保留了最少的文件,同时仍具备崩溃后重启
的能力。
对于这台特定的备节点服务器,如果 archivelocation 是用作一个保存瞬时状态的区域,那使用这个参数就是
合适的,但是当 archivelocation 要用作一个长期的 WAL 归档区域或者当多个备节点服务器正在从这个归档位置
恢复时,使用这个参数就不合适。
当被用作一个单独的程序时,所有逻辑上早于 oldestkeptwalfile 的 WAL 文件都将从 archivelocation
中 被 移 除。 在 这 种 模 式 中, 如 果 指 定 了.partial 或 者.backup 文 件 名, 则 只 有 该 文 件 前 缀 将 被 用 作
oldestkeptwalfile。
这种对.backup 文件名的处理,可以在不出错的情况下移除在特定基础备份之前归档的 WAL 文件。例如,下面
的例子将移除所有早于 WAL 文件 000000010000003700000010 的文件:
sys_archivecleanup -d archive 000000010000003700000010.00000020.backup
sys_archivecleanup: keep WAL file "archive/000000010000003700000010" and later
sys_archivecleanup: removing file "archive/00000001000000370000000F"
sys_archivecleanup: removing file "archive/00000001000000370000000E"
1.1 命令行参数
sys_archivecleanup [option...] archivelocation oldestkeptwalfile
1、2 参数说明
sys_archivecleanup 接受下列命令行参数:
-d
在 stderr 上打印很多调试日志输出。
-n
在 stdout 上打印将被移除的文件的名字(执行一次演习)。
-V --version
打印 sys_archivecleanup 版本并退出。
-x extension
提供一个文件名后缀,在决定文件是否应该被删除之前,从文件名中剥离这个后缀。这通常有助于清理被
压缩后增加了一个文件名后缀的归档文件。例如:-x .gz。
-? --help
显示 sys_archivecleanup 命令行参数的帮助并退出。