MongoDB的備份與恢復

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目錄,這個目錄裏面存放該數據庫實例的備份數據。

實例

先創建一個庫,並插入內容,已驗證備份效果

> use mydb
switched to db mydb
> db.createCollection('db')                        // 創建一個集合
{ "ok" : 1 }
> show collections                                   // 查看集合
db
mydb

如下進行備份

[root@server1 ~]# mongodump -h 127.0.0.1 -d mydb -o /mnt/          //將mydb庫備份到/mnt/

 

 如下,可見數據已經備份到/mnt/下

Screenshot from 2018-07-24 16-42-39.png


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


[root@server1 ~]# mongodump --collection db -d mydb        // 備份mydb庫中的db集合


語法描述實例
mongodump --host HOST_NAME --port PORT_NUMBER該命令將備份所有MongoDB數據mongodump --host runoob.com --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 -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" --noIndexRestore --dir /data/

#恢復單個數據庫

mongorestore -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" --noIndexRestore -d dbname --dir /data/

部分參數說明

--drop參數:恢復數據之前刪除原來的數據,避免數據重複

--noIndexRestore參數:恢復數據時不創建索引

--dir參數:數據庫備份目錄

-d參數:後面跟要恢復的數據庫名稱


>mongorestore -h <hostname><:port> -d dbname <path>
  • --host <:port>, -h <:port>:

    MongoDB所在服務器地址,默認爲: localhost:27017

  • --db , -d :

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

  • --drop:

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

  • <path>:

    mongorestore 最後的一個參數,設置備份數據所在位置,例如:c:\data\dump\test。

    你不能同時指定 <path> 和 --dir 選項,--dir也可以設置備份目錄。

  • --dir:

    指定備份的目錄

    你不能同時指定 <path> 和 --dir 選項。


實例

[root@server1 ~]# mongorestore -h 127.0.0.1:27017 -d mydbb /mnt/mydb        將/mnt/mydb路徑下的內容恢復到數據庫mydbb


Screenshot from 2018-07-24 16-50-36.png


進入mongo去查看

> use mydbb
switched to db mydbb
> show collections
db
mydb

可以看到在mydbb中數據已經恢復過來。



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