溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mongodump、mongorestore

發(fā)布時(shí)間:2020-06-03 13:40:45 來源:網(wǎng)絡(luò) 閱讀:1464 作者:lych528 欄目:MongoDB數(shù)據(jù)庫

通常來說針對(duì)collection使用mongoexport導(dǎo)出,而Mongodump可以單表,也可以整庫。同時(shí)mongoexport輸出的JSON比Mongodump的BSON可讀性更高,JSON文件可以直接進(jìn)行讀取操,操作拼接指令來insert還原數(shù)據(jù)。

--備份單個(gè)表(用戶lych,密碼abcde,導(dǎo)出的是lych_db庫里的aaa collecion)
mongodump -u lych -p abcde --port 27017 --authenticationDatabase admin -d lych_db -c aaa -o /tmp/abc.bak

---備份單庫則去掉上面的 -c aaa則可

----而備份所有庫,則再去掉 -d lych_db

(--備份所有庫推薦使用添加--oplog參數(shù)(基于某一時(shí)間點(diǎn)的快照),只能用于備份全部庫時(shí),單庫和單表不適用:

mongodump -h 127.0.0.1 --port 80000 --oplog -o /tmpt/abc.bak (部分配置文件可以對(duì)bond_ip做了相應(yīng)配置,需要注意)

--恢復(fù)時(shí)要加上--oplogReplay參數(shù):
mongorestore -h 127.0.0.1 --port 80000 --oplogReplay /tmp)

--恢復(fù)單個(gè)庫:
mongorestore -u xx -p xxx --port 80000 --authenticationDatabase admin -d xxx /tmp

--恢復(fù)所有庫:
mongorestore -u superuser -p 123456 --port 80000 --authenticationDatabase admin /tmp/bak
(如果備份的時(shí)候加了--gzip參數(shù),那么恢復(fù)的時(shí)候也要帶上--gzip)

--恢復(fù)單表
mongorestore -u xxx -p xxx --authenticationDatabase admin -d xxx -c xx /xxx.bson

mongorestore默認(rèn)是追加,--drop參數(shù)后,會(huì)將數(shù)據(jù)庫數(shù)據(jù)清空后再導(dǎo)入,如果數(shù)據(jù)庫備份后又新加入了數(shù)據(jù),也會(huì)將新加的數(shù)據(jù)刪除

----mongo在關(guān)閉時(shí)也可以備份,只需要找到data目錄:
mongodump --dbpath /data/db

?mongodump導(dǎo)出的是bson格式,是二進(jìn)制形式,不過可以使用mongo自帶的bsondump命令查看里面的數(shù)據(jù),而mongoexport導(dǎo)出的則是文本,可以是csv、json格式。
?JSON可讀性強(qiáng)但體積較大,BSON則是二進(jìn)制文件,體積小但幾乎沒有可讀性。
?在一些mongodb版本之間,BSON格式可能會(huì)隨版本不同而有所不同,所以不同版本之間用mongodump/mongorestore可能不會(huì)成功,具體要看版本之間的兼容性。當(dāng)無法使用BSON進(jìn)行跨版本的數(shù)據(jù)遷移的時(shí)候,使用JSON格式即mongoexport/mongoimport是一個(gè)可選項(xiàng)。
跨版本的mongodump/mongorestore個(gè)人并不推薦,實(shí)在要做請(qǐng)先檢查文檔看兩個(gè)版本是否兼容(大部分時(shí)候是的)。
?JSON雖然具有較好的跨版本通用性,但其只保留了數(shù)據(jù)部分,不保留索引,賬戶等其他基礎(chǔ)信息。使用時(shí)應(yīng)該注意。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI