MongoDB备份与恢复

1 备份

1.1 准备工作

创建备份的user:仅需读取权限即可。
db.createUser({ user: "readuser", pwd: "password", roles: [ { role: "readAnyDatabase", db: "admin"} ]}) ;

1.2 备份命令

mongodump:导出所有数据库到指定目录。

参数说明:
        --host:MongoDB所在服务器IP。
        --port:MongoDB所在服务器端口。
        -d:需要备份的数据库实例。
        --out, -o:备份的数据存放位置。
        -u : 指定登录用户
        -p : 指定登录用户的密码
        -c :  指定要备份的集合

        --authenticationDatabase:指定密码验证的库实例

示例:

(1)备份所有数据库实例:

mongodump --host 127.0.0.1 --port 27017 --authenticationDatabase admin -u readuser -p password -o /path/mongodb_backup/all/

(2)备份某个数据库实例db1:

mongodump --host 127.0.0.1 --port 27017 --authenticationDatabase "admin" -u readuser -p password -d db1 --out /path/mongodb_backup/db1

(3)备份数据库实例db1的collection1

mongodump --host 127.0.0.1 --port 27017 --authenticationDatabase admin -u readuser -p password -d db1 -c collection1 -o /path/mongodb_backup/db1/collection1

1.3 备份脚本

编写备份脚本backup_mongodb.sh,向该脚本传递一个参数指定备份的数据库库实例名称。

#!/bin/bash

if [ $# = 0 ]; then
    echo "Input the parameter: dbname, please."
    exit 1
fi

BACKUP_DATE=`date +%Y%m%d`
DB_NAME=$1

echo "###########################################################"
date +"%Y-%m-%d %H:%M.%S"
echo "Begin backup mongodump database: $DB_NAME"
echo "###########################################################"
./mongodb-3.2.8/bin/mongodump -d $DB_NAME --authenticationDatabase "admin" -u readuser -p 9iHjhLj4dC --out /u01/mongodb_backup/$DB_NAME/$BACKUP_DATE
du -sh /mongodb_backup/$DB_NAME/$BACKUP_DATE
echo "###########################################################"
date +"%Y-%m-%d %H:%M.%S"
echo "END backup mongodump database: $DB_NAME"
echo "###########################################################"

调用方式:

backup_mongodb.sh db1

2 恢复数据库

2.1恢复命令

mongorestore

参数说明:
        -h, --host:MongoDB所在服务器IP。
        --port:MongoDB所在服务器端口。
        -d:需要恢复的数据库实例。
        -u:指定登录用户
        -p:指定登录用户的密码
        -c:指定要恢复的集合
        --drop:恢复的时候把之前集合drop掉

        --authenticationDatabase:指定密码验证的库实例

示例:

(1)恢复所有数据库

mongorestore --host 127.0.0.1 --port 27017 --authenticationDatabase admin -u admin -p 123456  /path/mongodb_backup/all/

(2)恢复指定的库

mongorestore --host 127.0.0.1 --port 27017 --authenticationDatabase admin -u admin -p 123456 -d db1  /path/mongodb_backup/db1

若恢复之前,数据库已经存在,则会报错:

 此时,可以使用--drop参数:

mongorestore --host 127.0.0.1 --port 27017 --authenticationDatabase admin -u admin -p 123456 -d db1 --drop /path/mongodb_backup/db1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值