主頁 > 知識庫 > MongoDB使用自帶的命令行工具進行備份和恢復(fù)的教程

MongoDB使用自帶的命令行工具進行備份和恢復(fù)的教程

熱門標簽:AI電銷 Linux服務(wù)器 呼叫中心市場需求 鐵路電話系統(tǒng) 地方門戶網(wǎng)站 網(wǎng)站排名優(yōu)化 服務(wù)外包 百度競價排名

要備份一個數(shù)據(jù)庫,

mongorestore -d db /path/to/back_up

例如:

mongodump -d bookstore -o /data01/db_backup/

該命令會dump出該DB所有的collection
從備份文件夾恢復(fù)數(shù)據(jù)

mongorestore -d bookstore /data01/db_backup/bookstore

只備份或回復(fù)指定的collection
以bookstore DB 中statistics 表為例

mongodump -d bookstore -c statistics -o /data01/db_backup/

然后restore時指定該collection對應(yīng)的bson文件

mongorestore -d bookstore -c statistics /data01/db_backup/bookstore/statistics.bson

通過條件查詢dump
還可以通過一個query來dump中一個collection中符合條件的某些記錄, 例如

mongodump -d bookstore -c novel_sources -q "{\"tag\": \"tag_11\"}" -o /data01/db_backup/

要注意的是如果query中有$符號,需要轉(zhuǎn)義,例如

mongodump -d qunimei -c collection_name -q "{\"date\": {\"\$gte\": \"2015-03-25\"}}" -o /path/to/dump

注意事項
mongorestore并不會覆蓋已有的記錄,而是重復(fù)添加(如果可以的話)。
當數(shù)據(jù)量很大的時候,該方法耗時很大。
直接備份數(shù)據(jù)文件

mongo 127.0.0.1:27017/db_to_back --eval "db.fsyncLock()"
rsync -avh --delete /path/to/your/mongofile /path/to/backup/folder/
mongo 127.0.0.1:21001/turbo --eval "db.fsyncUnlock()"

關(guān)鍵是第一行和第三行的兩個命令,對于db.fsyncLock(),mongodb的文檔說明

db.fsyncLock()

Forces the mongod to flush all pending write operations to the disk and locks the entire mongod instance to prevent additional writes until the user releases the lock with the db.fsyncUnlock() command. db.fsyncLock() is an administrative command.
將mongod 未完成的寫操作寫入數(shù)據(jù)文件并阻止新的寫入操作,知道運行db.fsyncUnlock()命令,因此拷貝數(shù)據(jù)文件前后要執(zhí)行這兩個命令。

與其他備份恢復(fù)工具的對比

mongodb自帶的備份工具還有bsondump、mongoexport,恢復(fù)工具還有mongoimport ,幾者之間的具體區(qū)別是:

bsondump、mongoexport、mongodump備份工具的對比:

1、bsondump可以指定備份的格式為json和debug模式,這個命令雖然附帶,但很少用到 ;

2、mongoexport 可以導(dǎo)出json或csv格式的文件,可以指定查詢過濾器或指定輸出的域,不過此工具導(dǎo)出的json,csv可能對某些數(shù)據(jù)類型不兼容,因此可能不能全部數(shù)據(jù)導(dǎo)出,mongodump就可以全部兼容 ;

3、mongodump支持過濾 ,而且在導(dǎo)出速度和壓縮率方面mongodump是最快最好的 。所以,若無csv或debug等特殊格式的備份需求,一般都使用 mongodump 作為備份工具 。

mongorestore與mongoimport 恢復(fù)工具的對比:

1、 mongoimport 可以接受json,csv,tsv格式的文件,每行為一個對象 。同mongoexport一樣,其在恢復(fù)過程中同樣存在兼容性的問題,所以有恢復(fù)不完整的概率 ;

2、mongorestore,速度較慢,比mongoimport慢2.5倍左右,但是根據(jù)mongodump導(dǎo)出的數(shù)據(jù),可以完整導(dǎo)入數(shù)據(jù)。在restore過程中,索引根據(jù)之前dump的結(jié)果重新創(chuàng)造。

您可能感興趣的文章:
  • Ubuntu下安裝PHP的mongodb擴展操作命令
  • MongoDB常用操作命令大全
  • MongoDB常用數(shù)據(jù)庫命令大全
  • mongodb基本命令實例小結(jié)
  • MongoDB Shell 命令實例總結(jié)【進階篇】
  • MongoDB使用mongoexport和mongoimport命令,批量導(dǎo)出和導(dǎo)入JSON數(shù)據(jù)到同一張表的實例
  • MongoDB基礎(chǔ)命令以及操作示例詳解
  • mongodb監(jiān)控工具mongostat的使用及命令詳解
  • Mongodb 啟動命令mongod參數(shù)說明(中文翻譯)
  • MongoDB數(shù)據(jù)庫常用的10條操作命令

標簽:蘭州 崇左 仙桃 湘潭 銅川 衡水 湖南 黃山

巨人網(wǎng)絡(luò)通訊聲明:本文標題《MongoDB使用自帶的命令行工具進行備份和恢復(fù)的教程》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266