溫馨提示×

溫馨提示×

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

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

MongoDB中副本集丟失數(shù)據(jù)的示例分析

發(fā)布時間:2021-08-07 10:32:14 來源:億速云 閱讀:211 作者:小新 欄目:MongoDB數(shù)據(jù)庫

這篇文章主要為大家展示了“MongoDB中副本集丟失數(shù)據(jù)的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“MongoDB中副本集丟失數(shù)據(jù)的示例分析”這篇文章吧。

1. 概要描述

測試場景為:一主一從一驗證

MongoDB中副本集丟失數(shù)據(jù)的示例分析

測試案例

step1 :關(guān)閉從副本;

step 2 ;向主副本中插入那條數(shù)據(jù);

step 3 :關(guān)閉主副本;

step 4 :開啟輔助副本,此副本升級為主副本,這是后會看到新的主副本沒有剛才插入的幾筆數(shù)據(jù)。

----測試時,請注意測試步驟。

step 5 :原主節(jié)點 再次加入到集群中后,會變成新的輔助副本。測試插入的數(shù)據(jù)會產(chǎn)生回滾。

2. 具體的測試步驟

(1)測試服務(wù)器,原測試環(huán)境

主Server:Port副Server:Port見證Server:Port
XXX.XXX.XXX.124:27220XXX.XXX.XXX.123:27221XXX.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服務(wù),服務(wù)命名為mongodboplogtest.service

systemctl stop mongodboplogtest.service

Step 3.查詢主副本上數(shù)據(jù)庫insert的數(shù)據(jù)量,為100000.命令完全插入。

MongoDB中副本集丟失數(shù)據(jù)的示例分析

Step 4.關(guān)閉主副本上的Mongodb 服務(wù),服務(wù)命名為mongodboplogtest.service

systemctl stop mongodboplogtest.service

Step 5 開啟輔助節(jié)點上的MongoDB服務(wù)

systemctl start mongodboplogtest.service

step 6 此時輔助節(jié)點(XXX.XXX.XXX.123)升級為主節(jié)點,此時數(shù)據(jù)為30337(100000-30337 筆記錄丟失了)

MongoDB中副本集丟失數(shù)據(jù)的示例分析

此時 124 (原主節(jié)點)為"stateStr" : "(not reachable/healthy)"

MongoDB中副本集丟失數(shù)據(jù)的示例分析

step 7 開啟原主節(jié)點上的服務(wù),集群的狀態(tài),關(guān)于原主節(jié)點的描述短暫處于"stateStr" : "ROLLBACK"

MongoDB中副本集丟失數(shù)據(jù)的示例分析

step 8 回滾后,狀態(tài)變?yōu)?quot;stateStr" : "SECONDARY"

MongoDB中副本集丟失數(shù)據(jù)的示例分析

step 9 查詢原主節(jié)點數(shù)據(jù),此時數(shù)據(jù)量為30337(100000-30337 筆也記錄丟失了)

MongoDB中副本集丟失數(shù)據(jù)的示例分析

3.丟失的數(shù)據(jù)是否可以找到

我們發(fā)現(xiàn),重啟原主節(jié)點(XXX.XXX.XXX.124)mongodb服務(wù)后,在數(shù)據(jù)目錄下多了一個rollback 目錄。

重啟前的數(shù)據(jù)目錄

MongoDB中副本集丟失數(shù)據(jù)的示例分析

重啟后的數(shù)據(jù)目錄

MongoDB中副本集丟失數(shù)據(jù)的示例分析

進去這個目錄后,我們看到生成了一個以數(shù)據(jù)庫+集合名字+時間的 bson 文件。

MongoDB中副本集丟失數(shù)據(jù)的示例分析

以上是“MongoDB中副本集丟失數(shù)據(jù)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

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

AI