主Server:Port | 副Server:Port | 見證Server:Port |
XXX.XXX.XXX.124:27220 | XXX.XXX.XXX.123:27221 | XXX.XXX.XXX.134:27220 |
(2)測試步驟
Step 1 向主數(shù)據(jù)庫(XXX.XXX.XXX.124:27220),插入以下數(shù)據(jù),執(zhí)行時間要長一些。
for(var i = 0; i 100000; i++) { db.order0522.insert({a: i});};
Step 2 在上述命令執(zhí)行的過程中,關(guān)于副主Server上的mongodb服務,服務命名為mongodboplogtest.service
systemctl stop mongodboplogtest.service
Step 3.查詢主副本上數(shù)據(jù)庫insert的數(shù)據(jù)量,為100000.命令完全插入。
Step 4.關(guān)閉主副本上的Mongodb 服務,服務命名為mongodboplogtest.service
systemctl stop mongodboplogtest.service
Step 5 開啟輔助節(jié)點上的MongoDB服務
systemctl start mongodboplogtest.service
step 6 此時輔助節(jié)點(XXX.XXX.XXX.123)升級為主節(jié)點,此時數(shù)據(jù)為30337(100000-30337 筆記錄丟失了)
此時 124 (原主節(jié)點)為"stateStr" : "(not reachable/healthy)"
step 7 開啟原主節(jié)點上的服務,集群的狀態(tài),關(guān)于原主節(jié)點的描述短暫處于"stateStr" : "ROLLBACK"
step 8 回滾后,狀態(tài)變?yōu)?stateStr" : "SECONDARY"
step 9 查詢原主節(jié)點數(shù)據(jù),此時數(shù)據(jù)量為30337(100000-30337 筆也記錄丟失了)
3.丟失的數(shù)據(jù)是否可以找到
我們發(fā)現(xiàn),重啟原主節(jié)點(XXX.XXX.XXX.124)mongodb服務后,在數(shù)據(jù)目錄下多了一個rollback 目錄。
重啟前的數(shù)據(jù)目錄
重啟后的數(shù)據(jù)目錄
進去這個目錄后,我們看到生成了一個以數(shù)據(jù)庫+集合名字+時間的 bson 文件。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。