TDengine 运维全攻略:五种备份与恢复方法深度解析(2025 最新版)
备份与还原是数据库运维的核心环节,TDengine 提供了五种主流数据备份方法,覆盖不同场景需求。本文将详细解析各方法的特性与操作要点。
1. taosdump
介绍
taosdump 是 TDengine 社区版首选的数据备份工具(企业版同样支持),其核心特点是操作简便、支持多线程处理,且备份文件采用 Apache Avro 格式(大数据领域通用数据交换格式),便于向其他系统共享数据。工具支持跨平台连接远程服务器执行备份 / 恢复操作,兼容 Native、Restful、WebSocket 等多种连接协议。
优缺点
优点:操作简单且社区版支持,导出格式为开放式 avro 格式。
缺点:功能选项相对基础,未覆盖复杂场景需求。
使用方法
工具获取
随企业版 / 社区版安装包内置,无需额外下载。
备份操作
- 全库备份(包括系统库)
命令示例:taosdump -A -o /data/backup
(-A
表示全库,-o
指定备份目录)。
- 指定备份库或表
支持单库多表备份,不支持多库。
命令示例:taosdump -D db01 -o /data/backup/db01
(-D
指定数据库名)。
- 指定时间段备份
支持按时间区间筛选数据,未指定则备份全量。
命令示例:taosdump -S '2024-01-01T00:00:00+0800' -E '2024-01-02T00:00:00+0800' -D db01 -o /data/backup/time_range
(-S
和 -E
分别指定起始和结束时间)。
- 指定线程备份
支持自定义线程加速备份,默认 8 线程。
命令示例:taosdump -T 32 -A -o /data/backup
(-T 表示备份线程数)。
- 只备份元数据
命令示例:taosdump -s -D db01 -o /data/backup/meta
(-s
表示仅元数据)。
恢复操作
- 全量恢复 命令示例:
taosdump -i /data/backup
(-i
指定备份目录,恢复所有数据)。 - 恢复时修改库名 命令示例:
taosdump -i /data/backup -W "db01=new_db01"
(将原库db01
恢复为new_db01
)。 - 指定线程恢复 命令示例:
taosdump -i /data/backup -T 16
(使用 16 线程加速恢复)。 - 指定数据库恢复 操作步骤:全库备份后,删除备份目录中不需要恢复的数据库文件夹(如
db02
),保留db01
文件夹,再执行taosdump -i /data/backup
,仅恢复db01
。 - 元数据恢复
若目标库表已存在,元数据不会覆盖,仅保留现有结构。
表结构有变动的备份/恢复
- TDengine 3.3.6.0 之前版本:若目标库表结构有变动(如增删列),直接恢复会失败。需通过 “旧备份导入新库→新库导出新备份→新备份导入目标库” 迂回恢复。
- TDengine 3.3.6.0 及之后版本:支持表结构增删列(列名不变仅类型修改仍不支持),恢复时新增列以
null
填充。
2. taosx
功能描述
taosX 是 TDengine 企业版专用的数据管道工具,定位为 “零代码数据集成平台”,核心功能覆盖数据接入、同步、备份、恢复及迁移。支持跨集群 / 实例的异步数据复制,可作为桥梁对接 TDengine 与第三方数据源(如关系型数据库、消息队列等)。
优缺点
优点:功能全面(支持增量备份、断点续备等)、速度快、导出格式多样(CSV/Parquet 列存)。
缺点:社区版不支持、使用复杂度高。
使用方法
工具获取
随企业版安装包内置,部分生态对接组件需单独安装。
核心功能
taosX 功能丰富,覆盖数据全生命周期管理,具体包括:
-
数据备份与恢复:支持增量备份 / 恢复(3.3.x + 版本支持图形化操作)、断点续备,备份文件格式支持 CSV 和 Parquet(列存)。
-
数据迁移与同步 :
- 支持基于订阅(TMQ)的实时数据同步(3.0 + 版本)和基于 SELECT 的历史数据迁移(2.4+/2.6+/3.0 + 版本)。
- 支持历史数据(history 模式)、实时数据(realtime 模式)、混合(both 模式)迁移。
- 任务支持进度保存,异常恢复后可续传。
-
跨集群复制 :支持数据库或(超级)表的全量 / 增量复制,可选择列级复制、模式(schema)复制,表名支持正则匹配。
-
外部数据源接入 :
- 关系型数据库:MySQL、Oracle、PostgreSQL、Microsoft SQL Server。
- 时序数据库:OpenTSDB、InfluxDB。
- 工业实时数据库:PI System、Aveva Historian。
- 消息队列:Kafka。
- 其他常见协议:OPC-UA/DA、MQTT。
-
数据转换(Transform):支持对输入流进行过滤、映射、聚合等处理,处理后数据流入目标端。
-
双活部署管理 :通过 taosx replica 系列命令管理主备集群同步任务,支持任务启动、停止、重启及进度查看 。
-
可视化操作 :可通过 taos-explorer(Web 界面)配置数据迁移任务、监控任务状态(如数据写入量、延时等)。
-
备份/恢复步骤:
一、备份步骤
- 配置备份任务参数(命令行方式)
- –from 参数 (源端配置):
auto.offset.reset=latest&experimental.snapshot.enable=false
:不备份历史数据,从当前 WAL 最新位置开始备份。upcoming
:指定下次执行备份任务的时间(如now
表示立即开始)。interval
:两次备份任务的间隔(如interval=60s
表示每 60 秒执行一次)。self.repeat=true
:开启持续重复调度。
- –to 参数 (目标端配置):
move.to
:备份文件写入完成后,移动到指定目录(如/data/send
)。
- 启动备份任务 使用
nohup
方式后台启动备份任务,示例命令(以跨隔离场景为例):
nohup taosx backup --from "auto.offset.reset=latest&experimental.snapshot.enable=false&upcoming=now&interval=60s&self.repeat=true" --to "move.to=/data/send" > backup.log 2>&1 &
此命令会持续生成增量备份文件到本地路径,并在完成后移动至 /data/send/ 目录。
- 图形化操作(3.3.x + 版本) 通过
taos-explorer
(Web 界面,访问地址如http://<集群IP>:6060
)配置备份任务:- 进入 “系统管理 - 备份” 页面,点击 “新增备份”。
- 配置参数:备份周期(每天 / 每 7 天 / 每 30 天)、目标数据库(需
wal_retention_period>0
)、备份目录(如/root/data_backup
)。 - 点击 “确定” 后任务启动,支持监控任务状态(数据写入量、延时等)。
二、恢复步骤
- 配置恢复任务参数(命令行方式)
post_action=del :恢复完成后自动删除备份文件(避免重复恢复)。 - 启动恢复任务 在目标集群使用
nohup
启动恢复任务,示例命令:
nohup taosx restore --from "/data/receive" --post_action=del > restore.log 2>&1 &
此命令会监听接收目录(如/data/receive
),解析并写入增量备份文件到目标 TDengine 集群。
-
图形化操作(3.3.x + 版本) 在
taos-explorer
的 “系统管理 - 备份” 页面中:- 进入 “备份文件” 列表,选择需恢复的备份点。
- 点击 “数据恢复” 按钮,选择目标数据库后完成恢复。
3. taos-CLI 工具
介绍
taos-CLI 工具是 TDengine 自带的数据库管理工具(社区版及企业版均支持),其备份及恢复功能主要通过 CSV 文件实现,工具适合小数据量临时备份场景,操作简单但性能有限,需结合实际需求选择使用。
优缺点:
优点:操作简单,可灵活备份任意查询结果(如特定子表、部分列或自定义查询结果)。
缺点:仅支持单线程操作,速度较慢,适用于小数据量的临时备份。
使用方法
工具获取
taos-CLI 工具内置于 TDengine 社区版及企业版中,无需额外安装。
备份时主要通过taos
命令行的重定向符号>>
将查询结果导出为 CSV 文件,支持以下场景:
- 子表整体备份 :直接导出子表的所有数据。 示例(导出子表
child_table
):
SELECT * FROM child_table >> /path/to/backup.csv
- 查询结果备份 :导出特定查询条件的结果(如时间范围、过滤条件)。 示例(导出 2025-06-01 至 2025-06-30 的数据):
SELECT * FROM sensor_data WHERE ts BETWEEN '2025-06-01' AND '2025-06-30' >> /path/to/query_backup.csv
- 部分列备份 :仅导出指定列的数据(适用于表结构变化大的迁移场景)。 示例(导出
id
和value
列):
SELECT id, value FROM sensor_data >> /path/to/partial_columns_backup.csv
恢复操作
恢复时需注意删除 CSV 文件的第一行标题行(避免列名被误导入),并根据备份列数据类型选择对应语法:
- 子表整体还原 :直接将 CSV 数据导入目标子表。 示例(导入到子表
child_table
):
INSERT INTO child_table FILE /path/to/backup.csv;
- 部分列还原 :需明确指定目标表的列名,确保 CSV 文件的列顺序与指定列一致。 示例(导入到
target_table
的id
和value
列):
INSERT INTO target_table (id, value) FILE /path/to/partial_columns_backup.csv;
4. 库文件备份
介绍
库文件备份是指直接备份 TDengine 中 dataDir
指向的数据库文件目录,属于整体备份方式,主要用于灾备场景(如 TDengine 无法启动时),类似于制作数据库镜像。
优缺点
优点:不依赖于 TDengine 服务
缺点:现有数据无法保留
使用方法
工具获取
无工具,使用系统 copy 命令。
备份操作
备份操作建议结合自动化脚本定期执行,以提升可靠性。
-
备份范围 :
- 不需要备份的文件夹 :WAL(预写日志)文件夹(通常较大,无需备份)。
- 多副本场景 :仅需备份主副本(leader)的数据,无需备份所有副本。
- 集群场景 :多节点应在相同时间点备份,以减少节点间数据差异。
-
备份时机 :
- 理想情况 :停止 TDengine 服务后备份,确保数据一致性。
- 生产环境(热备份) :若无法停止服务,可执行
flush database <dbname>
命令强制内存数据落盘,再进行备份。
恢复操作
建议手工操年,明确自己在做什么,以保证数据安全,恢复前需停止服务。
-
恢复前准备 :必须停止 TDengine 服务。
-
恢复方式 :
- 完整还原 :需基于完整的备份目录还原。可修改
dataDir
参数指向备份目录;若使用原目录,需清空原目录后替换(不可新旧混合)。 - 多副本还原 :
- 若为全量备份,与完整还原操作相同。
- 若仅备份了 leader 数据,需将 leader 备份文件复制到其他副本节点。
- 集群还原 :所有节点必须使用同一备份数据还原,仅还原部分节点可能导致启动失败或不可预期问题。
- 完整还原 :需基于完整的备份目录还原。可修改
5. 双活
介绍
一种主备构架,需两套 TDengine 系统,每套系统可以为集群也可以为单机,但必须保证同构。最少配置为两台服务器。主备之间实时同步,当主节点宕机,备节点自动切为继续提供服务。
优缺点
优点:双系统实现最高级别高可用。
缺点:占用资源多,只保留最新数据,无历史数据。
使用
工具获取
企业版安装包获取,依赖组件 taosX,taosAdapter, taosd
工具使用
-
需安装两套 TDengine 系统。
-
两套系统必须同构(版本、配置参数、用户名密码等完全一致),且版本需 ≥ 3.3.0.0。
-
客户端驱动实现自动 Failover,主节点宕机,自动切换为备节点。
-
taosX 工具数据库订阅功能实现主备节点数据同步。
-
运维命令
通过taosx replica
系列命令管理双活同步任务,关键命令如下:- 启动任务 :
taosx replica start -f <source_endpoint> -t <sink_endpoint> [database...]
建立从源端到目标端的同步任务taosx replica start -i <id> [database...]
为已存在的任务添加新数据库
- 查看状态 :
taosx replica status [id...]
,查看任务列表和状态 - 停止任务 :
taosx replica stop <id> [db...]
,停止指定任务或数据库同步 - 重启任务 :
taosx replica restart <id> [db...]
,重启指定任务或数据库同步 - 查看进度 :
taosx replica diff <id> [db...]
,输出订阅 Offset 与最新 WAL 的差值(不代表行数) - 删除任务 :
taosx replica remove <id> [--force]
,强制删除任务(需先停止)
- 启动任务 :
-
推荐使用步骤:
1)在机器 A(主节点)和机器 B(备节点)上安装并启动 TDengine 企业版(版本≥3.3.0.0)2)分别在机器 A 和 B 上运行
taosx replica start
命令配置同步任务(示例:
taosx replica start -f td1:6030 -t td2:6030
)3)验证任务状态(
taosx replica status
),确保任务进入 Running 状态4)客户端通过 Java 连接器配置备节点信息,启用自动重连
-
异常处理
若备份节点停机时间超过 WAL 保留时长,有可能会导致数据丢失,请务必保证在 WAL 保留时间内恢复备份节点。
总结
TDengine 提供的五种备份 / 恢复方法各有优劣与适用场景:
- taosdump :社区版首选,适合小到中数据量的开放格式备份;
- taosX :企业版推荐,功能全面,支持复杂迁移与增量操作;
- taos-CLI :轻量临时备份,适合小数据量灵活导出;
- 库文件备份 :灾备场景必选,离线操作但覆盖全量数据;
- 双活 :高可用首选,保障业务连续性但资源消耗大。
企业需结合数据规模、可用资源、场景需求(如灾备 / 迁移 / 临时备份),选择单一或组合方案,确保数据安全与业务稳定。
关于 TDengine
TDengine 是一款专为物联网、工业互联网等场景设计并优化的大数据平台,其核心模块是高性能、集群开源、云原生、极简的时序数据库。它能安全高效地将大量设备每天产生的高达 TB 甚至 PB 级的数据进行汇聚、存储、分析和分发,并提供 AI 智能体对数据进行预测与异常检测,提供实时的商业洞察。