一、Kingbase 物理备份
1.1 物理备份的定义
物理备份是对数据库集簇的物理文件进行备份和恢复,包括数据文件、控制文件、WAL 日志等。
KingbaseES 的物理恢复依赖两部分:
- 备份集:提供某一时刻的数据文件基础副本。
- 归档 WAL:在恢复时将数据库继续重做到目标时间点或目标事务点。
物理备份恢复适用于整个集簇级别恢复,不支持单个 database 的对象级恢复。
1.2 物理备份与逻辑备份区别
| 类型 | 核心方式 | 优点 | 局限 |
|---|---|---|---|
| 物理备份 | 直接备份数据库物理文件和 WAL | 恢复快,支持 PITR,适合整库恢复 | 不适合对象级导出导入 |
| 逻辑备份 | 使用 SQL 导出对象定义和数据 | 灵活,可按库/表迁移 | 大库恢复耗时较长,不适合紧急整库恢复 |
1.3 物理备份的重要性
数据库对事务内部故障、一般系统故障可以依靠 WAL 自动恢复,但以下场景通常需要人工介入并借助物理备份:
- 硬件故障,如磁盘坏道、文件系统损坏。
- 操作系统故障,如异常宕机导致脏页未落盘。
- 数据库严重故障,如核心文件损坏、实例无法启动。
- 人为误操作,如误删表、误删 data 目录、恶意删库。
1.4 影响备份恢复速度的因素
| 因素 | 影响阶段 | 说明 | 建议 |
|---|---|---|---|
| 磁盘读写性能 | 备份、还原 | 文件拷贝量大,I/O 容易成为瓶颈 | 使用更快存储,避开高峰 |
| 网络带宽 | 备份、还原 | 异地 REPO 时受网络影响明显 | 提升带宽或在空闲时段执行 |
| 数据库业务繁忙程度 | 备份 | 备份需要检查点、归档,业务越繁忙越慢 | 在低峰执行,必要时配合 --start-fast |
| CPU / 内存 | 备份、还原 | 压缩、校验、并行会占用资源 | 评估资源余量,合理控制并发 |
二、物理备份部署架构
2.1 部署前需要确认的信息
在使用 sys_rman 之前,建议先确认以下内容:
- 服务器属性:专用机或普通服务器。
- 数据库部署方式:单机、主备、集群。
- 备份存储位置:本机、本地独立磁盘、远端主机、网络挂载目录。
- 备份目录属性:本地盘、NAS、NFS、SAN 等。
2.2 常见部署模式
2.2.1 单机本地备份

- 数据库与 REPO 在同一台主机。
- 部署简单,适合测试环境和中小规模场景。
- 风险是主机级故障时,数据库和备份可能同时受损。
2.2.2 单机异地备份

- 数据库在本机,备份目录放在另一台机器或共享存储。
- 安全性更高,适合生产环境。
- 受网络带宽影响更明显。
2.3 推荐架构思路
生产环境建议:

- 一主一备+外部备份。
- 增加备机节点,外部备份从备机备份数据,减轻主节点压力。
- 备份目录与数据库目录分离。
- 保证归档日志目录和备份目录容量充足。
- 至少保留多份全量备份。
- 定期执行
verify验证备份可用性。
三、sys_rman 工具概览
3.1 sys_rman 能力说明
sys_rman 是 KingbaseES 的物理备份恢复工具,核心能力包括:
- 备份速度快,是生产环境首选的备份方式。
- 只能联机备份,数据库服务关闭状态下执行sys_rman会失败。
- 操作简单,单个命令即可完成备份和恢复。
- 支持全量备份、差异备份和增量备份。
- 根据保留策略自动删除已过期的备份文件。
- 可以支持自动读取所需的备份集、在线日志、归档日志来实现完全恢复和不完全恢复。
- 基于文件块级别的备份,备份速度快。
- 支持并行的高速备份和恢复。
3.2 备份类型说明
| 备份类型 | 命令类型 | 特点 | 适用场景 |
|---|---|---|---|
| 全量备份 | --type=full | 自包含,恢复最简单,占用空间最大 | 首次备份、周期性基线、恢复成功后立即补一份 |
| 差异备份 | --type=diff | 依赖最近一次全量备份 | 短周期备份 |
| 增量备份 | --type=incr | 依赖前一次全量/差异/增量备份链 | 更节省空间 |
3.3 备份与恢复原理
3.1 备份原理
备份时大致流程如下:
- 根据本次备份类型确定依赖关系。
- 扫描数据目录中的数据文件、控制文件及相关核心文件。
- 拷贝变化文件或变化块。
- 记录备份标签与 WAL 起止位置。
- 根据保留策略自动清理过期备份。
3.2 恢复原理
恢复时大致流程如下:
- 根据时间点、XID、备份集选择最合适的基础备份集。
- 将基础备份集拷贝回
KB_DATA。 - 自动写入
kingbase.auto.conf恢复参数。 - 启动数据库进入恢复模式。
- 从归档 WAL 重做到目标点。
- 人工确认数据是否符合预期。
- 确认无误后执行
sys_wal_replay_resume()结束恢复并切换到新时间线。
3.4 工具主要构成
sys_rman工具不需要额外安装,由KES安装包统一部署,包含的可执行程序和配置文件及其功能,说明如下:
| 文件名 | 用途及路径 | 说明 |
|---|---|---|
| sys_rman | 备份还原二进制可执行文件 | 此命令可以在数据库节点和备份服务器上执行,读取相关的sys_rman.conf 配置信息。 |
| sys_backup. sh | 初始化配置脚本、管理备份计划 | 只能在REP0节点上执行,执行备份环境初始化,会自动生成sys_rman.conf 文件。 |
| sys_backup.conf | 初始化配置文件 | 模板位于安装目录./kingbase/share下。<br/>执行sys_backup. sh时需要读取该文件信息。 |
| sys_rman.conf | 备份还原配置文件 | 自动生成运行时配置文件,不建议人为修改。 |
3.5 sys_rman 工具用法
3.5.1 语法说明
| 语法 | 说明 |
|---|---|
| sys_rman [option...] backup | 执行备份操作。 |
| sys_rman [option...] restore | 执行还原和恢复操作。 |
| sys_rman [option...] check | 对sys_rman配置文件和数据库环境进行检查,是否可以正常备份和归档。 |
| sys_rman [option...] info | 查看备份信息。 |
| sys_rman [option...] expire | 删除指定备份集。 |
| sys_rman [option...] stop | 暂停 sys_rman 备份进程。 |
| sys_rman [option...] start | 启动 sys_rman 备份进程。 |
| sys_rman [option...] archive-push | 手动归档WAL段文件。 |
| sys_rman [option...] archive-get | 手动取回WAL段文件。 |
| sys_rman [option...] stanza-create | 创建数据库对象的备份配置环境。 |
| sys_rman [option...] stanza-delete | 删除数据库对象的备份配置环境。 |
| sys_rman [option...] stanza-upgrade | 更新数据库对象的备份配置环境。 |
| sys_rman [option...] verify | 查看备份集的文件存储情况。 |
| sys_rman help command [option] | 查看某个命令(或这个命令的某个参数)的帮助信息。 |
3.5.2 常用参数介绍
(1)常用全局参数。
| 参数 | 简介 |
|---|---|
| --config | 指定 sys_rman 工具配置文件所在位置。 |
| --stanza | 指定备份的标签,如果一个服务器上运行多个实例,通过标签来区分不同实例。 |
| --repo1-retention-full | 指定备份集保留策略,可以在sys_rman.conf中设置。 |
(2)常用备份参数。
| 参数 | 简介 |
|---|---|
| --archive-copy | 备份时连同WAL段文件一同进行备份。 |
| --type | 指定备份类型,全量备份(full),差异备份(diff),增量备份(incr)。 |
(3)常用恢复参数。
| 参数 | 简介 |
|---|---|
| --set | 指定恢复所使用的备份集。 |
| --tablespace-map | 指定单个表空间目录的映射方式。 |
| --tablespace-map-all | 指定所有表空间映射到一个新的目录。 |
| --type | 指定恢复的类型,常见的类型有时间点或者事务id。 |
| --target | 根据type选项,指定恢复的目标,一个时间点或者是个事务id等。 |
(4)常用stanza参数。
| 参数 | 简介 |
|---|---|
| --kb-path | 指定数据库集簇目录所在位置,可以在sys_rman.conf中设置,使用时需要添加索引(kb1-path)。 |
| --kb-port | 指定实例监听端口,可以在sys_rman.conf中设置,使用时需要添加索引(kbl-port)。 |
| --kb-user | 指定连接数据库使用的用户名称,可以在sys_rman.conf中设置,使用时需要添加索引(kbl-user)。 |
3.6 sysbackup.sh初始化配置脚本的用法
- sys_rman 工具需要使用sys_backup.sh脚本初始化后才能使用,初始化会做如下设置:
(1)自动配置归档参数,启用归档。
| 参数 | 说明 |
|---|---|
| archive_mode | (1)archive_mode参数只能在服务器启动时设置。<br/>(2)当wal_level=minimal时,无法启动归档。<br/>(3)此参数可设置的值有off、on、always。 |
| archive_command | 这个参数指定了将在线WAL文件转储到归档文件的方法。 |
| wal_level | (1)此参数可设置的值有minimal、replica(默认)、logical。<br/>(2)sys_rman 要求数据库参数 wal_level 不能配置为minimal。 |
(2)自动创建并初始化备份目录。
- 创建备份目录,存放备份文件。
- 创建归档目录,存放归档文件。
- 自动生成sys_rman.conf配置文件,设置数据库集簇所在目录、监听端口、数据库备份的用户等配置信息。
(3)设置定时备份任务。
sys_backup.sh会自动设置定时备份任务,包括全量备份和增量备份,备份的频率需要在sys_backup.sh脚本的配置文件中指定。
(4)自动完成一次全量备份。
- sys_backup.sh 语法与参数说明。
Usage: sys_backup.sh {init|start|stop|pause|unpause}。| 参数 | 简介 |
|---|---|
| init | 初始化备份还原功能,该命令依赖于数据库实例已经正常工作,请勿在数据库业务繁忙时执行,业务繁忙时,可能会由于归档没落盘,或其他条件检查导致初始化失败。 |
| start | 启动CRONTAB任务来完成备份功能。 |
| stop | 启动CRONTAB任务来完成备份功能。 |
| pause | 暂时停止备份功能。 |
| unpause | 恢复被暂停的备份功能。 |
3.7 sys_backup.sh 初始化配置配置文件 sys_backup.conf
1、工具按照如下顺序寻找 sys_backup.conf初始化配置文件。
- $KINGBASE_HOME =
/home/application/KingbaseES/V9/Server
$KINGBASE_HOME/bin/sys_backup.conf
$KINGBASE_HOME/share/sys_backup.conf2、KES的安装目录下有初始配置文件的模板,包含以下参数:
| 参数 | 简介 |
|---|---|
| target_db_style | 选择性选项,可选 single 或 cluster 或 single-pro。<br/>single对应单机模式的目标数据库实例。<br/>cluster对应集群模式的目标数据库实例。<br/>single-pro对应集群模式的每个DB节点独立备份。 |
| _one_db_ip | 一个数据库节点的IP或主机名,支持主机名、IPv4、IPv6地址。 |
| _repo_ip | REP0备份节点的IP或主机名,支持主机名、IPv4、IPv6地址。 |
| _stanza_name | 备份服务器的标签,仅在物理备份范畴内使用。 |
| _os_user_name | 操作系统的用户名。 |
| repo_path | 实际保存备份集的目录。 |
| _repo_retention_full_count | 保存全量备份的数目,超过此数目的全量备份将被自动移除。 |
| _crond_full_days | 自动执行全量备份的间隔天数,0表示不执行。 |
| _crond_diff_days | 自动执行差异备份的间隔天数,0表示不执行。 |
| _crond_incr_days | 自动执行增量备份的间隔天数,0表示不执行。 |
| _crond_full_hour | 自动执行全量备份的时间点,2表示凌晨2点。 |
| _crond_diff_hour | 自动执行差异备份的时间点,3表示凌晨3点。 |
| _crond_incr_hour | 自动执行增量备份的时间点,4表示凌晨4点。 |
| _band_width | 网络限速,单位固定为MB/s,默认为0代表不限速,配置文件仅接受纯数字。 |
| _os_ip_cmd | 操作系统常见命令ip的全路径文件名。 |
| _os_rm_cmd | 操作系统常见命令rm的全路径文件名。 |
| _os_sed_cmd | 操作系统常见命令sed的全路径文件名。 |
| _os_grep_cmd | 操作系统常见命令grep的全路径文件名。 |
| _single_data_dir | 单机数据库节点的数据目录。 |
| _single_bin_dir | 单机数据库节点的二进制目录。 |
| _single_db_user | 单机数据库节点的数据库登录用户名。 |
| _single_db_port | 单机数据库节点的端口。 |
| _use_scmd | 使用通讯协议,默认使用securecmdd,可选使用ssh。 |
| _start_fast | 是否快速启动备份,立即生成checkpoint,默认y。 |
| _compress_type | 是否在备份时使用压缩存储,默认为none不压缩。 |
| _non_archived_space | 在init过程中,检查未归档的WAL的容量,如果超过设置值,报错并退出。init过程。单位固定为MB,可选128~1024。 |
| _archive_statistics | 是否启用归档统计功能,默认n。 |
四、物理备份和还原实验
4.1 实验目标
通过一次完整演练掌握以下流程:
- 初始化 sys_rman 备份环境。
- 执行全量/增量备份。
- 模拟误删或误操作。
- 使用时间点或事务 ID 进行恢复。
- 确认恢复结果后结束恢复并重新建立备份基线。
注意: 本章节实验都是在单机本地备份的场景下进行
4.2 实验准备工作
- 准备KES:修改归档参数
##将以下参数设置添加到kingbase.conf文件的末尾,并重启数据库使参数生效,在初始化过程中archive_command参数会被自动赋值。
[kingbase@localhost ~]$ vim +999 /data/kingbase.conf
archive_mode = on
archive_command = ''
##重启数据库
[kingbase@localhost ~]$ sys_ctl restart- 准备 KES:为 system用户设置口令密文
备份和恢复的过程中需要免密登录数据库执行备份和恢复的操作。

[kingbase@localhost ~]$ sys_encpwd -H \* -P \* -D \* -U system -W kingbase
#设置后,查看 ~/.encpwd文件内容。
[kingbase@localhost ~]$ cat ~/.encpwd
*:*:*:system:a2luZ2Jhc2U=- 准备 OS:允许 kingbase 用户使用crontab [切换到 root 用户下执行]
[root@localhost ~]$ chmod a+x,u+x /usr/bin/crontab
[root@localhost ~]$ cat /etc/cron.allow
[root@localhost ~]$ cat /etc/cron.deny
[root@localhost ~]$ echo "kingbase" >> /etc/cron.allow准备OS:检查备份空间
我们规划把备份数据保存到
/home/application/KingbaseES/backup,因为sys_backup.sh会自动创建目录,所以如果该
目录已存在,需要先删除;另外要确保kingbase用户有权限在目下自动生成目录。
[kingbase@localhost ~]$ mkdir -p /home/application/KingbaseES/backup
#确保空间充足
[kingbase@localhost backup]$ df -Ph /home/application/KingbaseES/backup
文件系统 容量 已用 可用 已用% 挂载点
/dev/sdb 200G 26G 175G 13% /home/application
#确保kingbase用户有权限在目录/home/application/KingbaseES/backup下自动生成目录。
[kingbase@localhost backup]$ ls -ld /home/application/KingbaseES/backup
drwxr-xr-x 3 kingbase kingbase 18 7月 14 14:13 /home/application/KingbaseES/backup4.3 备份初始化
4.3.1 拷贝并编辑 sys_backup.conf
sys_backup.conf 是 sys_backup.sh的配置文件,默认模板在安装目录/Server/share/中。在执行 sys_backup.sh脚本时,会优先寻找安装目录/Server/bin/sys_backup.conf,如果找不到,则会去找安装目录/Server/share/sys_backup.conf。
因此,可以把 share目录中的配置文件复制到bin目录中进行修改。
- 注释:安装目录 =
/home/application/KingbaseES/V9/
cp /home/application/KingbaseES/V9/Server/share/sys_backup.conf /home/application/KingbaseES/V9/Server/bin/- 编辑 sys_backup.conf
注释:
- _one_db_ip: 数据库节点的IP
- _repo_ip :REP0备份节点的IP,这里是本机备份,即本机 ip 即可
- 指定备份路径为
/home/application/KingbaseES/backup/rman - 全备:每隔 7 天 02:00;差异备:每 天 夜里 04:00;
- 开启备份时使用压缩存储
[kingbase@localhost bin]$ grep -v ^# sys_backup.conf
_target_db_style="single"
_one_db_ip="172.24.0.158"
_repo_ip="172.24.0.158"
_stanza_name="kingbase"
_os_user_name="kingbase"
_repo_path="/home/application/KingbaseES/backup/rman"
_repo_retention_full_count=3
_crond_full_days=7
_crond_diff_days=0
_crond_incr_days=1
_crond_full_hour=2
_crond_diff_hour=3
_crond_incr_hour=4
_band_width=0
_os_ip_cmd="/sbin/ip"
_os_rm_cmd="/bin/rm"
_os_sed_cmd="/bin/sed"
_os_grep_cmd="/bin/grep"
_os_base64_cmd="/bin/base64"
_single_data_dir="/home/application/KingbaseES/data"
_single_bin_dir="/home/application/KingbaseES/V9/Server/bin"
_single_db_user="system"
_single_db_port="54321"
_use_scmd=off
_start_fast=y
_compress_type=gz
_non_archived_space=1024
_archive_statistics=n4.3.2 执行初始化命令
sys_backup.sh init- 初始化成功后,会完成首个全量备份,并自动生成
sys_rman.conf。
# pre-condition: check the non-archived WAL files
# generate single sys_rman.conf...DONE
# update single archive_command with sys_rman.archive-push...DONE
# create stanza and check...(maybe 60+ seconds)
# create stanza and check...DONE
# initial first full backup...(maybe several minutes)
# initial first full backup...DONE
# Initial sys_rman OK.
'sys_backup.sh start' should be executed when need back-rest feature.- 查看备份目录,初始化过程会自动创建备份目录结构。
[kingbase@localhost ~]$ ls -l /home/application/KingbaseES/backup/rman/
总用量 4
drwxr-x--- 3 kingbase kingbase 22 7月 20 12:45 archive
drwxr-x--- 3 kingbase kingbase 22 7月 20 12:45 backup
-rw-r--r-- 1 kingbase kingbase 1341 7月 20 12:45 sys_rman.conf- 查看sys_rman.conf配置文件。初始化过程会自动在备份目录中创建sys_rman.conf配置文件,并且依照 sys_backup.conf 文件中的设置对 sys_rman.conf 文件中的参数进行设置,后续 sys_rman命令将使用这个文件中配置的参数。
[kingbase@localhost ~]$ cat /home/application/KingbaseES/backup/rman/sys_rman.conf
# Genarate by script at 20260720124534, should not change manually
[kingbase]
kb1-path=/home/application/KingbaseES/data
kb1-port=54321
kb1-user=system
[global]
repo1-path=/home/application/KingbaseES/backup/rman
repo1-retention-full=3
archive-statistics=n
log-path=/home/application/KingbaseES/V9/Server/log
log-level-file=info
log-level-console=info
log-subprocess=y
process-max=4
#### support: gz none
compress-type=gz
compress-level=3
start-fast=y
link-all=y
archive-mode-check=n
band-width=0
repo-disk-warn=0MB
repo-disk-error=0MB
non-archived-space=1024
archive-timeout=600
#### Enable below alert-command to take custom action on issue during backup, such as sending alert mail
# alert-command=( cd /home/application/KingbaseES/V9/Server/bin; ./sys_mail -s "%t" -b "%c" & )
#### For different machine recovery, please use the following command:
# /home/application/KingbaseES/V9/Server/bin/sys_rman --kb1-path=/home/application/KingbaseES/data --repo1-host=172.24.0.158 --repo1-host-cmd=/home/application/KingbaseES/V9/Server/bin/sys_rman --repo1-host-user=kingbase --repo1-host-config=/home/application/KingbaseES/backup/rman/sys_rman.conf --repo1-path=/home/application/KingbaseES/backup/rman --log-path=/tmp/sys_rman/1784522750 --log-level-console=info --log-subprocess=y --band-width=0 --link-all=y --stanza=kingbase restore- 登录数据库查看归档参数。初始化过程中会自动为 archive_command 参数赋值。
[kingbase@localhost ~]$ ksql test system
授权类型: 企业版.
输入 "help" 来获取帮助信息.
test=# show archive_mode;
archive_mode
--------------
on
(1 行记录)
test=# show archive_command;
archive_command
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------
export TZ=Asia/Shanghai;/home/application/KingbaseES/V9/Server/bin/sys_rman --config /home/application/KingbaseES/backup/rman/sys_rman.conf --stanza=kingbase archive
-push %p
(1 行记录)- 查看备份集(在初始化的过程中,会自动做一次全量备份)
注释: --config 默认指定的配置文件路径在/etc/sys_rman.conf, 我们只需要把sys_rman.conf 软连接到/etc/sys_rman.conf 下即可,ln -s /home/application/KingbaseES/backup/rman/sys_rman.conf /etc/sys_rman.conf [需要切换到 root 用户下执行]
sys_rman --config /home/application/KingbaseES/backup/rman/sys_rman.conf --stanza=kingbase info或者:
[kingbase@localhost ~]$ sys_rman --stanza=kingbase info
stanza: kingbase
status: ok
cipher: none
db (current)
wal archive min/max (V009R001C010B0004): 0000000400000001000000B2/0000000400000001000000B4
full backup: 20260720-124534F
timestamp start/stop: 2026-07-20 12:45:34+08 / 2026-07-20 12:45:50+08
wal start/stop: 0000000400000001000000B3 / 0000000400000001000000B4
database size: 1.9GB, database backup size: 1.9GB
repo1: backup set size: 300.4MB, backup size: 300.4MB4.4 执行备份
4.4.1 全量备份
--config=/backup/rman/sys_rman.conf:指定配置文件。--stanza=kingbase:指定标签,通过标签可以在配置文件中找到对应的参数配置。archive-copy:指定备份时同时备份恢复所需的WAL段文件。type=full backup:指定备份类型为全量备份。
[kingbase@localhost ~]$ sys_rman --stanza=kingbase --archive-copy --type=full backup4.4.2 差异备份
- --type=diff 指定备份类型为差异备份,只备份上次全量备份以来改变过的数据。
- 实验数据准备
在test 库中创建测试表 t02 并插入 2 行数据
test=# CREATE TABLE t02(id int,name text);
CREATE TABLE
test=# INSERT INTO t02 VALUES(1,'abc'),(2,'def');
INSERT 0 2- 执行差异备份
[kingbase@localhost ~]$ sys_rman --stanza=kingbase --archive-copy --type=diff backup- 查看备份集
[kingbase@localhost ~]$ sys_rman --stanza=kingbase info
stanza: kingbase
status: ok
cipher: none
db (current)
wal archive min/max (V009R001C010B0004): 0000000400000001000000B2/0000000400000001000000BB
full backup: 20260720-124534F
timestamp start/stop: 2026-07-20 12:45:34+08 / 2026-07-20 12:45:50+08
wal start/stop: 0000000400000001000000B3 / 0000000400000001000000B4
database size: 1.9GB, database backup size: 1.9GB
repo1: backup set size: 300.4MB, backup size: 300.4MB
diff backup: 20260720-133727F_20260720-135259D
timestamp start/stop: 2026-07-20 13:52:59+08 / 2026-07-20 13:53:00+08
wal start/stop: 0000000400000001000000BB / 0000000400000001000000BB
database size: 1.8GB, database backup size: 23.1MB
repo1: backup set size: 300.3MB, backup size: 916.4KB
backup reference list: 20260720-133727F4.4.3 增量备份
--type=incr指定备份类型为增量备份,即仅备份上次全量、差异、增量备份以来改变过的数据。- 实验数据准备
test=# CREATE TABLE t03(id int,name text);
CREATE TABLE
test=# INSERT INTO t03 VALUES(1,'abc'),(2,'def');
INSERT 0 2- 执行增量备份
[kingbase@localhost ~]$ sys_rman --stanza=kingbase --archive-copy --type=incr backup- 查看备份集
[kingbase@localhost ~]$ sys_rman --stanza=kingbase info
stanza: kingbase
status: ok
cipher: none
db (current)
wal archive min/max (V009R001C010B0004): 0000000400000001000000B2/0000000400000001000000BD
full backup: 20260720-124534F
timestamp start/stop: 2026-07-20 12:45:34+08 / 2026-07-20 12:45:50+08
wal start/stop: 0000000400000001000000B3 / 0000000400000001000000B4
database size: 1.9GB, database backup size: 1.9GB
repo1: backup set size: 300.4MB, backup size: 300.4MB
diff backup: 20260720-133727F_20260720-135259D
timestamp start/stop: 2026-07-20 13:52:59+08 / 2026-07-20 13:53:00+08
wal start/stop: 0000000400000001000000BB / 0000000400000001000000BB
database size: 1.8GB, database backup size: 23.1MB
repo1: backup set size: 300.3MB, backup size: 916.4KB
backup reference list: 20260720-133727F
incr backup: 20260720-133727F_20260720-135720I
timestamp start/stop: 2026-07-20 13:57:20+08 / 2026-07-20 13:57:21+08
wal start/stop: 0000000400000001000000BD / 0000000400000001000000BD
database size: 1.8GB, database backup size: 23.1MB
repo1: backup set size: 300.3MB, backup size: 917.0KB
backup reference list: 20260720-133727F, 20260720-133727F_20260720-135259D4.5 定时备份
- sys_backup.sh start(启动定时备份任务)
[kingbase@localhost ~]$ sys_backup.sh start
Enable some sys_rman in crontab-daemon
Set full-backup in 7 days
Set incr-backup in 1 days
0 2 */7 * * /home/application/KingbaseES/V9/Server/bin/sys_rman --config=/home/application/KingbaseES/backup/rman/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup >> /home/application/KingbaseES/V9/Server/log/sys_rman_backup_full.log 2>&1
0 5 */1 * * /home/application/KingbaseES/V9/Server/bin/sys_rman --config=/home/application/KingbaseES/backup/rman/sys_rman.conf --stanza=kingbase --archive-copy --type=incr backup >> /home/application/KingbaseES/V9/Server/log/sys_rman_backup_incr.log 2>&1- sys_backup.sh pause(暂停定时备份任务)
[kingbase@localhost ~]$ sys_backup.sh pause
Pause the sys_rman...DONE- sys_backup.sh unpause(恢复定时备份任务)
[kingbase@localhost ~]$ sys_backup.sh unpause
Un-Pause the sys_rman...DONE- sys_backup.sh stop(取消定时备份任务)
[kingbase@localhost ~]$ sys_backup.sh stop
Disable all sys_rman in crontab-daemon
[kingbase@localhost ~]$ crontab -l注意:
- 如果 sys backup.conf 中关于数据库的信息有所修改,需要执行 sys backup.sh init 重新初始化备份功能。
- 如果 sys_backup.conf 中关于备份周期和时间点的信息有所修改,执行 sys_backup.sh start 重新配置自动备份周期。
4.6 执行完全恢复
- 模拟数据丢失
#正常关闭数据库
[kingbase@localhost ~]$ sys_ctl stop -m fast
等待服务器进程关闭 .... 完成
服务器进程已经关闭
#删除数据库主目录下的所有文件
[kingbase@localhost ~]$ rm -rf /home/application/KingbaseES/data/*
[kingbase@localhost ~]$ rm -rf /home/application/KingbaseES/data/.*
#观察数据库是否能启动成功
[kingbase@localhost ~]$ sys_ctl start
sys_ctl: 目录 "/home/application/KingbaseES/data"不是一个数据库集群目录- 执行全备恢复
[kingbase@localhost ~]$ sys_rman --stanza=kingbase restore- 启动数据库实例
[kingbase@localhost ~]$ sys_ctl start
等待服务器进程启动 ....2026-07-20 14:14:27.458 CST [88863] LOG: sepapower扩展初始化完成
2026-07-20 14:14:27.522 CST [88863] LOG: 正在启动 KingbaseES V009R001C010
2026-07-20 14:14:27.523 CST [88863] LOG: 正在监听IPv4地址"0.0.0.0",端口 54321
2026-07-20 14:14:27.523 CST [88863] LOG: 正在监听IPv6地址"::",端口 54321
2026-07-20 14:14:27.523 CST [88863] LOG: 在Unix套接字 "/tmp/.s.KINGBASE.54321"上侦听
2026-07-20 14:14:27.646 CST [88863] LOG: 日志输出重定向到日志收集进程
2026-07-20 14:14:27.646 CST [88863] HINT: 后续的日志输出将出现在目录 "/home/application/KingbaseES/data/sys_log"中.
完成
服务器进程已经启动- 观察数据目录是否还原
[kingbase@localhost ~]$ ls -l /home/application/KingbaseES/data/
总用量 80
-rw------- 1 kingbase kingbase 257 1月 1 1970 backup_label.old
drwx------ 10 kingbase kingbase 106 7月 20 14:13 base
-rw------- 1 kingbase kingbase 80 7月 20 14:14 current_logfiles
drwx------ 2 kingbase kingbase 4096 7月 20 14:14 global
-rw------- 1 kingbase kingbase 356 7月 20 14:13 initdb.conf
-rw------- 1 kingbase kingbase 871 7月 20 14:13 kingbase.auto.conf
-rw------- 1 kingbase kingbase 31912 1月 1 1970 kingbase.conf
-rw------- 1 kingbase kingbase 76 7月 20 14:14 kingbase.opts
-rw------- 1 kingbase kingbase 93 7月 20 14:14 kingbase.pid
drwx------ 3 kingbase kingbase 19 7月 20 14:13 sys_aud
drwx------ 2 kingbase kingbase 6 7月 20 14:13 sys_bulkload
drwx------ 2 kingbase kingbase 6 7月 20 14:13 sys_commit_ts
drwx------ 2 kingbase kingbase 54 7月 20 14:13 sys_csnlog
drwx------ 2 kingbase kingbase 6 7月 20 14:13 sys_dynshmem
-rw------- 1 kingbase kingbase 4245 7月 20 14:13 sys_hba.conf
-rw------- 1 kingbase kingbase 1371 7月 20 14:13 sys_ident.conf
drwx------ 2 kingbase kingbase 4096 7月 20 14:14 sys_log
drwx------ 4 kingbase kingbase 68 7月 20 14:14 sys_logical
drwx------ 4 kingbase kingbase 36 7月 20 14:13 sys_multixact
drwx------ 2 kingbase kingbase 18 7月 20 14:14 sys_notify
drwx------ 2 kingbase kingbase 6 7月 20 14:13 sys_replslot
drwx------ 2 kingbase kingbase 6 7月 20 14:13 sys_serial
drwx------ 2 kingbase kingbase 6 7月 20 14:13 sys_snapshots
drwx------ 2 kingbase kingbase 6 7月 20 14:13 sys_stat
drwx------ 2 kingbase kingbase 54 7月 20 14:14 sys_stat_tmp
drwx------ 2 kingbase kingbase 6 7月 20 14:13 sys_tblspc
drwx------ 2 kingbase kingbase 6 7月 20 14:13 sys_twophase
-rw------- 1 kingbase kingbase 3 7月 20 14:13 SYS_VERSION
drwx------ 3 kingbase kingbase 220 7月 20 14:14 sys_wal
drwx------ 2 kingbase kingbase 18 7月 20 14:13 sys_xact- 登录数据库观察数据是否恢复成功
[kingbase@localhost ~]$ ksql test system
授权类型: 企业版.
输入 "help" 来获取帮助信息.
test=# \l
数据库列表
名称 | 拥有者 | 字元编码 | 校对规则 | Ctype | ICU 排序 | 存取权限
-----------+--------+----------+-------------+-------------+----------+-------------------
kingbase | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | |
security | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | |
template0 | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | | =c/system +
| | | | | | system=CTc/system
template1 | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | | =c/system +
| | | | | | system=CTc/system
test | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | |
(8 行记录)
test=# \dt
关联列表
架构模式 | 名称 | 类型 | 拥有者
----------+------+--------+--------
public | t02 | 数据表 | system
public | t03 | 数据表 | system
(2 行记录)
test=# select * from t02;
id | name
----+------
1 | abc
2 | def
(2 行记录)
test=# select * from t03;
id | name
----+------
1 | abc
2 | def
(2 行记录)4.7 执行不完全恢复
4.7.1 基于事务ID的不完全恢复
- 执行全备后,查看备份集信息。
[kingbase@localhost ~]$ sys_rman --stanza=kingbase --archive-copy --type=full backup
[kingbase@localhost ~]$ sys_rman --stanza=kingbase info
stanza: kingbase
status: ok
cipher: none
db (current)
wal archive min/max (V009R001C010B0004): 0000000400000001000000B3/0000000500000001000000C0
full backup: 20260720-124534F
timestamp start/stop: 2026-07-20 12:45:34+08 / 2026-07-20 12:45:50+08
wal start/stop: 0000000400000001000000B3 / 0000000400000001000000B4
database size: 1.9GB, database backup size: 1.9GB
repo1: backup set size: 300.4MB, backup size: 300.4MB
full backup: 20260720-133727F
timestamp start/stop: 2026-07-20 13:37:27+08 / 2026-07-20 13:37:43+08
wal start/stop: 0000000400000001000000B6 / 0000000400000001000000B6
database size: 1.8GB, database backup size: 1.8GB
repo1: backup set size: 300.3MB, backup size: 300.3MB
diff backup: 20260720-133727F_20260720-135259D
timestamp start/stop: 2026-07-20 13:52:59+08 / 2026-07-20 13:53:00+08
wal start/stop: 0000000400000001000000BB / 0000000400000001000000BB
database size: 1.8GB, database backup size: 23.1MB
repo1: backup set size: 300.3MB, backup size: 916.4KB
backup reference list: 20260720-133727F
incr backup: 20260720-133727F_20260720-135720I
timestamp start/stop: 2026-07-20 13:57:20+08 / 2026-07-20 13:57:21+08
wal start/stop: 0000000400000001000000BD / 0000000400000001000000BD
database size: 1.8GB, database backup size: 23.1MB
repo1: backup set size: 300.3MB, backup size: 917.0KB
backup reference list: 20260720-133727F, 20260720-133727F_20260720-135259D
full backup: 20260720-142120F
timestamp start/stop: 2026-07-20 14:21:20+08 / 2026-07-20 14:21:36+08
wal start/stop: 0000000500000001000000C0 / 0000000500000001000000C0
database size: 1.8GB, database backup size: 1.8GB
repo1: backup set size: 300.3MB, backup size: 300.3MB- 模拟误删除操作并执行不完全恢复。
(1)开启事务,查看并记录事务ID。
[kingbase@localhost ~]$ ksql test system
授权类型: 企业版.
输入 "help" 来获取帮助信息.
test=# BEGIN;
BEGIN
test=# select txid_current;
txid_current
--------------
915
(1 行记录)
(2)创建t04表、录入数据、结束事务。
test=# CREATE TABLE t04(id int,name text);
CREATE TABLE
test=# INSERT INTO t04 VALUES(1,'test'),(2,'dev');
INSERT 0 2
test=# END;
COMMIT
(3)删除t04表。
test=# drop table t04;
DROP TABLE
test=# \dt t04;
Did not find any relation named "t04".- 正常停止数据库,删除数据库数据目录下的所有文件。
#正常关闭数据库
[kingbase@localhost ~]$ sys_ctl stop -m fast
等待服务器进程关闭 .... 完成
服务器进程已经关闭
#删除数据库主目录下的所有文件
[kingbase@localhost ~]$ rm -rf /home/application/KingbaseES/data/*
[kingbase@localhost ~]$ rm -rf /home/application/KingbaseES/data/.*- 执行不完全恢复至创建t04表的事务ID。
注意:基于事务的不完全恢复需要通过 --set参数指定需要使用的备份集,这里选择了最近一次的备份集进行恢复。
[kingbase@localhost ~]$ sys_rman --stanza=kingbase --set=20260720-142120F --target='915' --type=xid --target-action=promote restore- 启动数据库实例
[kingbase@localhost ~]$ sys_ctl start
等待服务器进程启动 ....2026-07-20 14:33:23.042 CST [89040] LOG: sepapower扩展初始化完成
2026-07-20 14:33:23.048 CST [89040] LOG: 正在启动 KingbaseES V009R001C010
2026-07-20 14:33:23.048 CST [89040] LOG: 正在监听IPv4地址"0.0.0.0",端口 54321
2026-07-20 14:33:23.048 CST [89040] LOG: 正在监听IPv6地址"::",端口 54321
2026-07-20 14:33:23.048 CST [89040] LOG: 在Unix套接字 "/tmp/.s.KINGBASE.54321"上侦听
2026-07-20 14:33:23.158 CST [89040] LOG: 日志输出重定向到日志收集进程
2026-07-20 14:33:23.158 CST [89040] HINT: 后续的日志输出将出现在目录 "/home/application/KingbaseES/data/sys_log"中.
完成
服务器进程已经启动- 验证t04 表是否恢复
[kingbase@localhost ~]$ ksql test system
授权类型: 企业版.
输入 "help" 来获取帮助信息.
test=# \dt t04;
关联列表
架构模式 | 名称 | 类型 | 拥有者
----------+------+--------+--------
public | t04 | 数据表 | system
(1 行记录)
test=# select * from t04;
id | name
----+------
1 | test
2 | dev
(2 行记录)4.7.2 基于时间点的不完全恢复
- 执行全备后,查看备份集信息。
[kingbase@localhost ~]$ sys_rman --stanza=kingbase --archive-copy --type=full backup
[kingbase@localhost ~]$ sys_rman --stanza=kingbase info
stanza: kingbase
status: ok
cipher: none
db (current)
wal archive min/max (V009R001C010B0004): 0000000400000001000000B6/0000000600000001000000C2
full backup: 20260720-133727F
timestamp start/stop: 2026-07-20 13:37:27+08 / 2026-07-20 13:37:43+08
wal start/stop: 0000000400000001000000B6 / 0000000400000001000000B6
database size: 1.8GB, database backup size: 1.8GB
repo1: backup set size: 300.3MB, backup size: 300.3MB
diff backup: 20260720-133727F_20260720-135259D
timestamp start/stop: 2026-07-20 13:52:59+08 / 2026-07-20 13:53:00+08
wal start/stop: 0000000400000001000000BB / 0000000400000001000000BB
database size: 1.8GB, database backup size: 23.1MB
repo1: backup set size: 300.3MB, backup size: 916.4KB
backup reference list: 20260720-133727F
incr backup: 20260720-133727F_20260720-135720I
timestamp start/stop: 2026-07-20 13:57:20+08 / 2026-07-20 13:57:21+08
wal start/stop: 0000000400000001000000BD / 0000000400000001000000BD
database size: 1.8GB, database backup size: 23.1MB
repo1: backup set size: 300.3MB, backup size: 917.0KB
backup reference list: 20260720-133727F, 20260720-133727F_20260720-135259D
full backup: 20260720-142120F
timestamp start/stop: 2026-07-20 14:21:20+08 / 2026-07-20 14:21:36+08
wal start/stop: 0000000500000001000000C0 / 0000000500000001000000C0
database size: 1.8GB, database backup size: 1.8GB
repo1: backup set size: 300.3MB, backup size: 300.3MB
full backup: 20260720-144030F
timestamp start/stop: 2026-07-20 14:40:30+08 / 2026-07-20 14:40:46+08
wal start/stop: 0000000600000001000000C2 / 0000000600000001000000C2
database size: 1.8GB, database backup size: 1.8GB
repo1: backup set size: 300.3MB, backup size: 300.3MB- 模拟误删除操作并执行不完全恢复。
(1)创建t05表、录入数据、记录时间
test=# CREATE TABLE t05(id int,name text);
CREATE TABLE
test=# INSERT INTO t05 VALUES(1,'test'),(2,'dev');
INSERT 0 2
(2)记录时间
test=# select now();
now
----------------------------
2026-07-20 14:42:53.293483
(1 行记录)
(3)删除t05表。
test=# drop table t05;
DROP TABLE
test=# \dt t05;
Did not find any relation named "t05".- 正常停止数据库,删除数据库数据目录下的所有文件。
#正常关闭数据库
[kingbase@localhost ~]$ sys_ctl stop -m fast
等待服务器进程关闭 .... 完成
服务器进程已经关闭
#删除数据库主目录下的所有文件
[kingbase@localhost ~]$ rm -rf /home/application/KingbaseES/data/*
[kingbase@localhost ~]$ rm -rf /home/application/KingbaseES/data/.*- 执行不完全恢复至创建t05表的时间
注意:基于事务的不完全恢复需要通过 --set参数指定需要使用的备份集,这里选择了最近一次的备份集进行恢复。
[kingbase@localhost ~]$ sys_rman --stanza=kingbase --set=20260720-144030F --target='2026-07-20 14:42:53.293483' --type=time --target-action=promote restore- 启动数据库实例
[kingbase@localhost ~]$ sys_ctl start
等待服务器进程启动 ....2026-07-20 14:48:23.465 CST [89184] LOG: sepapower扩展初始化完成
2026-07-20 14:48:23.471 CST [89184] LOG: 正在启动 KingbaseES V009R001C010
2026-07-20 14:48:23.471 CST [89184] LOG: 正在监听IPv4地址"0.0.0.0",端口 54321
2026-07-20 14:48:23.471 CST [89184] LOG: 正在监听IPv6地址"::",端口 54321
2026-07-20 14:48:23.471 CST [89184] LOG: 在Unix套接字 "/tmp/.s.KINGBASE.54321"上侦听
2026-07-20 14:48:23.583 CST [89184] LOG: 日志输出重定向到日志收集进程
2026-07-20 14:48:23.583 CST [89184] HINT: 后续的日志输出将出现在目录 "/home/application/KingbaseES/data/sys_log"中.
完成
服务器进程已经启动- 验证t05 表是否恢复
[kingbase@localhost ~]$ ksql test system
授权类型: 企业版.
输入 "help" 来获取帮助信息.
test=# \dt t05;
关联列表
架构模式 | 名称 | 类型 | 拥有者
----------+------+--------+--------
public | t05 | 数据表 | system
(1 行记录)
test=# select * from t05;
id | name
----+------
1 | test
2 | dev
(2 行记录)4.8 还原丢失的文件或目录(物理丢失)
- 模拟灾难
#找到t03表对应的物理文件
[kingbase@localhost ~]$ ksql test system
授权类型: 企业版.
输入 "help" 来获取帮助信息.
test=# select sys_relation_filepath('public.t03');
sys_relation_filepath
-----------------------
base/12790/40960
(1 行记录)
#模拟删除这个表对应的物理文件
test=# \! rm -rf /home/application/KingbaseES/data/base/12790/40960
#退出数据库,重新进入
test=# \q
[kingbase@localhost ~]$ ksql test system
授权类型: 企业版.
输入 "help" 来获取帮助信息.
test=# select * from t03;
ERROR: 无法打开文件 "base/12790/40960": 没有那个文件或目录- 正常停止数据库。
#正常关闭数据库
[kingbase@localhost ~]$ sys_ctl stop -m fast
等待服务器进程关闭 .... 完成
服务器进程已经关闭执行恢复
sys_rman --stanza=kingbase --delta restore- 启动数据库,观察是否恢复成功
[kingbase@localhost ~]$ sys_ctl start
等待服务器进程启动 ....2026-07-20 15:10:35.794 CST [89530] LOG: sepapower扩展初始化完成
2026-07-20 15:10:35.800 CST [89530] LOG: 正在启动 KingbaseES V009R001C010
2026-07-20 15:10:35.800 CST [89530] LOG: 正在监听IPv4地址"0.0.0.0",端口 54321
2026-07-20 15:10:35.800 CST [89530] LOG: 正在监听IPv6地址"::",端口 54321
2026-07-20 15:10:35.801 CST [89530] LOG: 在Unix套接字 "/tmp/.s.KINGBASE.54321"上侦听
2026-07-20 15:10:35.911 CST [89530] LOG: 日志输出重定向到日志收集进程
2026-07-20 15:10:35.911 CST [89530] HINT: 后续的日志输出将出现在目录 "/home/application/KingbaseES/data/sys_log"中.
完成
服务器进程已经启动
[kingbase@localhost ~]$ ksql test system
授权类型: 企业版.
输入 "help" 来获取帮助信息.
test=# \dt t03;
关联列表
架构模式 | 名称 | 类型 | 拥有者
----------+------+--------+--------
public | t03 | 数据表 | system
(1 行记录)
test=# select * from t03;
id | name
----+------
1 | abc
2 | def
(2 行记录)五、检查备份和归档配置可用性
5.1 验证备份和归档的配置是否可用
使用 sys_rman的 check命令验证备份和归档的配置是否可用,如果配置不正确,导致系统无法正常备份和归档时,则会做出相应警告和提示。
[kingbase@localhost ~]$ sys_rman --stanza=kingbase check
2026-07-20 15:22:02.991 P00 INFO: check command begin 2.27: --no-archive-mode-check --archive-timeout=600 --band-width=0 --exec-id=89583-3301ee6f --kb1-path=/home/application/KingbaseES/data --kb1-port=54321 --kb1-user=system --log-level-console=info --log-level-file=info --log-path=/home/application/KingbaseES/V9/Server/log --log-subprocess --process-max=4 --repo1-path=/home/application/KingbaseES/backup/rman --stanza=kingbase
2026-07-20 15:22:03.012 P00 INFO: check repo1 configuration (primary)
2026-07-20 15:22:03.024 P00 INFO: check repo1 archive for WAL (primary)
2026-07-20 15:22:03.225 P00 INFO: WAL segment 0000000900000001000000C6 successfully archived to '/home/application/KingbaseES/backup/rman/archive/kingbase/12-1/0000000900000001/0000000900000001000000C6-5cb082d5651a6a8d8cbece16bd257f365755e4ec.gz' on repo1
2026-07-20 15:22:03.225 P00 INFO: check command end: completed successfully (238ms)5.2 命令行手动指定保留策略
expire:删除过期备份集。—-repo1-retention-full=2:指定保留最近2次的全量备份。
[kingbase@localhost ~]$ sys_rman --stanza=kingbase --repo1-retention-full=2 expire
2026-07-20 15:28:33.697 P00 INFO: expire command begin 2.27: --no-archive-statistics --band-width=0 --exec-id=89679-758542b6 --log-level-console=info --log-level-file=info --log-path=/home/application/KingbaseES/V9/Server/log --process-max=4 --repo1-path=/home/application/KingbaseES/backup/rman --repo1-retention-full=2 --stanza=kingbase
2026-07-20 15:28:33.699 P00 INFO: repo1: expire full backup 20260720-144030F
2026-07-20 15:28:33.700 P00 INFO: repo1: remove expired backup 20260720-144030F
2026-07-20 15:28:33.779 P00 INFO: repo1: 12-1 remove archive, start = 0000000600000001000000C2, stop = 0000000900000001000000C8
2026-07-20 15:28:33.779 P00 INFO: repo1: 12-1 remove history file 00000006.history
2026-07-20 15:28:33.779 P00 INFO: repo1: 12-1 remove history file 00000007.history
2026-07-20 15:28:33.779 P00 INFO: repo1: 12-1 remove history file 00000008.history
2026-07-20 15:28:33.779 P00 INFO: expire command end: completed successfully (85ms)
[kingbase@localhost ~]$ sys_rman --stanza=kingbase info
stanza: kingbase
status: ok
cipher: none
db (current)
wal archive min/max (V009R001C010B0004): 0000000900000001000000C9/0000000900000001000000CB
full backup: 20260720-152720F
timestamp start/stop: 2026-07-20 15:27:20+08 / 2026-07-20 15:27:36+08
wal start/stop: 0000000900000001000000C9 / 0000000900000001000000C9
database size: 1.8GB, database backup size: 1.8GB
repo1: backup set size: 300.3MB, backup size: 300.3MB
full backup: 20260720-152809F
timestamp start/stop: 2026-07-20 15:28:09+08 / 2026-07-20 15:28:25+08
wal start/stop: 0000000900000001000000CB / 0000000900000001000000CB
database size: 1.8GB, database backup size: 1.8GB
repo1: backup set size: 300.3MB, backup size: 300.3MB5.3 配置永久保留策略
- 在sys_rman.conf 中配置永久保留策略,保留最近 3次全量备份
[kingbase@localhost ~]$ vim /home/application/KingbaseES/backup/rmansys_rman.conf
[kingbase@localhost ~]$ cat /home/application/KingbaseES/backup/rman/sys_rman.conf | grep repo1-retention-full=3
repo1-retention-full=3- 删除过期的备份集并查看当前备份集
[kingbase@localhost ~]$ sys_rman --stanza=kingbase expire
[kingbase@localhost rman]$ sys_rman --stanza=kingbase info
stanza: kingbase
status: ok
cipher: none
db (current)
wal archive min/max (V009R001C010B0004): 0000000900000001000000CB/0000000900000001000000CF
full backup: 20260720-152809F
timestamp start/stop: 2026-07-20 15:28:09+08 / 2026-07-20 15:28:25+08
wal start/stop: 0000000900000001000000CB / 0000000900000001000000CB
database size: 1.8GB, database backup size: 1.8GB
repo1: backup set size: 300.3MB, backup size: 300.3MB
full backup: 20260720-153309F
timestamp start/stop: 2026-07-20 15:33:09+08 / 2026-07-20 15:33:25+08
wal start/stop: 0000000900000001000000CD / 0000000900000001000000CD
database size: 1.8GB, database backup size: 1.8GB
repo1: backup set size: 300.3MB, backup size: 300.3MB
full backup: 20260720-153430F
timestamp start/stop: 2026-07-20 15:34:30+08 / 2026-07-20 15:34:47+08
wal start/stop: 0000000900000001000000CF / 0000000900000001000000CF
database size: 1.8GB, database backup size: 1.8GB
repo1: backup set size: 300.3MB, backup size: 300.3MB5.4 手动删除指定备份集
注意:最近一次的完全备份是无法手动指定删除的
[kingbase@localhost ~]$ sys_rman --stanza=kingbase --set='20260720-152720F' expire
2026-07-20 15:30:12.587 P00 INFO: expire command begin 2.27: --no-archive-statistics --band-width=0 --exec-id=89708-20902ca0 --log-level-console=info --log-level-file=info --log-path=/home/application/KingbaseES/V9/Server/log --process-max=4 --repo1-path=/home/application/KingbaseES/backup/rman --repo1-retention-full=3 --set=20260720-152720F --stanza=kingbase
2026-07-20 15:30:12.588 P00 INFO: repo1: expire adhoc backup 20260720-152720F
2026-07-20 15:30:12.589 P00 INFO: repo1: remove expired backup 20260720-152720F
2026-07-20 15:30:12.674 P00 INFO: expire command end: completed successfully (90ms)六、参考
- 人大金仓. KCP-04物理备份和还原-01理论-V0.78-V9R1 [R]. 金仓培训资料, 2024.02.22
- 人大金仓. KCP-04物理备份和还原-02实验-V0.79-V9R1 [R]. 金仓培训资料, 2024.02.22
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟