文档下载建议反馈入口

  • 创建还原任务

还原管理

KaiwuDB 支持对时序数据和关系数据进行不同粒度的全量还原和增量还原:

  • 引擎级还原:还原整个时序引擎或关系引擎下的所有数据库
  • 数据库级还原:还原指定数据库下的所有表
  • 表级还原:还原指定的单个表

还原操作通过 RESTORE SQL 语句执行,支持通过作业管理进行监控和控制。有关作业管理的详细信息,参见作业管理

说明

备份文件不支持跨大版本还原(如 3.0.x ↔ 3.1),同一大版本内的小版本支持互相还原

创建还原任务

所需权限

  • 非三权分立模式下,用户是 admin 角色的成员。默认情况下,root 用户属于 admin 角色。
  • 三权分立模式下,用户是 sysadmin 角色的成员。默认情况下,sysroot 用户属于 sysadmin 角色。

语法格式

参数说明

参数描述
database_name要还原的数据库名称
table_name要还原的表名称
backup_path_list备份文件存储路径,格式为 nodelocal://<node_id>/<dir>,表示从本地节点读取备份文件。其中:
- node_id 为节点 ID。本地只有一个节点时,node_id 取值为 1
- dir 为存放备份文件的文件夹名称,系统将在 KaiwuDB 数据目录下的 extern 目录查找该文件。

注意
- 执行时序数据增量还原时,可仅指定部分连续的备份路径,系统会根据集群当前状态自动判断从哪个备份文件开始还原,所配置的文件必须保持连续性
- 执行关系数据增量还原时,需先删除目标对象,再按备份时间顺序列出所有相关的备份路径,路径之间用逗号分隔
AS OF SYSTEM TIME <time>基于时间点的还原,仅还原备份文件中该时间点之前的数据。支持两种格式:
- 具体时间,如 '2026-01-01'
- 距当前还原时刻的时间间隔,如 '-30s'

返回字段说明

字段描述
job_id还原任务 ID
status还原任务的执行状态
fraction_completed还原任务的完成进度,取值范围 0-1,其中 1 表示 100%
rows本次还原的数据行数
index_entries本次还原的索引数(仅用于集群级还原,当前版本不适用)
bytes本次还原的数据大小(字节)

语法示例

全量还原

  • 还原时序引擎:

    RESTORE TS ENGINE FROM "nodelocal://1/backup_ts";
    
  • 还原关系引擎:

    RESTORE RELATIONAL ENGINE FROM "nodelocal://1/backup_r";
    
  • 还原数据库:

    RESTORE DATABASE db1 FROM "nodelocal://1/backup_db1";
    
  • 还原表:

    RESTORE TABLE t1 FROM "nodelocal://1/backup_t1";
    

增量还原

  • 还原时序引擎(仅指定所需的备份路径):

    RESTORE TS ENGINE FROM "nodelocal://1/backup_ts_inc/backup_ts_inc1",
                          "nodelocal://1/backup_ts_inc/backup_ts_inc2";
    
  • 还原关系引擎(需按顺序列出完整备份链):

    RESTORE RELATIONAL ENGINE FROM "nodelocal://1/backup_r_inc/backup_r",
                                  "nodelocal://1/backup_r_inc/backup_r_inc1",
                                  "nodelocal://1/backup_r_inc/backup_r_inc2";
    
  • 还原数据库:

    -- 时序数据库,仅指定所需路径
    RESTORE DATABASE db1 FROM "nodelocal://1/backup_db1_inc/backup_db1_inc2";
    
    -- 关系数据库,需先删除并按顺序列出完整备份链
    DROP DATABASE db1;
    RESTORE DATABASE db1 FROM "nodelocal://1/backup_db1_inc/backup_db1",
                              "nodelocal://1/backup_db1_inc/backup_db1_inc1",
                              "nodelocal://1/backup_db1_inc/backup_db1_inc2";
    
  • 还原表:

    -- 时序表,仅指定所需路径
    RESTORE TABLE t1 FROM "nodelocal://1/backup_t1_inc/backup_t1_inc2";
    
    -- 关系表,需先删除并按顺序列出完整备份链
    DROP TABLE t1;
    RESTORE TABLE t1 FROM "nodelocal://1/backup_t1_inc/backup_t1",
                          "nodelocal://1/backup_t1_inc/backup_t1_inc1",
                          "nodelocal://1/backup_t1_inc/backup_t1_inc2";
    

基于时间点的还原

  • 还原某个具体时间点之前的数据:

    RESTORE TABLE t1 FROM "nodelocal://1/backup_tb1_inc2" AS OF SYSTEM TIME '2026-01-01';
    
  • 还原距当前时刻指定时间间隔之前的数据:

    RESTORE TABLE t1 FROM "nodelocal://1/backup_tb1_inc2" AS OF SYSTEM TIME '-30s';