- MongoDB進(jìn)階與實戰(zhàn):微服務(wù)整合、性能優(yōu)化、架構(gòu)管理
- 唐卓章
- 424字
- 2021-05-19 17:44:52
5.6 小技巧——檢查復(fù)制的延遲情況
由于分布式環(huán)境中的各種不確定性,因此對副本集的成員狀態(tài)、復(fù)制延遲狀態(tài)進(jìn)行檢查就變得非常重要。
1.rs.status命令
MongoDB對復(fù)制成員的監(jiān)視可以使用rs.status命令,我們可以登錄任一節(jié)點進(jìn)行查詢,代碼如下:




members一列體現(xiàn)了所有副本集成員的狀態(tài),主要如下。
● health:成員是否健康,通過心跳進(jìn)行檢測。
● state/stateStr:成員的狀態(tài),PRIMARY表示主節(jié)點,而SECONDARY則表示備節(jié)點,如果節(jié)點出現(xiàn)故障,則可能出現(xiàn)一些其他的狀態(tài),例如RECOVERY。
● uptime:成員的啟動時間。
● optime/optimeDate:成員最后一條同步oplog的時間。
● optimeDurable/optimeDurableDate:成員最后一條同步oplog(寫入Journal日志)的時間。
● pingMs:成員與當(dāng)前節(jié)點的ping時延。
● syncingTo:成員的同步來源。
2.查看復(fù)制延遲
如果希望查看當(dāng)前節(jié)點oplog的情況,則可以使用rs.printReplicationInfo命令,代碼如下:

這里清晰地描述了oplog的大小、最早一條oplog以及最后一條oplog的產(chǎn)生時間,log length start to end所指的是一個復(fù)制窗口(時間差)。通常在oplog大小不變的情況下,業(yè)務(wù)寫操作越頻繁,復(fù)制窗口就會越短。
在節(jié)點上執(zhí)行rs.printSlaveReplicationInfo命令,可以一并列出所有備節(jié)點成員的同步延遲情況,代碼如下:

- iOS面試一戰(zhàn)到底
- C#高級編程(第10版) C# 6 & .NET Core 1.0 (.NET開發(fā)經(jīng)典名著)
- Essential Angular
- Unity Game Development Scripting
- 精通MATLAB(第3版)
- HTML5從入門到精通(第4版)
- Django 3.0應(yīng)用開發(fā)詳解
- Java程序設(shè)計教程
- LabVIEW數(shù)據(jù)采集
- Python人工智能項目實戰(zhàn)
- C++標(biāo)準(zhǔn)庫(第2版)
- Java性能權(quán)威指南
- 網(wǎng)頁設(shè)計理論與實踐
- WebRTC Cookbook
- Rust Quick Start Guide