您好,登錄后才能下訂單哦!
下文給大家帶來Mongodb負載均衡與備份方案的詳細介紹,希望能夠給大家在實際運用中帶來一定的幫助,負載均衡涉及的東西比較多,理論也不多,網上有很多書籍,今天我們就用億速云在行業內累計的經驗來做一個解答。
Mongodb負載均衡與備份方案
一、 路由負載均.............................................................................................. 1
二、 備份策略.......................................................................................................... 3
1. 增量備份(添加延遲備份節點)...................................................................... 3
2. 利用延遲備份節點恢復數據......................................................................... 4
3. 全量備份(添加延遲備份節點)...................................................................... 5
三、 其他問題..................................................................................................... 5
采用appServer方式進行負載,因為Mongodb的路由(mongos)本身不支持負載均衡,MongoDB都是長鏈接, lvs會話時間一到,重新選擇rs的時候,就有可能斷掉之前的鏈接,就會出現104錯誤。
1) 利用另外一臺secondary從機器傳送數據
2) 在新機器上中配置文件中添加fastsync=true配置(當需要從有數據中啟動節點,那么必須加上fastsync=true,否則啟動會報錯,如果是從主庫直接同步所有數據,那么就不需要添加這個參數)
3) 啟動后,在primary節點中添加節點,如:rs.add("10.168.0.102:17017") 當我們看到變為secondary后,就一切正常,可以正常提供線上服務了
4) 通過rs.conf()命令查看現在的節點信息(需要admin庫密碼權限)
5) rs.remove("10.168.0.102:17017")刪除節點
6) 添加arbiter節點:rs.addArb("10.73.24.171:19003")
7) 添加延時備份機器:
rs.add({_id:5,host:"10.168.0.102:17017",priority:0,slaveDelay:300});
rs.add({_id:5,host:"10.168.0.102:17018",priority:0,slaveDelay:300});
rs.add({_id:5,host:"10.168.0.102:17019",priority:0,slaveDelay:300});
注意:slaveDelay單位秒.
8) 出現這個錯誤時:replSet error RS102 too stale to catch up,我們可以db.printReplicationInfo()查看主庫、從庫的oplog信息
1) 先把延遲備份節點的數據,備份到各節點的master機子上。如:
#./mongodump -h 192.168.136.14:17017 -d UserInfoDB -o /data/mongoback/
#./mongodump -h 192.168.136.15:17018 -d UserInfoDB -o /data/mongoback/
#./mongodump -h 192.168.136.16:17019 -d UserInfoDB -o /data/mongoback/
2) 把備份的數據導入到個節點的master上。如:
建議先修復下,壓縮空間
db.repairDatabase();修復數據(和壓縮(刪除數據)空間)
./mongorestore -h 127.0.0.1:17017 --directoryperdb /data/mongoback --drop --indexesLast
./mongorestore -h 127.0.0.1:17018 --directoryperdb /data/mongoback --drop --indexesLast
./mongorestore -h 127.0.0.1:17019 --directoryperdb /data/mongoback --drop --indexesLast
1) 寫好腳本定期凌晨備份數據,如:
./mongodump -h 10.168.0.187:10000 -d UserInfoDB -o /data/mongoback/
2) 恢復數據
3) 建議先修復下,壓縮空間
4) db.repairDatabase();修復數據(和壓縮(刪除數據)空間)
./mongorestore -h 10.168.0.187:10000 --directoryperdb /data/mongoback --drop --indexesLast
1. 如果啟動不成功,則嘗試修復.如:
./mongod --port 27017 --repair --dbpath /data/database/shard1/
2. 如果master節點kill了,則起來之后通過rs.stepDown(100)讓出master的位置。
看了以上關于Mongodb負載均衡與備份方案的詳細介紹,如果大家還有什么地方需要了解的可以在億速云行業資訊里查找自己感興趣的或者找我們的專業技術工程師解答的,億速云技術工程師在行業內擁有十幾年的經驗了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。