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查看內容
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章