国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MongoDB > 正文

MongoDB副本集丟失數據的測試實例教程

2020-10-29 18:41:51
字體:
來源:轉載
供稿:網友

在MongoDB副本集的測試中發現了一個丟數據的案例。

1. 概要描述

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

測試案例

step1 :關閉從副本;

step 2 ;向主副本中插入那條數據;

step 3 :關閉主副本;

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

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

step 5 :原主節點 再次加入到集群中后,會變成新的輔助副本。測試插入的數據會產生回滾。

2. 具體的測試步驟

(1)測試服務器,原測試環境

主Server:Port 副Server:Port 見證Server:Port
XXX.XXX.XXX.124:27220 XXX.XXX.XXX.123:27221 XXX.XXX.XXX.134:27220

(2)測試步驟

Step 1 向主數據庫(XXX.XXX.XXX.124:27220),插入以下數據,執行時間要長一些。

for(var i = 0; i < 100000; i++) { db.order0522.insert({a: i});};

Step 2 在上述命令執行的過程中,關于副主Server上的mongodb服務,服務命名為mongodboplogtest.service

systemctl stop mongodboplogtest.service

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

Step 4.關閉主副本上的Mongodb 服務,服務命名為mongodboplogtest.service

systemctl stop mongodboplogtest.service

Step 5 開啟輔助節點上的MongoDB服務

systemctl start mongodboplogtest.service 

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

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

step 7 開啟原主節點上的服務,集群的狀態,關于原主節點的描述短暫處于"stateStr" : "ROLLBACK"

step 8 回滾后,狀態變為"stateStr" : "SECONDARY"

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

3.丟失的數據是否可以找到

我們發現,重啟原主節點(XXX.XXX.XXX.124)mongodb服務后,在數據目錄下多了一個rollback 目錄。

重啟前的數據目錄

重啟后的數據目錄

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙南县| 齐齐哈尔市| 唐海县| 庐江县| 苗栗县| 高清| 高台县| 比如县| 阳西县| 许昌县| 长岛县| 肇庆市| 东海县| 莒南县| 海门市| 镇安县| 桑日县| 德令哈市| 宁城县| 宁晋县| 巩留县| 荔浦县| 舞钢市| 城市| 台中县| 景德镇市| 三门县| 台东市| 明溪县| 贞丰县| 汤原县| 兖州市| 龙里县| 泾源县| 富阳市| 连城县| 呼伦贝尔市| 阳泉市| 盐源县| 琼中| 乃东县|