問題描述: 在生產(chǎn)環(huán)境中,當輔助副本成員的讀壓力很大時,可通過添加新的輔助副本成員來緩解壓力。 為了能實現(xiàn)主副本成員不停機,并減輕主副本成員的壓力,可在輔助副本成員上mongodump備份數(shù)據(jù); 為了實現(xiàn)新的輔助副本成員的快速恢復(fù),可直接通過以NFS方式
在生產(chǎn)環(huán)境中,當輔助副本成員的讀壓力很大時,可通過添加新的輔助副本成員來緩解壓力。
為了能實現(xiàn)主副本成員不停機,并減輕主副本成員的壓力,可在輔助副本成員上mongodump備份數(shù)據(jù);
為了實現(xiàn)新的輔助副本成員的快速恢復(fù),可直接通過以NFS方式掛載輔助副本成員到做備份操作的輔助副本成員上;
為了保證數(shù)據(jù)的一致性,在mongodump數(shù)據(jù)的時候使用—oplog參數(shù),mongorestore時使用—oplogReplay參數(shù);
為了滿足后期空間的擴容,通過—directoryperdb參數(shù)將數(shù)據(jù)庫分目錄存儲。
參見:CentOS Linux上配置NFS網(wǎng)絡(luò)文件系統(tǒng)以及客戶端使用
local數(shù)據(jù)庫不會被備份,包括admin在內(nèi)的其他庫會被備份。
mongodump --host=192.168.11.1:27017 --oplog -o /mnt/mongo/mongodata -u xucy –p Passw0rd --authenticationDatabase admin > mongodump.log 2>&1 &
可通過實時查看日志數(shù)據(jù),觀察備份進度。
tail –f mongodump.log
mongorestore要在mongod未啟動的情況下運行,它直接寫入文件。
mongorestore --host=192.168.11.2:27017 --oplogReplay --dbpath /data/var/lib/mongodb --directoryperdb /nfspool/mongodata > mongorestore.log 2>&1 &
可通過實時查看日志數(shù)據(jù),觀察恢復(fù)進度。
tail –f mongorestore.log
1.查看主副本的維護窗口和oplog大小:
rs_main:PRIMARY> db.printReplicationInfo()
configured oplog size: 23862.404296875MB
log length start to end: 39405secs (10.95hrs)
oplog first event time: Sun Feb 08 2015 10:34:07 GMT-0600 (CST)
oplog last event time: Sun Feb 08 2015 21:30:52 GMT-0600 (CST)
now: Sun Feb 08 2015 21:30:53 GMT-0600 (CST)
2.在新機器上重建oplog:
以standalone方式啟動,執(zhí)行如下刪除和創(chuàng)建腳本:
> use local > db.oplog.rs.drop() > db.createCollection("oplog.rs", {"capped" : true, "size" : 23 * 1024 * 1024 * 1024}) 或 > db.runCommand( { create: "oplog.rs", capped: true, size: (23 * 1024 * 1024 * 1024) } )
此oplog是mongodump時導(dǎo)出的oplog.bson。
mongorestore -d local -c oplog.rs /nfspool/mongodata/oplog.bson
新實例配置和源副本集添加相同的--replSet和--keyFile參數(shù),以副本集啟動
>rs.add(“192.168.11.2:27017”) {“ok”:1}
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com