目前我接触过的所有RAG系统里,RAGFlow是我用过效果最好的,当然效果好同样也意味着它的组件很复杂,不仅有用到MySQL数据库还用到了Elastcsearch甚至还有Minio分布式文件系统。
那么数据备份自然也就更加复杂。今天这篇文章主要聊聊如何备份RAGFlow里面的数据。我这里假设环境为单机版,基于docker compose部署。
1、各组件介绍
查看组件:
docker ps组件列表:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2、运维视角关键结论
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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


