TDengine 备份与恢复 — taosdump 与企业版备份方案
2026/8/4 4:43:45 网站建设 项目流程

分类:12.运维 |篇章:04 备份与恢复

免费详情

数据备份是生产环境的必备能力。TDengine 提供 taosdump(开源工具,逻辑备份)和企业版备份方案(物理备份/增量备份)。本文涵盖备份策略、恢复流程、迁移场景。

备份方式速查

方式类型粒度适用
taosdump逻辑(SQL)库/表通用迁移
物理备份(企业版)物理(文件)集群完整备份
副本(REPLICA=3)实时集群高可用
流计算/订阅实时复制异地灾备

详细解析

1. 副本机制(不是真正备份,但是 HA 基础)

REPLICA 副本: 建库时设 REPLICA 3 数据实时复制到 3 个节点 单节点故障自动切换 局限性: - 不防误删/误改(同步复制) - 不防整集群灾难 - 不能跨集群 结论: REPLICA 是高可用,不是备份 生产必须 REPLICA + 备份双保险

2. taosdump 备份

# 备份整个数据库taosdump-hlocalhost-P6030-uroot-ptaosdata\-Dmydb\-o/backup/mydb_$(date+%Y%m%d)# 备份特定超级表taosdump-hlocalhost-Dmydb\-Nmeters\-o/backup/meters_$(date+%Y%m%d)# 备份多个数据库taosdump-hlocalhost-Ddb1,db2,db3\-o/backup/multi_$(date+%Y%m%d)# 按时间范围taosdump-hlocalhost-Dmydb\-S'2026-06-01 00:00:00'\-E'2026-06-30 23:59:59'\-o/backup/june_2026# 仅 schema 不含数据taosdump-hlocalhost-Dmydb\--schema-only\-o/backup/schema_$(date+%Y%m%d)# 并发线程taosdump-hlocalhost-Dmydb\-T8\# 8 线程-o/backup/mydb

3. taosdump 恢复

# 恢复(导入)taosdump-hnewhost-P6030-uroot-ptaosdata\-i/backup/mydb_20260604# 仅恢复 schemataosdump-hnewhost\-i/backup/mydb_20260604\--schema-only# 跨版本恢复# taosdump 通常向前兼容(旧数据可导入新版)# 不保证向后(新版数据导入旧版)

4. 物理备份(企业版)

企业版工具: taosdump - 全量物理备份 - 增量备份 - 时间点恢复 (PITR) # 全量备份 taosdump -d /var/lib/taos -o /backup/full_20260604 # 增量备份 taosdump -d /var/lib/taos -o /backup/incr_20260605 \ --incremental --base /backup/full_20260604 # 恢复 taosdump -i /backup/full_20260604 -o /var/lib/taos 性能: - 物理备份比逻辑快 10x+ - 增量大幅减少存储 - 支持热备份(不停服)

5. 备份策略

推荐备份策略: ① 每日全量(小规模): - cron 凌晨 taosdump - 保留 7~30 天 - 异地复制 ② 每周全量 + 每日增量(中规模,企业版): - 周日全量 - 每日增量 - PITR 能力 ③ 持续复制 + 定期全量(大规模): - 流计算/订阅实时复制 - 周期 taosdump 异地 - 多地多备 存储分级: - 本地 SSD:最近 7 天 - 本地 HDD:1 个月 - 对象存储 S3/OSS:长期归档

6. 恢复演练

#!/bin/bash# 定期恢复演练(每月)# 1. 准备测试集群dockerrun-d--nametd-test\-p6042:6030-p6042:6041\tdengine/tdengine:latest# 2. 恢复最新备份LATEST=$(ls-t/backup/mydb_*.tar.gz|head-1)tarxzf$LATEST-C/tmp/restore taosdump-hlocalhost-P6042-i/tmp/restore# 3. 数据验证EXPECTED=$(taos-hprod-host-s"SELECT COUNT(*) FROM mydb.meters"|tail-1)ACTUAL=$(taos-hlocalhost-P6042-s"SELECT COUNT(*) FROM mydb.meters"|tail-1)if["$EXPECTED"="$ACTUAL"];thenecho"✓ Restore drill passed"elseecho"✗ Counts differ: expected=$EXPECTED, actual=$ACTUAL"exit1fi# 4. 清理dockerrm-ftd-test

7. 跨集群迁移

场景:旧集群 → 新集群迁移 方式 1: taosdump 物理迁移 taosdump -h old-cluster -D mydb -o /migrate taosdump -h new-cluster -i /migrate 方式 2: 双写过渡 ① 应用同时写入新旧集群 ② taosdump 迁移历史 ③ 验证数据一致 ④ 切流量到新集群 ⑤ 停止旧集群 方式 3: TMQ 订阅同步 ① 新集群订阅旧集群 ② taosdump 历史 ③ 实时增量持续同步 ④ 切流量 跨版本迁移: - 旧版本 → 新版本:直接 taosdump 通常 OK - 新版本 → 旧版本:可能不兼容

8. 灾备方案

方案 A: 主备数据中心 ┌─────────────┐ ┌─────────────┐ │ DC1 主集群 │ ──►│ DC2 备集群 │ │ REPLICA=3 │ │ REPLICA=3 │ └─────────────┘ └─────────────┘ ▲ 同步方式: - taosX(推荐) - 流计算 + 写入 - 定期 taosdump 方案 B: 异地三副本(成本高) 跨 DC REPLICA=3 网络延迟影响写入 方案 C: 业务双写 应用层同时写两个集群 无引擎复制开销

代码示例

自动化备份脚本

#!/bin/bash# /usr/local/bin/td_backup.shset-eDATE=$(date+%Y%m%d_%H%M%S)BACKUP_DIR=/backup/tdengine/$DATELOG=/var/log/td_backup.logRETAIN_DAYS=30mkdir-p$BACKUP_DIRecho"[$(date)] Backup start">>$LOG# 备份所有用户数据库(排除系统)DATABASES=$(taos-s"SHOW DATABASES"|grep-v"^name"|\grep-v"log"|grep-v"performance_schema"|\grep-v"information_schema"|awk'{print $1}')fordbin$DATABASES;doecho" Backing up$db..."taosdump-D$db-o$BACKUP_DIR/$db-T4>>$LOG2>&1done# 压缩tarczf$BACKUP_DIR.tar.gz-C/backup/tdengine$DATErm-rf$BACKUP_DIR# 上传到对象存储aws s3cp$BACKUP_DIR.tar.gz s3://my-backup/tdengine/# 清理旧备份find/backup/tdengine-name"*.tar.gz"-mtime+$RETAIN_DAYS-deleteecho"[$(date)] Backup completed">>$LOG

crontab 定时

# /etc/crontab02* * * root /usr/local/bin/td_backup.sh

性能考量

备份性能

数据量taosdump 耗时(参考)
1 GB1~5 分钟
10 GB10~30 分钟
100 GB1~5 小时
1 TB10~30 小时

调优:

  • 增加线程-T 8(注意 CPU 占用)
  • 选低峰时间
  • 多机分库并行

恢复性能

类似备份。注意:

  • 大表恢复内存使用大
  • 索引/SMA 重建耗 CPU
  • 推荐先恢复 schema 再分批数据

FAQ

Q1: 必须停服才能备份吗?

不需要。taosdump 在线备份,但备份时数据可能仍在写入。可以接受最后几秒的不一致。

Q2: taosdump 备份大小怎么估算?

约为原始数据的 10%~30%(视压缩率)。SQL 文本形式比物理大但可压缩。

Q3: 备份能跨集群恢复吗?

可以。taosdump 输出是 SQL,可恢复到任何 TDengine 集群(注意版本兼容)。

Q4: 增量备份开源版有吗?

开源 taosdump 仅全量。增量需企业版或通过时间范围切分。

Q5: 灾备 RTO/RPO 怎么定?

  • 业务可容忍中断:RTO 4 小时,RPO 1 小时
  • 关键业务:RTO 30 分钟,RPO 5 分钟
  • 金融级:RTO 5 分钟,RPO 接近 0(需企业方案)

参考

系统构架篇

  • 01-《TDengine 整体架构全景》
  • 02-《集群拓扑深度解析》
  • 03-《MNode 内部机制深度解析》
  • 04-《RPC 通信层深度解析》
  • 05-《VNode 生命周期》
  • 06-《RAFT 共识协议》
  • 07-《端到端的消息流》

数据模型

  • 01-《数据库创建与参数详解》
  • 02-《超级表/子表/普通表》
  • 03-《支持数据类型深度解析》
  • 04-《TDengine Tag 设计哲学与 Schema 变更机制》
  • 05-《TDengine 虚拟表实现原理》

存储引擎

  • 01-《TDengine 存储引擎概览》
  • 02-《TDengine MemTable 深度解析》
  • 03-《TDengine WAL 预写日志机制》
  • 04-《TDengine 数据文件格式》
  • 05-《TDengine Commit 与 Flush 机制 》
  • 06-《TDengine Compaction 合并策略 》
  • 07-《TDengine 数据保留与 TTL》
  • 08-《TDengine 压缩编码机制》
  • 09-《TDengine Cache 与 Last 查询加速》
  • 10-《TDengine 逻辑计划生成》

查询引擎

  • 01-《TDengine 查询引擎概览》
  • 02-《TDengine SQL 解析与词法分析》
  • 03-《TDengine 语义分析与 AST 重写》
  • 04-《TDengine 逻辑计划生成》
  • 05-《TDengine 物理计划生成》
  • 06-《TDengine 扫描算子》
  • 07-《TDengine 聚合算子》
  • 08-《TDengine 连接算子》
  • 09-《TDengine 排序、填充与投影》
  • 10-《TDengine 分布式查询执行》
  • 11-《TDengine EXPLAIN 与查询优化》

数据写入

  • 01-《TDengine SQL INSERT》
  • 02-《TDengine 无模式写入》
  • 03-《TDengine STMT 写入》
  • 04-《TDengine 写入内部流程》
  • 05-《TDengine 数据更新删除》

数据订阅

  • 01-《TDengine 数据订阅》
  • 02-《TDengine 订阅 vs Kafka》
  • 03-《TDengine TMQ 消费流程》
  • 04-《TDengine 内部机制》
  • 05-《TDengine TMQ 最佳实践》

预聚合

  • 01-《TDengine RSMA》
  • 02-《TDengine TSMA — 时间维度的物化聚合视图》
  • 03-《TDengine SMA 内部实现》

索引

  • 01-《TDengine Tag 索引》
  • 02-《TDengine SMA 索引》

SQL 语句

  • 01-《TDengine DDL》
  • 02-《TDengine DML SELECT》
  • 03-《TDengine DML 函数完整参考》
  • 04-《TDengine JOIN 完整语法》
  • 05-《TDengine 窗口完整语法》
  • 06-《TDengine 操作符与表达式》
  • 07-《TDengine 系统表》
  • 08-《TDengine SQL 与标准 SQL 差异》

客户端与连接器

  • 01-《TDengine 的连接方式》
  • 02-《TDengine C/C++ 连接器》
  • 03-《TDengine java 连接器》
  • 04-《TDengine Python 连接器》
  • 05-《TDengine Go 与 Rust 连接器》
  • 06-《TDengine Node.js 与 C# 连接器》

运维

  • 01-《TDengine 部署指南》
  • 02-《TDengine 配置详解》
  • 03-《TDengine 监控系统》

关于 TDengine

TDengine 专为物联网IoT平台、工业大数据平台设计。其中,TDengine TSDB 是一款高性能、分布式的时序数据库(Time Series Database),同时它还带有内建的缓存、流式计算、数据订阅等系统功能;TDengine IDMP 是一款AI原生工业数据管理平台,它通过树状层次结构建立数据目录,对数据进行标准化、情景化,并通过 AI 提供实时分析、可视化、事件管理与报警等功能。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询