千家信息网

如何进行mongdb备份恢复

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,如何进行mongdb备份恢复,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、物理备份(拷贝文件)#!/bin/shDATE=`da
千家信息网最后更新 2026年10月31日如何进行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安全错误 数据库的锁怎样保障安全 北京路客互联网科技有限公司 互联网科技论文 四川狮子座互联网科技 滨湖区互联网智能科技产品供应 富国互联网科技创新基金 深圳国际航运科技和互联网 互联网之后的科技是什么 福州新华互联网科技学校 知乎 栖莱科技互联网股份有限公司 科技互联网大厂 福建科技产业互联网发展 武汉健翔互联网络科技有限公司 互联网科技与大数据专业 畅思互联网科技 内蒙古九一互联网科技 高科技互联网发展前景如何 玉溪新华互联网科技好不好 恒生互联网科技业指数调整周期 互联网方面的科技前沿 广州三三互联网科技有限公司 广州大一互联网络科技有限公司 云之行互联网科技 厦门中拓互联网络科技有限公司 齐家互联网科技 互联网科技logo设计 卫星互联网科技股票 互联网行业科技股 互联网科技和法律行业 湖北辰鑫科技互联网 数字互联网科技有限公司
0