文档下载建议反馈入口

  • 容灾
  • 备份还原

容灾和备份

容灾

KaiwuDB 通过 WAL(Write-Ahead Logging,预写式日志)技术,在 VGroup(虚拟组)级别记录时序表的模式变更和数据变更,实现时序数据灾难恢复,确保时序数据的一致性与原子性。

WAL 工作机制

WAL 通过以下三个核心步骤保障数据安全:

  1. 预写日志:所有时序数据修改操作在执行前必须先写入 WAL 日志,确保即使系统异常退出也能完整恢复数据
  2. 定期检查点(Checkpoint):系统后台定期将内存中的数据写入磁盘以确保数据安全。默认执行间隔为 1 分钟,可通过 ts.wal.checkpoint_interval 参数调整
  3. 故障恢复:系统重启时自动检查上次关闭状态,重放未完成的 WAL 操作并回滚异常事务,保证数据完整性

WAL 文件管理

KaiwuDB 采用双文件轮转策略实现高效的 WAL 文件管理:

  • current_file:当前活跃的 WAL 写入文件,文件大小根据系统负载和配置参数动态调整
  • checkpoint_file:执行检查点时由 current_file 转换的临时文件,数据同步完成后自动删除

具体轮转流程如下:

  1. 正常运行时,所有 WAL 操作记录在 current_file 中
  2. 触发检查点时,当前 current_file 转换为 checkpoint_file
  3. 系统立即创建新的 current_file 继续接收 WAL 写入
  4. 数据同步完成后,checkpoint_file 被安全删除

WAL 配置

用户可通过以下参数调整 WAL 行为:

参数名称描述默认值
ts.wal.wal_levelWAL(Write-Ahead Log)写入级别,控制数据持久化策略:
- 0 (off):关闭 WAL,重启时通过时序存储引擎接口恢复数据状态
- 1 (sync):日志实时写入磁盘并强制持久化,提供最高安全性,性能相对较低
- 2 (flush):日志写入文件系统缓冲区,在性能和安全性间取得平衡
- 3 (byrl):基于 Raft Log 保证数据一致性,WAL 仅负责元数据一致性
1
ts.wal.checkpoint_interval检查点执行间隔,控制时序数据从内存持久化到磁盘的频率1m

重要说明

  • 支持从 2 (flush) 或 1 (sync) 动态切换到 0 (off) / 3 (byrl),切换过程会产生短暂阻塞,阻塞时长取决于当前检查点的执行时间
  • 实例级别的 DDL 操作不受 ts.wal.wal_level 影响,始终启用 WAL 并实时持久化

示例:

-- 设置 WAL 为同步模式,确保最高数据安全性
SET cluster setting ts.wal.wal_level = 1;

-- 调整检查点间隔为 5 分钟
SET cluster setting ts.wal.checkpoint_interval = '5m';

备份还原

备份

功能概述

备份是指将数据库中的用户数据和元数据复制到指定位置的过程,用于在数据丢失、损坏或系统故障时恢复数据。

KaiwuDB 的备份功能主要用于应对以下场景:

  • 灾难恢复:硬件故障、软件崩溃、自然灾害等意外情况时,根据备份文件快速恢复系统可用性
  • 版本回退:数据库升级、应用升级出错时,根据备份文件回退至稳定版本
  • 数据保护:防止人为误操作导致的数据丢失
  • 系统迁移:将数据从一个环境迁移到另一个环境

备份类型

KaiwuDB 支持对时序引擎、时序数据库和时序表进行全量备份:

  • 时序引擎备份:备份时序引擎下所有时序数据库的完整数据,包括元数据、标签数据和指标数据
  • 时序数据库备份:备份指定数据库下所有时序表的完整数据,包括元数据、标签数据和指标数据
  • 时序表备份:备份指定表的完整数据,包括元数据、标签数据和指标数据

备份文件结构

KaiwuDB 备份文件根据备份对象的不同,生成相应的目录结构:

  • 时序引擎备份

    备份时序引擎时,KaiwuDB 将在指定路径下创建备份文件夹,内部结构为:tsengine 目录存储引擎级别的元数据信息(metadata),下层按数据库级别组织目录,每个数据库目录包含其所属的表目录,各表目录存储相应的标签、指标备份文件。

    extern/
    └── backup_ts
        └── tsengine
            ├── db1
            │   ├── tb1
            │   │   └── storage_metrics_tag
            │   └── tb2
            │       └── storage_metrics_tag
            ├── db2
            │   ├── tb1
            │   │   └── storage_metrics_tag
            │   └── tb2
            │       └── storage_metrics_tag
            └── metadata
    
  • 时序数据库备份

    备份时序数据库时,KaiwuDB 将在指定路径下创建备份文件夹,文件夹内部直接包含对应的数据库目录,存储数据库的元数据和所有表目录,每个表目录下包含标签、指标相关的备份文件。

    extern/
    └── backup_db1
        └── db1
            ├── tb1
            │   └── storage_metrics_tag
            ├── tb2
            │   └── storage_metrics_tag
            └── metadata
    
  • 时序表备份

    备份时序表时,KaiwuDB 将在指定路径下创建备份文件夹,文件夹内部直接包含对应的表目录,存储表级别元数据以及标签、指标相关的备份文件。

    extern/
    └── backup_tb1
        └── tb1
            ├── metadata
            └── storage_metrics_tag
    

备份操作

备份操作通过 BACKUP SQL 语句执行,支持通过作业管理查看、暂停、恢复和取消备份任务。有关 BACKUP SQL 语句的详细信息,参见备份管理。有关作业管理的详细信息,参见作业管理

说明

  • 备份范围说明:当前备份还原功能仅支持时序表、数据库和时序引擎,不支持关系数据以及权限、系统表等对象。
  • 未来数据限制:执行备份时,时间戳大于本次备份开始时间的数据无法进行备份。
  • 任务中断处理:暂停全量备份任务后,如需恢复执行,必须先手动清理目标文件夹中的已生成备份文件,否则恢复操作可能会失败。

还原

功能概述

还原是指将备份文件中的数据和元数据恢复到数据库系统中的过程,使目标对象的状态与备份时保持一致。还原功能是数据库灾难恢复和数据保护策略的核心组成部分。

KaiwuDB 的还原功能主要用于以下场景:

  • 灾难恢复:在系统故障、数据损坏或丢失时,通过还原备份数据快速恢复业务连续性
  • 数据迁移:将数据从一个环境迁移到另一个环境,如从测试环境迁移到生产环境
  • 版本回退:当系统升级或变更出现问题时,回退到之前的稳定状态
  • 测试环境搭建:使用生产数据备份快速搭建测试环境
  • 数据分析:为数据分析和报表生成创建独立的数据副本

还原类型

KaiwuDB 支持对时序引擎、时序数据库和时序表进行全量还原:

  • 时序引擎还原:还原时序引擎下所有时序数据库的完整数据,包括元数据、标签数据和指标数据
  • 时序数据库还原:还原指定数据库下所有时序表的完整数据,包括元数据、标签数据和指标数据
  • 时序表还原:还原指定表的完整数据,包括元数据、标签数据和指标数据

还原操作

备份操作通过 RESTORE SQL 语句执行,支持通过作业管理查看、暂停、恢复和取消还原任务。有关 RESTORE SQL 语句的详细信息,参见还原管理。有关作业管理的详细信息,参见作业管理

说明

  • 备份范围说明:当前还原功能仅支持时序表、数据库和时序引擎,不支持关系数据和权限、系统表等对象。
  • 任务中断处理:暂停全量还原任务后,如需恢复执行,必须先手动清理目标文件夹中的已生成还原文件,否则恢复操作可能会失败。