news 2026/9/13 22:06:59

如何用 dectl backup 和 restore 备份并恢复 DataEase 数据?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用 dectl backup 和 restore 备份并恢复 DataEase 数据?

如何用 dectl backup 和 restore 备份并恢复 DataEase 数据?

【免费下载链接】dataease🔥 人人可用的开源 BI 工具,数据可视化神器。An open-source BI tool alternative to Tableau.项目地址: https://gitcode.com/GitHub_Trending/da/dataease

DataEase 以 Docker Compose 方式安装在 Linux 服务器上,运行目录默认是/opt/dataease2.0DE_BASE默认为/opt,见 install.conf)。当需要为升级、卸载或迁移做数据备份时,安装过程安装的dectl控制脚本提供了backuprestore两个子命令:前者把整个运行目录打成 tar.gz 包,后者把备份包解压回运行目录并重启服务。本文基于 installer/dectl 的实际行为,说明这两条命令的执行方式、输出判断和边界。

备份前先确认这些条件

  • dectl 支持 backup 命令:卸载脚本 uninstall.sh 中明确提示“如需备份 DataEase 数据,请执行 dectl backup 进行备份。如您的 dectl 命令不支持 backup 命令,请升级版本。”执行前可用dectl --help确认命令列表中包含backuprestore,不包含则说明当前 dectl 版本过旧。
  • 不要在安装目录内执行备份:backup 逻辑首先检查工作目录,如果当前目录是/opt/dataease2.0或其子目录,会直接报错“当前目录为 DataEase 安装目录,请切换到其他目录后再执行备份操作!”并退出。原因是备份文件生成在当前工作目录,若在安装目录内执行会与打包过程相互干扰。
  • 备份可能停止服务:脚本给出的建议是“如需备份 DataEase 数据,建议您先停止 DataEase 服务,以保证备份数据的完整性”。停启服务走service dataease stop/service dataease start,对应 systemd 服务 dataease.service(其ExecStart/ExecStopdectl start/dectl stop,以 root 运行),因此 backup/restore 需要以 root 执行。

执行备份:dectl backup

交互模式

dectl backup

执行后会先输出建议文案,然后询问:

如需备份 DataEase 数据,建议您先停止 DataEase 服务,以保证备份数据的完整性。 即将备份 DataEase 数据,是否需要停止 DataEase 服务? [Y/n]
  • 回答y:先执行service dataease stop,打包完成后执行service dataease start恢复服务;
  • 回答n:不停服直接备份,输出“不停服进行备份”;
  • 其他输入:输出“无效输入...”并退出。

直接停服备份

dectl backup stop

stop是脚本唯一识别的参数,传入后跳过询问、先停服务再备份。需要注意:传入其他任意参数既不会停服,也不会触发交互询问,脚本会直接按“不停服”方式打包。

备份包内容

backup 的核心命令是:

tar --exclude=logs/dataease -zcf $backup_file_name -C $DE_RUNNING_BASE .

即把运行目录/opt/dataease2.0下的全部文件打包,仅排除logs/dataease(历史日志)。文件名按执行时间自动生成,格式为dataease-backup-YYYYMMDD_HHMMSS.tar.gz,生成在执行命令时所在的工作目录中。

结果判断

  • 成功输出:备份成功,备份文件 : <当前目录绝对路径>/dataease-backup-YYYYMMDD_HHMMSS.tar.gz,其中的时间和路径以实际执行结果为准,请把该绝对路径记录下来,restore 时要用;
  • 失败输出:备份失败,脚本退出。

恢复备份:dectl restore

用法为:

dectl restore <备份文件路径>

例如(/root下存放了前面生成的备份文件):

dectl restore /root/dataease-backup-20260912_030000.tar.gz

<备份文件路径>填相对或绝对路径,脚本会做两处前置检查:参数为空时报“未指定需要恢复的备份文件!”,路径不是已存在的文件时报“未找到备份文件 <路径>!”,两种情况都不会执行恢复。

恢复流程包含明确的数据删除动作,执行前必须先确认:

  1. 已了解当前系统状态会被备份包覆盖;
  2. 目标文件是你要恢复的那份备份。

通过文件检查后,脚本按顺序执行:

service dataease stop # 停止 DataEase 服务 mkdir -p $DE_RUNNING_BASE # 安装目录不存在时先创建 rm -rf $DE_RUNNING_BASE/data/mysql/* # 删除当前 MySQL 数据目录内容 tar -zxf $target --directory=$DE_RUNNING_BASE # 解压备份包回运行目录 service dataease start # 启动服务

也就是说/opt/dataease2.0/data/mysql/*会先被清空,再用备份包内容覆盖回运行目录。由于备份包含整个安装目录,这个流程同样适用于把备份恢复到只装了 dectl 和 Docker 环境的新服务器:目录不存在时脚本会先创建,解压后运行目录即恢复为备份时的状态。恢复完成后服务会自动启动,无需再手动执行dectl start

验证备份与恢复结果

  • 备份验证:以脚本输出“备份成功,备份文件 : …”为准,并可到该路径确认文件存在;执行前可用dectl status查看运行目录与磁盘占用,对备份体积有预估依据(该命令会输出 Docker 目录、日志目录和运行目录的du/df结果)。
  • 恢复后服务状态dectl start内置健康检查(_healthcheck),最多等待 90 秒轮询容器状态,可能输出三种结果:
    • DataEase 服务状态 : 正常运行—— 容器 running 且健康检查 healthy;
    • DataEase 服务状态 : 无法访问—— 容器状态异常,脚本直接退出;
    • 【警告】服务在等待时间内未完全启动!请稍后使用 dectl status 检查服务运行状况。—— 90 秒内未达到 healthy,需要稍后自行检查。
  • 事后检查:执行dectl status查看各容器运行状态和磁盘占用;社区版部署的访问地址为http://服务器IP:8100(社区模式使用DE_PORT,install.conf 中默认 8100),浏览器访问该地址确认数据已恢复。

限制与注意

  • 备份包体积取决于安装目录大小,生成位置是执行命令的当前目录,执行前确认该目录所在磁盘有足够空间。
  • 文档未说明配置外部数据库(DE_EXTERNAL_MYSQL=true)时备份包对数据库数据的覆盖情况,采用该部署方式时不要默认备份包等价于全量数据备份。
  • dectl restore一次只接受一个 tar.gz 文件路径;文件不存在或参数为空时命令直接失败退出。
  • 备份不停服时(回答n或传入非stop参数),文档只给出“建议您先停止 DataEase 服务,以保证备份数据的完整性”的提示,未给出进一步的完整性判定方式。

【免费下载链接】dataease🔥 人人可用的开源 BI 工具,数据可视化神器。An open-source BI tool alternative to Tableau.项目地址: https://gitcode.com/GitHub_Trending/da/dataease

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 22:06:32

MySQL 统计字符串出现次数的几种实用方法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 22:05:06

夸克网盘资源平台选择与使用指南:从找资源到高效整理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 22:00:56

工业紧凑型线缆组件设计与选型实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 21:59:19

WeKnora本地部署:单机能不能撑起离线知识库的文档问答?

WeKnora本地部署&#xff1a;单机能不能撑起离线知识库的文档问答&#xff1f; 【免费下载链接】WeKnora Open-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki. 项目地址: https://g…

作者头像 李华
网站建设 2026/9/13 21:58:27

国自然基金申报AI写作:NLP压缩与创新表达技术解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 21:58:06

前端工程师手搓Agent记忆模块:Redis+BM25实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华