背景
副本集状态命令检查
写在前面
摘录自https://www.cnblogs.com/lijiaman/p/13215533.html
link
查看副本集状态
rs.status()
检查"health" : 1,
"ok" : 1,
检查复制滞后
rs.printSlaveReplicationInfo()
source: 192.168.68.61:27017
syncedTo: Tue Dec 22 2020 08:29:49 GMT+0000 (UTC)
0 secs (0 hrs) behind the primary
source: 192.168.68.62:27017
syncedTo: Tue Dec 22 2020 08:29:49 GMT+0000 (UTC)
0 secs (0 hrs) behind the primary
滞后的原因:
1.网络延迟。检查副本集成员之间的网络路由,确保没有数据丢包或网络路由问题。可以使用ping或traceroute来确认。
2.磁盘吞吐量。使用iostat或vmstat评估磁盘状态。
3.大事务操作。主节点上长时间运行的操作可能会阻塞次级节点的复制。
4.合理的写关心(write concern)。如果需要对主数据库进行大量写入,执行大批量数据加载操作,则辅助数据库无法跟上主节点。
测试所有成员之间的连接
副本集的所有成员必须能够连接到该集合的每一个其它成员以支持复制。如果节点复制异常,可以排查节点之间的连通性。
在节点68.60上测试能否正常连接到其它2个节点
mongo --host 192.168.68.61 --port 27017
mongo --host 192.168.68.62 --port 27017
检查oplog的大小
较大的oplog可以使副本集对延迟的容忍度更高,要检查oplog大小,请在当前节点执行 rs.printReplicationInfo() 方法。
rs.printReplicationInfo() >=990M
操作日志应该足够大,至少能够保存24小时的日志。
本文说明,主要技术内容来自互联网技术大佬的分享,还有一些自我的加工(仅仅起到注释说明的作用)。如有相关疑问,请留言,将确认之后,执行侵权必删