如何进行mongdb备份恢复
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,如何进行mongdb备份恢复,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、物理备份(拷贝文件)#!/bin/shDATE=`da
千家信息网最后更新 2025年01月20日如何进行mongdb备份恢复
如何进行mongdb备份恢复,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
一、物理备份(拷贝文件)
#!/bin/shDATE=`date +%Y%m%d`DEL_DATE=$(date -d '-30 days' "+%Y%m%d")HOST=10.10.17.27PORT=27000USER=adminPASSWORD=123456DATA_DIR="/data/mongodb/navy_db/db"BACKUP_PATH="/data/mongodbbackup/$DATE"date +%Y%m%d%H%M >>/data/log/mongodb_bak.log#第一步锁表lock(){echo "db.fsyncLock()"| mongo --host $HOST --port $PORT -u $USER -p $PASSWORD admin}execute(){ lock if [ $? -eq 0 ] then echo "mongodb lock successfully!" >>/data/log/mongodb_bak.log else echo "mongodb lock fail!" >>/data/log/mongodb_bak.log fi}execute#第二步备份back(){rsync -av $DATA_DIR $BACKUP_PATH/}execute(){ back if [ $? -eq 0 ] then echo "mongodb back successfully!" >>/data/log/mongodb_bak.log else echo "mongodb back fail!" >>/data/log/mongodb_bak.log fi}execute#第三部解锁unlock(){echo "db.fsyncUnlock()"| mongo --host $HOST --port $PORT -u $USER -p $PASSWORD admin}execute(){ unlock if [ $? -eq 0 ] then echo "mongodb unlock successfully!" >>/data/log/mongodb_bak.log else echo "mongodb unlock fail!" >>/data/log/mongodb_bak.log fi}execute#删除历史数据rm -rf "/data/mongodbbackup/${DEL_DATE}/"
PS:
物理备份只能全库恢复,不能恢复单个表
恢复步骤:
1、停止需要恢复的实例2、备份清空/data/mongodb/navy_db/db目录3、拷贝/data/mongodbbackup/$DATE下面的所有文件和文件夹到/data/mongodb/navy_db/db目录4、chown mongod:mongod /data/mongodb/navy_db/db/ -R5、启动实例
二、mongodump备份
#!/bin/shDATE=`date +%Y%m%d`DEL_DATE=$(date -d '-30 days' "+%Y%m%d")HOST=10.10.17.27:27000USER=adminPASSWORD=123456BACKUP_PATH="/backup/mongodbbackup/$DATE"date +%Y%m%d%H%M >>/data/log/mongodb_bak.logstart(){mongodump -h $HOST -u $USER -p $PASSWORD -o $BACKUP_PATH}execute(){ start if [ $? -eq 0 ] then echo "mongodb back successfully!" >>/data/log/mongodb_bak.log else echo "mongodb back fail!" >>/data/log/mongodb_bak.log fi}executerm -rf "/backup/mongodbbackup/${DEL_DATE}/"
恢复:
1、全库恢复
mongorestore --host 10.10.17.27 --port 27000 /backup/mongodbbackup/20150818/
2、单集合(表的概念)恢复
mongorestore --host 10.10.17.27 --port 27001 --db navy_db_new --collection navy_db_table_new /backup/mongodbbackup/20150818/navy_db/navy_db_table.bson
三、复制集备份
#!/bin/shDATE=`date +%Y%m%d`DEL_DATE=$(date -d '-30 days' "+%Y%m%d")HOST="dbset/10.10.17.27:27000,10.10.17.26:27000"USER=adminPASSWORD=123456BACKUP_PATH="/data/mongodbbackup/$DATE"date +%Y%m%d%H%M >>/data/log/mongodb_bak.logstart(){mongodump -h $HOST -u $USER -p $PASSWORD --oplog -o $BACKUP_PATH}execute(){ start if [ $? -eq 0 ] then echo "mongodb back successfully!" >>/data/log/mongodb_bak.log else echo "mongodb back fail!" >>/data/log/mongodb_bak.log fi}executerm -rf "/backup/mongodbbackup/${DEL_DATE}/"
PS:
备份复制集和备份单个mongodb实例用mongodump备份的方法差不多,只是host的写法不一样,需要指定复制集名称,还有就是加上 --oplog参数,来跟踪备份时主库上发生的所有写操作,获取一个pointin-time快照,否则备份的状态将与集 群中其他节点不匹配。在恢复时,还必须创建oplog,并指定--oplogReplay参数来应用这些操作,否则恢复的成员将不知道从何处开始同步,从 而在某个时间点上与源服务器保持一致。
恢复:
1、降复制集中要恢复的节点移除
rs.remove("10.10.17.26:27000")
2、运行mongorestore --oplogReplay命令
mongorestore --host 10.10.17.26 --port 27000 --oplogReplay /data/mongodbbackup/20150820/
3、创建oplog
use local db.createCollection("oplog.rs", {"capped" : true, "size" : 10000000})
4、恢复oplog
mongorestore --host 10.10.17.26 --port 27000 -d local -c oplog.rs /data/mongodbbackup/20150820/oplog.bson
5、将该节点加入到复制集
rs.add("10.10.17.26:27000")
关于如何进行mongdb备份恢复问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
备份
实例
文件
节点
问题
单个
参数
拷贝
方法
更多
物理
目录
帮助
解答
易行
一致
差不多
简单易行
内容
写法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
生物信息租服务器
学生网络安全法视频
12306与数据库
中山定制软件开发
网络安全和信息化中心待遇
国家涉密软件开发甲级
乌鲁木齐网络安全培训费用多少
数据中心网络安全拓扑
手绘网络安全广告牌
上海网络技术转让价格表格
百度在线网络技术电话面试
数据库 销售额小计
手机获取数据库动态密码
微博怎么用代理服务器
国家知识产权局数据库不好用
网络技术学些什么
一句网络安全法
有死亡不掉落的生存服务器号
sql显示数据库用户名
琢创网络技术公司
山西华为服务器虚拟化解决方案
西安软件开发培训公司排行榜
为什么要使用时钟校对服务器
监控服务器如何进入管理
机架服务器的物理结构有哪些构成
涛思数据库插件开发
学习类软件开发的意义
湖北电商软件开发要多少钱
多屏管理软件开发
成都有梦软件开发公司