最近mongo主库因为宿主机有问题,需要下线。大概的方案如下:
1.原主库停写
2.原从库升级为主库
3.新增一台从库从新的主库同步数据
发现在第3步的时候,从库一直不能拉到主库的数据,查看从库日志报如下错误:
2019-11-21T16:34:10.970+0800 I REPL [replslave] local.oplog.$main oplog is empty
2019-11-21T16:34:10.970+0800 I REPL [replslave] syncing from host:10.61.102.117:27017
2019-11-21T16:34:10.981+0800 I REPL [replslave] sync: caught user assertion 4 Failed to apply delete due to missing _id: { ns: "admin.", op: "db" } while applying op: { ns: "admin.", op: "db" }
通过排查发现是原来的从库在升级为主库的时候没有指定角色为master导致,所以在主库的配置文件加:
master = true
问题解决