作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
设置:具有 5 个节点的副本集,版本 3.4.5。
尝试使用 rs.stepDown(60, 30) 切换 PRIMARY 但始终收到错误:
rs0:PRIMARY> rs.stepDown(60, 30)
{
"ok" : 0,
"errmsg" : "No electable secondaries caught up as of 2017-07-11T00:21:11.205+0000. Please use {force: true} to force node to step down.",
"code" : 50,
"codeName" : "ExceededTimeLimit"
}
但是,在并行终端中运行的 rs.printSlaveReplicationInfo() 确认所有副本均已完全 catch :
rs0:PRIMARY> rs.printSlaveReplicationInfo()
source: X.X.X.X:27017
syncedTo: Tue Jul 11 2017 00:21:11 GMT+0000 (UTC)
0 secs (0 hrs) behind the primary
source: X.X.X.X:27017
syncedTo: Tue Jul 11 2017 00:21:11 GMT+0000 (UTC)
0 secs (0 hrs) behind the primary
source: X.X.X.X:27017
syncedTo: Tue Jul 11 2017 00:21:11 GMT+0000 (UTC)
0 secs (0 hrs) behind the primary
source: X.X.X.X:27017
syncedTo: Tue Jul 11 2017 00:21:11 GMT+0000 (UTC)
0 secs (0 hrs) behind the primary
我做错了什么吗?
UPD:我在rs.stepDown
之前和期间检查了长时间运行的操作。正如下面所建议的,它看起来像这样:
# Before rs.stepDown
$ watch "mongo --quiet --eval 'JSON.stringify(db.currentOp())' | jq -r '.inprog[] | \"\(.secs_running) \(.desc) \(.op)\"' | sort -rnk1"
984287 rsSync none
984287 ReplBatcher none
67 WT RecordStoreThread: local.oplog.rs none
null SyncSourceFeedback none
null NoopWriter none
0 conn615153 command
0 conn614948 update
0 conn614748 getmore
...
# During rs.stepDown
984329 rsSync none
984329 ReplBatcher none
108 WT RecordStoreThread: local.oplog.rs none
16 conn615138 command
16 conn615136 command
16 conn615085 update
16 conn615079 insert
...
基本上,长时间运行的用户操作似乎是由于 rs.stepDown()
发生的。如secs_running
一旦 PRIMARY
变为非零尝试切换并一直增长,直到 stepDown
失败。然后一切恢复正常。
关于为什么会发生这种情况以及这是否正常有什么想法吗?
最佳答案
我已使用以下命令降级到辅助
db.adminCommand( { replSetStepDown: 120, secondaryCatchUpPeriodSecs: 15, force: true } )
您可以在下面的 mongodb 官方文档中找到它
https://docs.mongodb.com/manual/reference/command/replSetStepDown/
关于MongoDB主降压不成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45023574/
如何指定平台链接器标志: 安卓 Mac OS X x86_64 Linux x86_64 在一个 cxx_library 目标中? 最佳答案 像这样的东西: platform_linker_flags
在我的站点中,我有两个 div - 右侧和左侧。两者都包含在包装器 div 中。这是我的代码: #wrapper{ width:1000px; height:750px; m
我是一名优秀的程序员,十分优秀!