mongodump备份数据
使用mongodump备份数据库,以下是备份脚本。可以用 which -a mongodump 查看PATH的位置。
把脚本保存为backup.sh, {{ mongodump_path }} 换成你的mongodump的PATH位置,修改dbHost、dbPort、dbName、dbUsername、dbPassword,增加可执行权限: chmod a+x backup.sh ,然后执行脚本: ./backup.sh
1 #!/bin/sh 2 #备份Mongo 数据库: 3 echo "1.初始化..." 4 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:{{ mongodump_path }} 5 export PATH 6 7 #数据库 8 dbHost="127.0.0.1" 9 dbPort=27017 10 dbName="" 11 dbUsername="" 12 dbPassword="" 13 14 #备份目录 15 bakDir="`pwd`/db_backup" 16 timeStr="`date +%Y%m%d`" 17 fileName=$dbName"_${timeStr}.tar" 18 realDbBakDir=$bakDir/$timeStr 19 20 if [ ! -x "$bakDir" ];then 21 mkdir $bakDir 22 fi 23 cd $bakdir 24 echo "备份的数据库为:" $dbName 25 echo "备份目录为:" $bakDir 26 echo $dbName "数据库备份文件目录为:" $realDbBakDir 27 echo "2.备份开始:" 28 mongodump2 -h $dbHost:$dbPort -u $dbUsername -p $dbPassword --authenticationDatabase $dbName -d $dbName -o $realDbBakDir 29 echo "3.备份结束,开始打包" 30 for((i=1;i<10;i++)) 31 do 32 echo "当前等待时间" $i "秒" 33 sleep 1 34 done 35 echo "备份文件:" $realDbBakDir/$dbName/$fileName 36 tar -czvf $realDbBakDir/$fileName $realDbBakDir/$dbName/ 37 echo "4.打包完成,开始scp上传" 38 #scp $realDbBakDir/$fileName root@xxxx 39 echo "5.上传成功" 40 echo "备份成功日志`date`" >> $realDbBakDir/bak.log
如果不打包,可以把29~39行注释掉。
mongodump参数解析:(可以用mongodump --help查看)
- -h:mongodb连接的host和port;用 --host <mongodb_host> --port <port> 也是相同的
- -u:用户名(--username)
- -p:密码(--password)
- --authenticationDatabase:认证数据库
- -d:指定数据库名称
- -c:指定集合名称
- -o:指明要导出的文件名
- -q:指明导出数据时的查询条件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了