如何进行mongdb备份恢复
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,如何进行mongdb备份恢复,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、物理备份(拷贝文件)#!/bin/shDATE=`da
千家信息网最后更新 2025年11月07日如何进行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安全错误
数据库的锁怎样保障安全
软件开发哪种语言最好
网络安全防守作战指南
软件开发不允许预付
sql数据库超过链接写入慢
网络安全投诉机构
服务器管理口与普通接口
工作流数据库
暗黑3正在连接游戏服务器
服务器安装配置
千锋网络安全百度云盘
智慧职教网络技术基础
本地服务器登录另一台服务器吗
quartz 设置数据库
软件开发培训的大品牌
桐梓县松坎镇网络安全
甘肃库存管理软件开发
Linux南大数据库启动
数据库简单模式
扬州云主机服务器
肇庆网络安全系统
网络技术十大股东
当前国内形势和网络安全特点
早期的线性软件开发模型称为
网络安全人员学习心得体会
未来10年网络安全影响力
软件开发者有什么用处
云服务器的使用心得
it软件开发是开发啥
query查询数据库
2022网络安全竞赛