蓝鲸平台mongodb集群异常处理

问题回顾

蓝鲸平台中的配置平台(cmdb)数据存放在了mongodb集群中(三台mongodb服务器组成的集群),偶然间发现集群中的一个节点日志有报错。
报错信息如下:

2020-06-30T19:27:50.622+0800 I REPL     [replication-0] We are too stale to use 10.10.10.2:27017 as a sync source. Blacklisting this sync source because our last fetched timestamp: Timestamp(1592818085, 6) is before their earliest timestamp: Timestamp(1593465706, 461) for 1min until: 

从日志中看出,
具体命令查看mongodb中集群另外两个节点与主节点是否同步,脱敏的部分是ip+port(由于是客户生产环境,需要脱敏一下)
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结果发现第二台mongodb节点与主节点之间差了184.81小时的数据,并且节点状态为recovering。
由于是三个节点组成的mongodb集群,另外两个节点正常,可以为配置平台提供服务,如果再有一台mongodb节点出问题,恢复起来就会变得麻烦。(其实我也不知道该咋办,只能用备份恢复?那如果没有备份呢?)

修复节点的过程

1、备份mongodb数据库中所有的数据(蓝鲸中的mongodb数据库有gse、cmdb、config三个库都需要备份,还有mongodb自身的local和admin库)
2、停掉所有mongodb服务
3、将有问题的节点数据移动到新创建的文件夹内,这时原来的存放数据的路径下除了保留mongo.key文件,该路径下没有别的文件(相当于清空了数据文件)
4、将三台mongodb服务起来
5、问题节点的mongodb数据库会从另外一个节点同步过来
同步过程中的日志记录:
同步中:

2020-06-30T19:48:44.023+0800 I -        [repl writer worker 7]   cmdb.cc_OperationLog collection clone progress: 16253350/47188084 34% (documents copied)

同步完成

2020-06-30T20:14:24.825+0800 I STORAGE  [replication-28] Finishing collection drop for local.temp_oplog_buffer (259eb844-9e40-48d4-92c3-e7a65e6c7ae0).
2020-06-30T20:14:24.830+0800 I REPL     [replication-28] initial sync done; took 2245s.
2020-06-30T20:14:24.830+0800 I REPL     [replication-28] transition to RECOVERING from STARTUP2
2020-06-30T20:14:24.830+0800 I REPL     [replication-28] Starting replication fetcher thread
2020-06-30T20:14:24.830+0800 I REPL     [replication-28] Starting replication applier thread
2020-06-30T20:14:24.830+0800 I REPL     [replication-28] Starting replication reporter thread
2020-06-30T20:14:24.830+0800 I REPL     [rsBackgroundSync] could not find member to sync from
2020-06-30T20:14:24.831+0800 I REPL     [rsSync] transition to SECONDARY from RECOVERING
2020-06-30T20:14:34.835+0800 I REPL     [rsBackgroundSync] sync source candidate: 10.10.10.2:110
2020-06-30T20:14:34.837&
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值