[轉] mongodb數據庫備份和恢復

windows下面mongodb數據庫備份和恢復

1、mongodump(備份)及mongorestore(還原)

→說明:
mongodump是一個用於導出二進制數據庫內容的實用工具,它導出的bson文檔中只會包含着集合文檔等信息,不包括索引信息(索引信息會單獨導出),所以還原後,索引必須重建(這個不用擔心,使用mongorestore會自動重建mongodump生成的索引信息)。3.4版本中添加了對只讀視圖的支持。

→參數(以下僅列舉常用參數,更多請參考help,下同):

命令 全稱 默認值 參考釋義
--help 查看mongodump命令的使用幫助
--version 返回mongodump的版本號
-h --host <hostname><:port> localhost:27017 指定mongod要連接的主機名及端口號
--port <port> 27017 指定MongoDB實例監聽客戶連接的TCP端口號
-u --username <username> 指定用於向使用認證的MongoDB數據庫認證的用戶名,與--password和
--authenticationDatabase結合使用
-p --password <password> 指定用於向使用認證的MongoDB數據庫認證的密碼。與--username和 --
authenticationDatabase選項結合使用。
-d --db <database> 指定要備份的數據庫。如果不指定,mongodump會將此實例中的所有數據庫備份。
-c --collection <collection> 指定要備份的集合。如果不指定,則會將指定數據庫或實例中的所有集合備份。
--gzip 3.2版本+,壓縮輸出,如果mongodump指定導出到目錄,則該選項會將每個文件都壓縮,
並添加.gz後綴;
如果mongodump指定導出到文檔或標準輸出流,則該選項會壓縮到文檔或輸出流中
-o --out <path> 指定導出數據的目錄路徑,如不指定,則mongodump默認將文件輸出到dump所在的工作目錄中。
該選項不能和--archive一起使用

→舉個栗子:

我可以將數據備份到D:\offer\data\dump目錄下面,首先創建這個路徑。然後進入到mongodb的bin目錄下面
我的是:

 

D:\offer\mongod\bin

備份腳本是:

 

mongodump -h 127.0.0.1:27017 -d test -o D:\offer\data\dump

恢復腳本是:

 

 mongorestore -h 127.0.0.1:27017 -d test --directoryperdb  D:\offer\data\dump\test

備份腳本是:

 

mongodump -h 127.0.0.1:27017 -d test -o D:\offer\data\dump

恢復腳本是:

 

 mongorestore -h 127.0.0.1:27017 -d test --directoryperdb  D:\offer\data\dump\test

linux下面mongodb數據庫備份和恢復

linux下面我們可以創建一個自動備份腳本,可以設置定時任務,也可以手動備份。我是手動備份的。

首先創建一個sh命令,我是放在home下面的

 

vim /home/mongoBeiFen.sh

輸入如下內容:

 

#!/bin/bash
shijie=`date +%Y%m%d%H`
backmongodbFile=mongodb$shijie.tar.gz
cd /home/mongoDbback/
/usr/local/mongo/bin/mongodump -h 127.0.0.1 --port 27017 -u mongo -p 123456  -d my_mongodb -o my_mongodb_dump/
tar czf $backmongodbFile  my_mongodb_dump/
rm my_mongodb_dump -rf 

解釋:

存放備份的文件夾是/home/mongoDbback/

-u是數據庫名用戶名 -p是密碼 -d是數據庫名 具體和window差不多,大家可以看下上面windows的解釋。

備份的時候只要運行一下

 

./mongoBeiFen.sh   

就可以了。

數據庫恢復:

 

/usr/local/mongo/bin/mongorestore -d my_mongodb my_mongodb_dump/my_mongodb/*            指向每個文件
/usr/local/mongo/bin/mongorestore -h 127.0.0.1 --port 27017 -- drop --directoryperdb  my_mongodb_dump/my_mongodb 指向一個目錄

有問題的話可以嘗試window的寫法:

 

  /usr/local/mongo/bin/mongorestore -h 127.0.0.1:27017 -d test --drop  --directoryperdb   my_mongodb_dump/my_mongodb



作者:程猿先生
鏈接:https://www.jianshu.com/p/186a99fb8a5e
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章