Linux下mongodb数据备份以及crontab定时备份

Linux下mongodb数据备份以及crontab定时备份

手动备份

1.无密码备份

##如果配置了mongodb的bin文件,即可在任意位置使用mongodump命令,否则需要指定mongodump的路径
>mongodump -h [dbhost] -d [databasename] -o [dumppath]
>例子:mongodump -h 127.0.0.1:27017 -d test -o /usr/local/dump
执行完后,会在/usr/local/dump文件夹下生成一个以数据库名的文件夹,里面就是备份的数据

2.密码验证备份

>mongodump -d [databasename] -u [username] -p [password] --authenticationDatabase=[authDatabase] -o [dumppath]
>例子:mongodump -d test -u root -p root --authenticationDatabase=admin -o /usr/local/dump
注:-u:为数据库登录名
   -p:为数据库登录密码
   --authenticationDatabase:为用户认证的所属数据库,即创建数据库用户角色时,在哪个数据库下创建的,例子中是在admin数据库下创建了一个root用户角色

注:具体mongodump的参数可以使用mongodump --help命令查看
3.恢复数据

>mongorestore -h <hostname><:port> -d dbname <path>/--dir=
>例子:mongorestore -h 127.0.0.1:27017 -d test /usr/local/dump/test 无认证
>例子:mongorestore -d test -u root -p root --authenticationDatabase=admin /usr/local/dump/test 带认证

注:path和dir不能同时存在。
具体mongorestore的参数可以使用mongorestore --help命令查看

crontab定时备份

1.编写执行备份mongodb数据的sh执行文件

## /usr/local/project
mkdir mongodb-dump
touch mongodb_back.sh
chmod 755 mongodb_back.sh
vim mongodb_back.sh
在mongodb_back.sh文件里添加:
#!/bin/sh
/usr/local/mongodb/bin/mongodump -d test -u root -p root  --authenticationDatabase=admin -o /usr/local/dump/test

:如果crontab自动执行改mongodb_back脚本,就必须保证里面执行的命令为绝对路径,否则会执行失败。例如mongodump命令在手动执行时成功,但是如果crontab执行时使用相对路径,就无法找到mongodump命令。
2.添加到crontab任务中

>crontab -e (编辑工作表)
编辑插入>0 23 * * * /usr/local/project/mongodb_back.sh
注:意思是每天23点执行mongodb_back.sh文件
>crontab -l (列出工作表里的命令)

3.查看crontab定时任务日志

日志目录在/var/log/cron
可直接用tail -f /var/log/cron查看内容
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章