以下针对sys_rman命令作相应说明,以便在手动执行备份的场景中使用。
手动备份并不影响自动备份任务的运行,但要注意同一时间只能有一个备份在运行,所以手动执行时尽量错开自动备份时间或者暂停自动备份。
备份命令格式:
/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=<配置文件> --stanza=<名称> --type=[full|diff|incr|page] --<备份选项> backup
本部分包含以下内容:

5.1. 全量备份 ¶
全量备份,对所有数据文件进行一次备份,产生的备份集可以单独地构成还原的基础。
手动执行一次全量备份:
/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup
5.2. 差异备份 ¶
差异备份,依赖于上一次全量备份,针对此全量备份有变化的数据文件进行一次备份,产生的备份集配合依赖的全量备份集构成还原的基础。
手动执行一次差异备份:
/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=diff backup
5.3. 增量备份-文件粒度 ¶
增量备份,依赖于上一次全量备份及中间变化的备份,针对上一个备份有变化的数据文件进行一次备份,产生的备份集配合依赖的全量备份集及串行依赖备份集构成还原的基础。
文件粒度,当某个数据文件的一个数据块发生变化后,增量备份将拷贝整个数据文件。
手动执行一次增量备份:
/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=incr backup
5.4. 块增量备份-块粒度 ¶
块增量备份,依赖于上一次全量备份及中间变化的备份,针对上一个备份有变化的数据块进行一次备份,产生的备份集配合依赖的全量备份集及串行依赖备份集构成还原的基础。
块粒度,当某个数据文件的一个数据块发生变化后,块增量备份只拷贝变化的数据块。
块增量备份,需要Kingbase数据库开启了ktrack插件,请参考 《KingbaseES插件参考手册》ktrack章节。
手动执行一次块增量备份:
/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=page backup
开启ktrack插件的数据库应与sys_rman块备份时连接的数据库一致,默认情况下都为initdb时创建的test库,无须特别指定;如在其他库开启ktrack插件(不推荐),则执行sys_rman 块备份时,需使用 --kb1-database 指定:
/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --kb1-database=test1 --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=page backup
5.5. 备份集管理 ¶
5.5.1. 查看已有的备份集 ¶
在文件层面,<REPO_PATH>包含三个内容:
sys_rman.conf,运行时配置文件
archive,归档WAL日志的目标目录
backup,保存各备份的目标目录
如图所示:

工具提供命令,查看已有备份集列表和概要信息
/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase info
full backup: 20220512-110154F
timestamp start/stop: 2022-05-12 11:01:54 / 2022-05-12 11:02:04
wal start/stop: 000000010000000000000066 / 000000010000000000000066
database size: 424.8MB, database backup size: 424.8MB
repo1: backup set size: 424.8MB, backup size: 424.8MB
incr backup: 20220512-110154F_20220512-110320I
timestamp start/stop: 2022-05-12 11:03:20 / 2022-05-12 11:03:24
wal start/stop: 000000010000000000000068 / 000000010000000000000068
database size: 408.8MB, database backup size: 346.2MB
repo1: backup set size: 408.8MB, backup size: 346.2MB
backup reference list: 20220512-110154F
第一行表示备份集的类型和备份集的名称
timestamp start表示备份开始的时间点
timestamp stop 表示备份结束的时间点
wal start表示备份开始时的WAL日志文件
wal stop表示备份结束时的WAL日志文件
database size 表示数据库的运行时磁盘容量
database backup size 表示数据库的备份容量
backup set size 表示当前备份集的容量
backup size 表示当前备份集的实际磁盘容量,包含压缩因素和依赖备份集冗余
backup reference list 表示当前备份集依赖备份集列表
5.5.2. 自动清除过期的备份 ¶
在运行时配置文件sys_rman.conf中设置定期清除功能的保留数目:
repo1-retention-full=5
每一次备份结束后,工具将自动执行一次清除过期备份的动作。
清理备份集时会根据时间排序,保留最新的备份集,清除最老的备份集。
超过此数目的全量备份集将被清除;其依赖的备份集自动被清除;清除备份集包含数据库文件和对应的归档WAL日志文件。
5.5.3. 手动清除过期的备份 ¶
手动调用expire命令:
确认sys_rman.conf中的设置:保留全量备份集的数目
repo1-retention-full=5
执行 /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase expire




