以下针对sys_rman命令作相应说明,以便在手动执行备份的场景中使用。
手动备份并不影响自动备份任务的运行,但要注意同一时间只能有一个备份在运行,所以手动执行时尽量错开自动备份时间或者暂停自动备份。
备份命令格式:
/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=<配置文件> --stanza=<名称> --type=[full|diff|incr|page] --<备份选项> backup
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
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
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
4、. 备份集管理 ¶
4.1. 查看已有的备份集 ¶
在文件层面,<REPO_PATH>包含三个内容:
sys_rman.conf,运行时配置文件
archive,归档WAL日志的目标目录
backup,保存各备份的目标目录
[kingbase@REPO-NODE /home/kingbase/kbbr_repo] ls
archive backup sys_rman.conf
[kingbase@REPO-NODE /home/kingbase/kbbr_repo] ls archive/kingbase/12-1
archive.info archive.info.copy
[kingbase@REPO-NODE /home/kingbase/kbbr_repo] ls backup/kingbase/20230703-172027F backup.history backup.info backup.info.copy latest
说明:切勿使用操作系统工具在<REPO_PATH>内手动删除、修改或添加文件。<REPO_PATH>包含备份集的状态和元数据,以及哪些 WAL 文件基于哪次备份等信息。
工具提供命令,查看已有备份集列表和概要信息
/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.8MBincr 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.1 手动清除过期的备份 ¶
手动调用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
5.2 备份集检查
可手动执行sys_rman的verify命令对备份集和归档文件进行检查并报告识别的问题:
/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase verify
verify命令检查归档文件依赖于归档文件信息(比如归档文件长度、归档文件校验值等),这些信息在启用归档统计功能后是从归档统计文件中获取到的,而不是默认的通过遍历归档目录获取。