前置准备
需提前在源环境A、目标环境B和中转环境C创建对应备份目录。在源环境A的FastGPT容器内执行mkdir -p /data/backup,宿主机对应创建/fastgpt/data/backup目录用于数据同步;在目标环境B的宿主机创建/fastgpt/mongobackup目录,注意不要放在fastgpt/data目录下。可通过show dbs命令确认源环境中存在fastgpt数据库。
数据导出与中转
在源环境A的服务器本地执行导出命令,导出fastgpt数据库到临时目录:
docker exec -it mongo bash -c "mongodump --db fastgpt -u 'username' -p 'password' --authenticationDatabase admin --out /data/backup"导出完成后,进入源环境宿主机的/usr/fastgpt/mongo/data目录,执行压缩命令生成带日期的备份包:
tar -czvf ../fastgpt-mongo-backup-$(date +%Y-%m-%d).tar.gz ./若需中转留存,可通过scp命令传输压缩包,示例命令如下:
scp -i /Users/path/your.pem root@old-server-ip:/usr/fastgpt/mongo/fastgptbackup-2024-05-03.tar.gz /local/path/Downloads传输完成后,可在中转环境解压缩并核对文件数量,确保数据完整。
数据导入与恢复
在目标环境B的宿主机找到传输的压缩包,执行解压缩命令:
tar -xvzf fastgptbackup-2024-05-03.tar.gz -C /fastgpt/mongobackup/data由于备份目录未自动同步到MongoDB容器,需手动将解压后的文件复制到容器内临时目录,操作前需确保容器的data目录已清理干净,否则导入会报错:
docker cp /fastgpt/mongobackup/data mongo:/tmp/backup来源:FastGPT 官方文档