如何进行mongdb备份恢复
发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,如何进行mongdb备份恢复,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、物理备份(拷贝文件)#!/bin/shDATE=`da
千家信息网最后更新 2025年02月24日如何进行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安全错误
数据库的锁怎样保障安全
现在的数据库技术在做什么
计算机网络技术专升本难吗统招
共同织牢网络安全防护网
讯沁网络技术
香港万达宝软件开发有限公司
网络技术风险对策
计算机三级数据库pdf
文件管理员和服务器的区别
面试常用数据库增删改查语句
金算盘财务软件数据库
品创时代互联网科技
宝塔服务器管理 多用户
浪潮5280m5服务器价格
求生之路如何看曾经玩过的服务器
数据库二维表 设计
服务器管理器里面没有服务
数据库课程设计目录
网络技术及应用的基本信息
云盯网络技术有限公司官网
最终幻想14哪个服务器
云服务器租赁规定
沈阳直播软件开发前十名
泛微网络安全绘画
小米米家智能家居售后服务器
互联网有什么高科技吗
威宁自治县网络安全应急预案
信息社会与网络安全实践报告
数据库的发展的3个阶段
软件开发需要什么天赋
仙居本地软件开发价格行情