RAGFlow如何做数据备份


目前我接触过的所有RAG系统里,RAGFlow是我用过效果最好的,当然效果好同样也意味着它的组件很复杂,不仅有用到MySQL数据库还用到了Elastcsearch甚至还有Minio分布式文件系统。

那么数据备份自然也就更加复杂。今天这篇文章主要聊聊如何备份RAGFlow里面的数据。我这里假设环境为单机版,基于docker compose部署。

1、各组件介绍

查看组件:

docker ps组件列表:
组件
在 RAGFlow 中的角色
主要存储内容
数据是否可再生
infiniflow/ragflow
应用层 / 控制平面 / API
❌ 几乎不存核心数据
✅ 可随时重建
MySQL
元数据数据库
知识库定义、文档元信息、chunk 映射、模型配置、用户数据、任务状态
❌ 不可自动重建
MinIO
对象存储(知识本体)
原始文档、解析文件、chunk 文本、embedding 中间数据
❌❌ 不可重建
Elasticsearch
向量库 + 检索引擎
向量索引、倒排索引、chunk 文本副本
✅ 可重建

2、运维视角关键结论

维度
结论
最重要的数据
MinIO
系统大脑
MySQL
性能核心
Elasticsearch
可随时重建
RAGFlow 容器
恢复优先级
MinIO → MySQL → Elasticsearch → RAGFlow
ES 是否必须备份
非必须,但强烈推荐(节省重建时间)

3、备份mysql数据

查看mysql容器名字:

docker ps |grep mysql|awk '{print $NF}'创建备份目录
mkdir -p /opt/ragflow_backup/mysql备份脚本:
docker exec docker-mysql-1   mysqldump   -uroot   -pinfini_rag_flow   --single-transaction   --databases rag_flow   > /opt/ragflow_backup/mysql/ragflow_$(date +%F).sql说明:mysql的用户名和密码在docker/.env里面找

4、备份Minio数据

安装mc工具(宿主机上操作)

wget https://dl.min.io/client/mc/release/linux-amd64/mcchmod +x mcmv mc /usr/local/bin/查看MINIO的用户名和密码
grep -E 'MINIO_USER|MINIO_PASS' docker/.env

设置alias

mc alias set ragflow http://127.0.0.1:9000 rag_flow infini_rag_flow

创建备份目录

mkdir -p /opt/ragflow_backup/minio

查看bucket

mc alias ls  ##查看aliasmc ls ragflow  ##指定alias

备份bucket数据(支持增量备份)

mc mirror --overwrite ragflow/  /opt/ragflow_backup/minio/

5、备份ElasticSearch数据

创建备份目录

mkdir -p /opt/ragflow_backup/eschmod 777  /opt/ragflow_backup/es

docker容器中挂载备份目录,修改安全配置,增加repo目录

vi docker/docker-compose-base.yml 将volumes:      - esdata01:/usr/share/elasticsearch/data改为:volumes:      - esdata01:/usr/share/elasticsearch/data      - /opt/ragflow_backup/es:/es_backup将- xpack.security.enabled=true改为- xpack.security.enabled=false并在其下面增加:- path.repo=/es_backup

重新启动es服务

docker compose up  -d  es01

在es中注册repo

curl -u elastic:infini_rag_flow  -X PUT http://localhost:1200/_snapshot/ragflow_backup    -H 'Content-Type: application/json'   -d '{    "type": "fs",    "settings": {      "location": "/es_backup"    }  }'

说明:-u后面是es的用户名和密码,其中密码在docker/.env里查看“ELASTIC_PASSWORD”

生成快照,这样就备份了es的数据了

curl -u elastic:infini_rag_flow    -X PUT "http://localhost:1200/_snapshot/ragflow_backup/snapshot_2025_12_16"   -H "Content-Type: application/json" -d '{    "indices": "*",    "ignore_unavailable": true,    "include_global_state": false  }'

查看仓库列表

curl -u elastic:infini_rag_flow  http://localhost:1200/_snapshot/_all?pretty

查看指定仓库里的快照列表

curl -u elastic:infini_rag_flow   http://localhost:1200/_snapshot/ragflow_backup/_all?pretty

查看指定快照情况

curl -u elastic:infini_rag_flow  http://localhost:1200/_snapshot/ragflow_backup/snapshot_2025_12_16?pretty

Agent智能体langchain新闻资讯

进阶指南:BrowserUse + AgentRun Sandbox 最佳实践

2026-5-5 18:51:36

Agent智能体Fastgpt新闻资讯

FastGPT一站式解决方案[1-部署篇]:轻松实现RAG-智能问答系统

2026-5-5 19:25:59

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
搜索