mongodb集群shard状态异常:RECOVERING
发表于:2024-12-04 作者:千家信息网编辑
千家信息网最后更新 2024年12月04日,mongodb集群shard状态异常:RECOVERING报错信息2018-11-28T06:46:55.783+0000 I REPL [replication-0] We are too
千家信息网最后更新 2024年12月04日mongodb集群shard状态异常:RECOVERING
mongodb集群shard状态异常:RECOVERING
报错信息
2018-11-28T06:46:55.783+0000 I REPL [replication-0] We are too stale to use 172.19.9.12:27003 as a sync source. Blacklisting this sync source because our last fetched timestamp: Timestamp(1542344943, 1) is before their earliest timestamp: Timestamp(1543387334, 5197) for 1min until: 2018-11-28T06:47:55.783+00002018-11-28T06:46:55.783+0000 I REPL [replication-0] sync source candidate: 172.19.9.11:270032018-11-28T06:46:55.783+0000 I REPL [replication-0] We are too stale to use 172.19.9.11:27003 as a sync source. Blacklisting this sync source because our last fetched timestamp: Timestamp(1542344943, 1) is before their earliest timestamp: Timestamp(1543387334, 5953) for 1min until: 2018-11-28T06:47:55.783+0000
错误原因分析:
报错节点数据太"陈旧:stale"了;网络异常或者节点异常,太久没有进行同步数据操作,而导致其他节点的数据操作日志已经覆盖,所以本节点被认为 stale,无法从其他节点同步数据。
恢复方案
1:停掉数据库,直接删除异常节点(shard)本地数据,然后启动mongo数据库,启动之后存在一个同步的过程,根据数据量、网络、磁盘性能等因素所需时间不同。
2:停掉数据库,直接拷贝主节点上的数据,然后再启动mongo,这样就不存在数据同步的过程了.问题,就是数据时刻在变化,拷贝过程中难免会漏掉一些数据。
处理办法:
我们的mongodb集群是使用docker拉起的,使用方案 1;
首先确定异常分片节点==》然后确定映射目录==》删除异常分片实例数据目录==》docker 服务会自动拉起服务==》集群开始数据恢复;
确认异常信息:
/mongo localhost:27017/admin:PRIMARY> rs.status(); { "_id" : 2, "name" : "172.19.9.13:27003", 《== 节点信息 "health" : 1, "state" : 5, "stateStr" : "RECOVERING", 《== 异常状态 "uptime" : 64, "optime" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) },
具体操作:
数据目录:/data/shard3 ssh $HOSTNAME cd /data/ rm -rf shard3
删除数据目录后,容器异常,集群会自动拉起新的一个docker 实例运行 shard 3实例;
查看恢复状态:
STARTUP2表示正在初始化并同步数据,会看到数据目录文件在不停增加文件。
/mongo localhost:27017/admin:PRIMARY> rs.status(); { "_id" : 2, "name" : "172.19.9.13:27003", "health" : 1, "state" : 5, "stateStr" : "STARTUP2", 《===表示正在初始化并同步数据。 "uptime" : 64, "optime" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) },
查看恢复结果
/mongo localhost:27017/admin:PRIMARY> rs.status(); "_id" : 2, "name" : "172.19.9.13:27003", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", <== 一段时间后状态恢复正常 "uptime" : 945196, "optime" : { "ts" : Timestamp(1543401694, 1), "t" : NumberLong(1) },
注意事项:
同步数据时候比较耗费资源,推荐在系统访问量最低的时间段进行。防止数据大量更新滞后,降低集群数据恢复风险。
数据
节点
同步
集群
目录
状态
信息
实例
数据库
时间
过程
拷贝
数据恢复
文件
方案
正在
网络
服务
不同
最低
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
语音服务器未连接
服务器cpu视频处理
2007office数据库
专科通信网络技术
qq空间的数据库设计
网络安全攻防演练工作亮点
数据库备份数据表中部分内容
影响计算机与网络技术发展的因素
抖音怎么申请成为网络安全人员
sql 数据库原理
数据库中的V和 是什么意思
ntp服务器验证正常
数据库是属于什么专业
服务器是用来做什么的
数据库筛选一列数据
腾霖网络技术有限公司
常熟软件开发培训
软件开发最简单模型
锐思数据库实际控制人经济性质
阴阳师手游连接到服务器失败
淮安工程软件开发价格多少
烟台恺勋互联网科技有限公司
大连好管家网络技术有限公司
网络安全普京
福建厦门网络安全黎佳
工厂做软件开发如何
河北企业软件开发好处
数据库做路线地图怎么做
车纹识别技术挑战赛 数据库
软件开发模式与应用案例