当前位置: 首页 > news >正文

TDengine 运维全攻略:五种备份与恢复方法深度解析(2025 最新版)

在这里插入图片描述

备份与还原是数据库运维的核心环节,TDengine 提供了五种主流数据备份方法,覆盖不同场景需求。本文将详细解析各方法的特性与操作要点。

1. taosdump

介绍

taosdump 是 TDengine 社区版首选的数据备份工具(企业版同样支持),其核心特点是操作简便、支持多线程处理,且备份文件采用 Apache Avro 格式(大数据领域通用数据交换格式),便于向其他系统共享数据。工具支持跨平台连接远程服务器执行备份 / 恢复操作,兼容 Native、Restful、WebSocket 等多种连接协议。

优缺点

优点:操作简单且社区版支持,导出格式为开放式 avro 格式。

缺点:功能选项相对基础,未覆盖复杂场景需求。

使用方法

工具获取

随企业版 / 社区版安装包内置,无需额外下载。

备份操作

  1. 全库备份(包括系统库)

命令示例:taosdump -A -o /data/backup-A 表示全库,-o 指定备份目录)。

  1. 指定备份库或表

支持单库多表备份,不支持多库。

命令示例:taosdump -D db01 -o /data/backup/db01-D 指定数据库名)。

  1. 指定时间段备份

支持按时间区间筛选数据,未指定则备份全量。

命令示例:taosdump -S '2024-01-01T00:00:00+0800' -E '2024-01-02T00:00:00+0800' -D db01 -o /data/backup/time_range-S-E 分别指定起始和结束时间)。

  1. 指定线程备份

支持自定义线程加速备份,默认 8 线程。

命令示例:taosdump -T 32 -A -o /data/backup(-T 表示备份线程数)。

  1. 只备份元数据

命令示例:taosdump -s -D db01 -o /data/backup/meta-s 表示仅元数据)。

恢复操作

  1. 全量恢复 命令示例:taosdump -i /data/backup-i 指定备份目录,恢复所有数据)。
  2. 恢复时修改库名 命令示例:taosdump -i /data/backup -W "db01=new_db01"(将原库 db01 恢复为 new_db01)。
  3. 指定线程恢复 命令示例:taosdump -i /data/backup -T 16(使用 16 线程加速恢复)。
  4. 指定数据库恢复 操作步骤:全库备份后,删除备份目录中不需要恢复的数据库文件夹(如 db02),保留 db01 文件夹,再执行 taosdump -i /data/backup,仅恢复 db01
  5. 元数据恢复
    若目标库表已存在,元数据不会覆盖,仅保留现有结构。

表结构有变动的备份/恢复

  • TDengine 3.3.6.0 之前版本:若目标库表结构有变动(如增删列),直接恢复会失败。需通过 “旧备份导入新库→新库导出新备份→新备份导入目标库” 迂回恢复。
  • TDengine 3.3.6.0 及之后版本:支持表结构增删列(列名不变仅类型修改仍不支持),恢复时新增列以 null 填充。

2. taosx

功能描述

taosX 是 TDengine 企业版专用的数据管道工具,定位为 “零代码数据集成平台”,核心功能覆盖数据接入、同步、备份、恢复及迁移。支持跨集群 / 实例的异步数据复制,可作为桥梁对接 TDengine 与第三方数据源(如关系型数据库、消息队列等)。

优缺点

优点:功能全面(支持增量备份、断点续备等)、速度快、导出格式多样(CSV/Parquet 列存)。

缺点:社区版不支持、使用复杂度高。

使用方法

工具获取

随企业版安装包内置,部分生态对接组件需单独安装。

核心功能

taosX 功能丰富,覆盖数据全生命周期管理,具体包括:

  1. ​数据备份与恢复:​支持增量备份 / 恢复(3.3.x + 版本支持图形化操作)、断点续备,备份文件格式支持 CSV 和 Parquet(列存)。

  2. 数据迁移与同步 :

    • 支持基于订阅(TMQ)的实时数据同步(3.0 + 版本)和基于 SELECT 的历史数据迁移(2.4+/2.6+/3.0 + 版本)。
    • 支持历史数据(history 模式)、实时数据(realtime 模式)、混合(both 模式)迁移。
    • 任务支持进度保存,异常恢复后可续传。
  3. ​跨集群复制 :​支持数据库或(超级)表的全量 / 增量复制,可选择列级复制、模式(schema)复制,表名支持正则匹配。

  4. 外部数据源接入 :

    • 关系型数据库:MySQL、Oracle、PostgreSQL、Microsoft SQL Server。
    • 时序数据库:OpenTSDB、InfluxDB。
    • 工业实时数据库:PI System、Aveva Historian。
    • 消息队列:Kafka。
    • 其他常见协议:OPC-UA/DA、MQTT。
  5. ​数据转换(Transform):​支持对输入流进行过滤、映射、聚合等处理,处理后数据流入目标端。

  6. ​双活部署管理 :​通过 taosx replica 系列命令管理主备集群同步任务,支持任务启动、停止、重启及进度查看 。

  7. ​可视化操作 :​可通过 taos-explorer(Web 界面)配置数据迁移任务、监控任务状态(如数据写入量、延时等)。

  8. 备份/恢复步骤:

一、备份步骤
  1. 配置备份任务参数(命令行方式)
  • –from 参数 (源端配置):
    • auto.offset.reset=latest&experimental.snapshot.enable=false:不备份历史数据,从当前 WAL 最新位置开始备份。
    • upcoming:指定下次执行备份任务的时间(如now表示立即开始)。
    • interval:两次备份任务的间隔(如interval=60s表示每 60 秒执行一次)。
    • self.repeat=true:开启持续重复调度。
  • –to 参数 (目标端配置):
    • move.to:备份文件写入完成后,移动到指定目录(如/data/send)。
  1. 启动备份任务 使用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/ 目录。

  1. 图形化操作(3.3.x + 版本) 通过taos-explorer(Web 界面,访问地址如http://<集群IP>:6060)配置备份任务:
    • 进入 “系统管理 - 备份” 页面,点击 “新增备份”。
    • 配置参数:备份周期(每天 / 每 7 天 / 每 30 天)、目标数据库(需wal_retention_period>0)、备份目录(如/root/data_backup)。
    • 点击 “确定” 后任务启动,支持监控任务状态(数据写入量、延时等)。
二、恢复步骤
  1. 配置恢复任务参数(命令行方式)
    post_action=del :恢复完成后自动删除备份文件(避免重复恢复)。
  2. 启动恢复任务 在目标集群使用nohup启动恢复任务,示例命令:
nohup taosx restore --from "/data/receive" --post_action=del > restore.log 2>&1 &

此命令会监听接收目录(如/data/receive),解析并写入增量备份文件到目标 TDengine 集群。

  1. 图形化操作(3.3.x + 版本) 在taos-explorer的 “系统管理 - 备份” 页面中:

    • 进入 “备份文件” 列表,选择需恢复的备份点。
    • 点击 “数据恢复” 按钮,选择目标数据库后完成恢复。

3. taos-CLI 工具

介绍

taos-CLI 工具是 TDengine 自带的数据库管理工具(社区版及企业版均支持),其备份及恢复功能主要通过 CSV 文件实现,工具适合小数据量临时备份场景,操作简单但性能有限,需结合实际需求选择使用。

优缺点:

优点:操作简单,可灵活备份任意查询结果(如特定子表、部分列或自定义查询结果)。

缺点:仅支持单线程操作,速度较慢,适用于小数据量的临时备份。

使用方法

工具获取

taos-CLI 工具内置于 TDengine 社区版及企业版中,无需额外安装。

  1. 备份操作

备份时主要通过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
  • 部分列备份 :仅导出指定列的数据(适用于表结构变化大的迁移场景)。 示例(导出idvalue列):
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_tableidvalue列):
INSERT INTO target_table (id, value) FILE /path/to/partial_columns_backup.csv;

4. 库文件备份

介绍

库文件备份是指直接备份 TDengine 中 dataDir 指向的数据库文件目录,属于整体备份方式,主要用于灾备场景(如 TDengine 无法启动时),类似于制作数据库镜像。

优缺点

优点:不依赖于 TDengine 服务

缺点:现有数据无法保留

使用方法

工具获取

无工具,使用系统 copy 命令。

备份操作

备份操作建议结合自动化脚本定期执行,以提升可靠性。

  1. 备份范围 :

    • 不需要备份的文件夹 :WAL(预写日志)文件夹(通常较大,无需备份)。
    • 多副本场景 :仅需备份主副本(leader)的数据,无需备份所有副本。
    • 集群场景 :多节点应在相同时间点备份,以减少节点间数据差异。
  2. 备份时机 :

    • 理想情况 :停止 TDengine 服务后备份,确保数据一致性。
    • 生产环境(热备份) :若无法停止服务,可执行 flush database <dbname> 命令强制内存数据落盘,再进行备份。

恢复操作

建议手工操年,明确自己在做什么,以保证数据安全,恢复前需停止服务。

  1. 恢复前准备 :必须停止 TDengine 服务。

  2. 恢复方式 :

    • 完整还原 :需基于完整的备份目录还原。可修改 dataDir 参数指向备份目录;若使用原目录,需清空原目录后替换(不可新旧混合)。
    • 多副本还原 :
      • 若为全量备份,与完整还原操作相同。
      • 若仅备份了 leader 数据,需将 leader 备份文件复制到其他副本节点。
    • 集群还原 :所有节点必须使用同一备份数据还原,仅还原部分节点可能导致启动失败或不可预期问题。

5. 双活

介绍

一种主备构架,需两套 TDengine 系统,每套系统可以为集群也可以为单机,但必须保证同构。最少配置为两台服务器。主备之间实时同步,当主节点宕机,备节点自动切为继续提供服务。

优缺点

优点:双系统实现最高级别高可用。

缺点:占用资源多,只保留最新数据,无历史数据。

使用

工具获取

企业版安装包获取,依赖组件 taosX,taosAdapter, taosd

工具使用

  1. 需安装两套 TDengine 系统。

  2. 两套系统必须同构(版本、配置参数、用户名密码等完全一致),且版本需 ≥ 3.3.0.0。

  3. 客户端驱动实现自动 Failover,主节点宕机,自动切换为备节点。

  4. taosX 工具数据库订阅功能实现主备节点数据同步。

  5. 运维命令
    通过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],强制删除任务(需先停止)
  6. 推荐使用步骤:
    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 连接器配置备节点信息,启用自动重连

  7. 异常处理
    若备份节点停机时间超过 WAL 保留时长,有可能会导致数据丢失,请务必保证在 WAL 保留时间内恢复备份节点。

总结

TDengine 提供的五种备份 / 恢复方法各有优劣与适用场景:

  • taosdump :社区版首选,适合小到中数据量的开放格式备份;
  • taosX :企业版推荐,功能全面,支持复杂迁移与增量操作;
  • taos-CLI :轻量临时备份,适合小数据量灵活导出;
  • 库文件备份 :灾备场景必选,离线操作但覆盖全量数据;
  • 双活 :高可用首选,保障业务连续性但资源消耗大。

企业需结合数据规模、可用资源、场景需求(如灾备 / 迁移 / 临时备份),选择单一或组合方案,确保数据安全与业务稳定。

关于 TDengine

TDengine 是一款专为物联网、工业互联网等场景设计并优化的大数据平台,其核心模块是高性能、集群开源、云原生、极简的时序数据库。它能安全高效地将大量设备每天产生的高达 TB 甚至 PB 级的数据进行汇聚、存储、分析和分发,并提供 AI 智能体对数据进行预测与异常检测,提供实时的商业洞察。

http://www.lqws.cn/news/569071.html

相关文章:

  • EPLAN Electric P8 2.9 零基础保姆级安装教程
  • 银行账户管理系统01
  • [Python] -基础篇3-掌握Python中的条件语句与循环
  • win上对调ctrl和alt键
  • java:如何用 JDBC 连接 TDSQL 数据库
  • HarmonyOS实战:自定义表情键盘
  • 云计算在布莱克-斯科尔斯模型中的应用:解析解、蒙特卡洛模拟与可视化-AI云计算数值分析和代码验证
  • FLOPS、FLOP/s、TOPS概念
  • Excel之证件照换底色3
  • Docker部署
  • 【Typst】纵向时间轴
  • 函数参数及数据结构说明
  • 一阶线性双曲型偏微分方程组的特征值与通解分析
  • ABP VNext + Twilio:全渠道通知服务(SMS/Email/WhatsApp)
  • RagFlow 更适合企业级深度应用,FastGPT 更适合快速开发和原型验证
  • 用户行为序列建模(篇十)-【加州大学圣地亚哥分校】SASRec
  • 对象的finalization机制Test
  • aws(学习笔记第四十八课) appsync-graphql-dynamodb
  • Java猜拳小游戏
  • 基于 SpringBoot 实现一个 JAVA 代理 HTTP / WS
  • node js入门,包含express,npm管理
  • SRS流媒体服务器之本地测试rtc推流bug
  • 2.安装Docker
  • 嵌入式硬件中电容的基本原理与详解
  • python动漫周边电商网站系统
  • ORB EPNP
  • web3区块链-ETH以太坊
  • es6特性-第二部分
  • 【JavaScript】setTimeout和setInterval中的陷阱
  • 数据挖掘、机器学习与人工智能:概念辨析与应用边界