MENU

Kingbase 数据库物理备份与恢复(sys_rman 本机备份)

• July 20, 2026 • Read: 13 • 编码👨🏻‍💻

一、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 单机本地备份

image-20260720101438003

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

2.2.2 单机异地备份

image-20260720101532521

  • 数据库在本机,备份目录放在另一台机器或共享存储。
  • 安全性更高,适合生产环境。
  • 受网络带宽影响更明显。

2.3 推荐架构思路

生产环境建议:

image-20260720101745319

  • 一主一备+外部备份。
  • 增加备机节点,外部备份从备机备份数据,减轻主节点压力。
  • 备份目录与数据库目录分离。
  • 保证归档日志目录和备份目录容量充足。
  • 至少保留多份全量备份。
  • 定期执行 verify 验证备份可用性。

三、sys_rman 工具概览

3.1 sys_rman 能力说明

sys_rman 是 KingbaseES 的物理备份恢复工具,核心能力包括:

  • 备份速度快,是生产环境首选的备份方式。
  • 只能联机备份,数据库服务关闭状态下执行sys_rman会失败。
  • 操作简单,单个命令即可完成备份和恢复。
  • 支持全量备份、差异备份和增量备份。
  • 根据保留策略自动删除已过期的备份文件。
  • 可以支持自动读取所需的备份集、在线日志、归档日志来实现完全恢复和不完全恢复。
  • 基于文件块级别的备份,备份速度快。
  • 支持并行的高速备份和恢复。

3.2 备份类型说明

备份类型命令类型特点适用场景
全量备份--type=full自包含,恢复最简单,占用空间最大首次备份、周期性基线、恢复成功后立即补一份
差异备份--type=diff依赖最近一次全量备份短周期备份
增量备份--type=incr依赖前一次全量/差异/增量备份链更节省空间

3.3 备份与恢复原理

3.1 备份原理

备份时大致流程如下:

  1. 根据本次备份类型确定依赖关系。
  2. 扫描数据目录中的数据文件、控制文件及相关核心文件。
  3. 拷贝变化文件或变化块。
  4. 记录备份标签与 WAL 起止位置。
  5. 根据保留策略自动清理过期备份。

3.2 恢复原理

恢复时大致流程如下:

  1. 根据时间点、XID、备份集选择最合适的基础备份集。
  2. 将基础备份集拷贝回 KB_DATA
  3. 自动写入 kingbase.auto.conf 恢复参数。
  4. 启动数据库进入恢复模式。
  5. 从归档 WAL 重做到目标点。
  6. 人工确认数据是否符合预期。
  7. 确认无误后执行 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.conf

2、KES的安装目录下有初始配置文件的模板,包含以下参数:

参数简介
target_db_style选择性选项,可选 single 或 cluster 或 single-pro。<br/>single对应单机模式的目标数据库实例。<br/>cluster对应集群模式的目标数据库实例。<br/>single-pro对应集群模式的每个DB节点独立备份。
_one_db_ip一个数据库节点的IP或主机名,支持主机名、IPv4、IPv6地址。
_repo_ipREP0备份节点的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用户设置口令密文

备份和恢复的过程中需要免密登录数据库执行备份和恢复的操作。

image-20260720113543495

[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/backup

4.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=n

4.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.4MB

4.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 backup

4.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-133727F

4.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-135259D

4.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.3MB

5.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.3MB

5.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
Archives Tip
QR Code for this page
Tipping QR Code