備份語法:
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目錄,這個目錄里面存放該數據庫實例的備份數據。
恢復語法:
mongodb使用 mongorestore 命令來恢復備份的數據。
語法
mongorestore命令腳本語法如下:
>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 選項。
1:windows系統環境下mongodb的備份恢復
備份語句:
mongodump.exe -d maxiangqian -o d:\sqldata\
完成了備份,看下具體的參數:
描述 | |
mongodump --host HOST_NAME --port PORT_NUMBER | 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 |
恢復數據:
mongorestore.exe -d maxiangqian d:\sqldata\
我在恢復數據以前已經刪掉了原始數據庫,現在這個就沒問題了,直接恢復成功。
2:linux下mongodb數據庫的備份恢復
備份有兩種方式:
看第一種備份方式:
$ mongodump --host mongodb.example.net --port 27017 --db test --collection some --username backup --password passwd
以上會使mongodump連接到mongodb.example.net:27017上的mongod,並且把dbtest中的somecollection備份到dump目錄下。
看第二種備份方式:
mongodump --dbpath /data/db --out /data/backup --db test --username backup --password passwd
在這種方式下不需要運行mongod實例,如果已經運行了,必須要停掉。--dbpath指定了數據庫文件的位置。 mongodump會直接讀取數據庫文件,在讀取過程中會lock數據文件夾,以防其他Mongodb實例寫入而導致數據不一致。--out指定了備份存放的文件夾。
恢復方式:
mongorestore恢復數據的方式與mongodump相對應,也是分為兩種:
第一種方式:
$ mongorestore --host mongodb.example.net --port 27017 --db test --collection some --username backup --password password /data/backup
以上會從/data/backup中恢復數據,其中只恢復testdb中somecollection到mongodb.example.net:27017中。如果不指定--host和--portoption,那么mongorestore會默認使用localhost:27017。
如果只想恢復部分數據,可以使用--filteroption:
$ mongorestore --filter '{"field": 1}'
以上會把dump文件夾數據中field為1的document恢復到mongod中。
第二種方式:
$ mongorestore --dbpath /data/db --journal /data/backup
以上可以在mongod沒有運行的情況下把數據恢復到/data/db。--journaloption可以確保mongorestore在日志中記錄所有的操作,這可以防止恢復操作異常中斷(斷電、磁盤故障)而引起的數據損壞