error RS102 too stale to catch up
google之后,看到很多文章都指向了oplogSize大小.
官方文档 Resyncing a Very Stale Replica Set Member 也告诉了问题所在,OPLOG。OPLOG 是用于 Replica Set的 PRIMARY 和 SECONDARY 之间同步数据的系统 COLLECTION。OPLOG 的数据大小是有峰值的,64 位机器默认为 ~19G ,通过 db.printReplicationInfo()* 可以查看到。
大概操作步骤如下:
1 设置oplogSize=20000,我这里是将启动参数设置在配制文件里面,所以第一步就是修改配置文件添加op参数大小。
2 stop server,停止secondary服务。
3 物理删除secondary服务下数据文件目录所有的数据文件
4 start server
5 登陆secondary,检查 db.printReplicationInfo(); oplog的大小。
6 登陆primary server check, rs.status(); check同步状况。