Latest web development tutorials

MongoDB 備份(mongodump)與恢復(mongorestore)

MongoDB數據備份

在Mongodb中我們使用mongodump命令來備份MongoDB數據。 該命令可以導出所有數據到指定目錄中。

mongodump命令可以通過參數指定導出的數據量級轉存的服務器。

語法

mongodump命令腳本語法如下:

>mongodump -h dbhost -d dbname -o dbdirectory
  • -h:

    MongDB所在服務器地址,例如:127.0.0.1,當然也可以指定端口號:127.0.0.1:27017

  • -d:

    需要備份的數據庫實例,例如:test

  • -o:

    備份的數據存放位置,例如:c:\data\dump,當然該目錄需要提前建立,在備份完成後,系統自動在dump目錄下建立一個test目錄,這個目錄裡面存放該數據庫實例的備份數據。

實例

在本地使用27017 啟動你的mongod服務。 打開命令提示符窗口,進入MongoDB安裝目錄的bin目錄輸入命令mongodump:

>mongodump

執行以上命令後,客戶端會連接到ip為127.0.0.1 端口號為27017 的MongoDB服務上,並備份所有數據到bin/dump/ 目錄中。 命令輸出結果如下:

MongoDB數據備份

mongodump 命令可選參數列表如下所示:

語法 描述 實例
mongodump --host HOST_NAME --port PORT_NUMBER 該命令將備份所有MongoDB數據 mongodump --host w3cschool.cc --port 27017
mongodump --dbpath DB_PATH --out BACKUP_DIRECTORY mongodump --dbpath /data/db/ --out /data/backup/
mongodump --collection COLLECTION --db DB_NAME 該命令將備份指定數據庫的集合。 mongodump --collection mycol --db test

MongoDB數據恢復

mongodb使用mongorestore 命令來恢復備份的數據。

語法

mongorestore命令腳本語法如下:

>mongorestore -h dbhost -d dbname --directoryperdb dbdirectory
  • -h:

    MongoDB所在服務器地址

  • -d:

    需要恢復的數據庫實例,例如:test,當然這個名稱也可以和備份時候的不一樣,比如test2

  • --directoryperdb:

    備份數據所在位置,例如:c:\data\dump\test,這里為什麼要多加一個test,而不是備份時候的dump,讀者自己查看提示吧!

  • --drop:

    恢復的時候,先刪除當前數據,然後恢復備份的數據。 就是說,恢復後,備份後添加修改的數據都會被刪除,慎用哦!

接下來我們執行以下命令:

>mongorestore

執行以上命令輸出結果如下:

MongoDB數據恢復