mongodump是mongodb提供的用于創建數據庫備份的實用程序。這是一個非常有用的實用程序,可以考慮非常有效地為實時服務器數據庫進行備份。對于數據庫還原,需要使用mongorestore命令。
1、備份mongodb數據庫(mongodump)
有多種備份MongoDB數據庫的方法。使用mongodump命令進行所有數據庫備份、單個集合備份或者單個數據庫備份。
備份單個數據庫
使用此命令僅備份單個數據庫(名為mydb)。將在/backup/db/目錄中創建備份。
$?mongodump?--db?mydb?--out?/?backup?/?db?/
-db?– 要備份的數據庫名稱
-out?– 數據庫備份位置。這將創建具有數據庫名稱的文件夾。
可以為遠程數據庫連接備份指定主機,端口,用戶名和密碼,如下所示。
$?mongodump?--host?10.0.1.7?--port?27017?--username?admin?--password?somepassword?--db?mydb?--out?/?backup?/?db?/
備份所有數據庫
要備份所有數據庫,只需按以下命令運行即可。這里/ data / db /是你的mongodb數據目錄的位置,/ backup / db是備份目錄的位置。
$?mongodump?--out?/?backup?/?db?/
可以為遠程數據庫指定主機,端口。
備份單一集合
此命令將從數據庫中備份單個集合。備份文件將在dump / mydb /目錄中創建。
$?mongodump?--collection?mycollection?--db?mydb?--out?/?backup?/?db?/
2、使用mongorestore恢復MongoDB數據庫
mongorestore是用于恢復mongodb數據庫備份的命令行工具。這里/ data / db /是你的mongodb數據目錄的位置,/ backup / db是備份目錄的位置。
$?mongorestore?--db?mydb?--drop?/?backup?/?db?/?mydb
-drop?– 如果已經存在,將刪除數據庫。
只需將備份文件移動到遠程服務器并在那里運行相同的命令即可恢復備份。
3、MongoDB備份Shell腳本
可以在調度程序中輕松安排以下腳本,以定期備份數據庫。創建如下文件
$?vi?/backup/mongo-backup.sh
將以下內容添加到文件中。相應地更新數據庫主機名,數據庫名稱,用戶名和密碼。
#!/bin/sh ? TODAY=`date?+%d%b%Y` BACKUP_DIR=/backup/db ? mkdir?-p?${BACKUP_DIR}/${TODAY} ? mongodump?-h?<database_host>?-d?<database_name>?-u?<username>?-p?<passwrd>?--out?${BACKUP_DIR}/${TODAY}/</passwrd></username></database_name></database_host>
?現在在crontab中配置它以便每天運行。
0?2?*?*?*?/backup/mongo-backup.sh