【发布时间】:2013-12-19 15:14:09
【问题描述】:
我们设置了两个 mongodb 分片。每个 shard 包含一个 master、一个 slave、一个 24h slave delay slave 和一个 arbiter。 然而,平衡器无法迁移任何等待延迟从属迁移的分片。 我尝试在平衡器配置中将 _secondaryThrottle 设置为 false,但我仍然遇到问题。
迁移似乎持续了一天然后失败(大量等待日志中的从属消息)。最终它放弃并开始新的迁移。消息说正在等待 3 个从站,但是延迟从站是隐藏的并且优先级为 0,因此它应该等待那个。如果 _secondaryThrottle 工作,它不应该等待任何奴隶吗?
几个月来一直这样,所以配置应该已经在所有 mongoses 上重新加载。一些运行平衡器的 mongoses 最近已经重新启动。
有没有人知道如何解决这个问题,在启动延迟从站之前我们没有这些问题,但这只是我们的理论。
配置:
{ "_id" : "balancer", "_secondaryThrottle" : false, "stopped" : false }
来自 shard1 主进程的日志:
[migrateThread] 警告:迁移提交等待 3 个从属 'xxx.xxx' { shardkey: ObjectId('4fd2025ae087c37d32039a9e') } -> {shardkey: ObjectId('4fd2035ae087c37f04014a79') } 等待: 529dc9d9:7a [migrateThread] 等待复制赶上之前 进入临界区
来自 shard2 主进程的日志:
12 月 3 日星期二 14:52:25.302 [conn1369472] moveChunk 数据传输 进度:{活动:true,ns:“xxx.xxx”,来自: "shard2/mongo2:27018,mongob2:27018", min: { shardkey: ObjectId('4fd2025ae087c37d32039a9e') },最大值:{ shardkey: ObjectId('4fd2035ae087c37f04014a79') }, shardKeyPattern: { shardkey: 1.0 }, state: "catchup", counts: { cloned: 22773, clonedBytes: 36323458, catchup: 0, stable: 0 }, ok: 1.0 } my mem used: 0
更新: 我确认删除 slaveDelay 使平衡器再次工作。一旦他们加快速度,大块就移动了。所以问题似乎与slaveDelay有关。我还确认平衡器以“secondaryThrottle”运行:false。无论如何,它似乎确实在等待奴隶。
分片2:
12 月 10 日星期二 11:44:25.423 [migrateThread] 警告:迁移提交等待 'xxx.xxx' { shardkey: ObjectId('4ff1213ee087c3516b2f703f') } -> { shardkey: ObjectId('4ff12a5eddf2b32dff1e7bea') }等待:52a6f089:81
Tue Dec 10 11:44:26.423 [migrateThread] 在进入临界区之前等待复制赶上
Tue Dec 10 11:44:27.423 [migrateThread] 在进入临界区之前等待复制赶上
Tue Dec 10 11:44:28.423 [migrateThread] 在进入临界区之前等待复制赶上
Tue Dec 10 11:44:29.424 [migrateThread] 在进入临界区之前等待复制赶上
Tue Dec 10 11:44:30.424 [migrateThread] 在进入临界区之前等待复制赶上
Tue Dec 10 11:44:31.424 [migrateThread] 在进入临界区之前等待复制赶上
12 月 10 日星期二 11:44:31.424 [migrateThread] 迁移提交成功刷新到“xxx.xxx”的辅助节点 { shardkey: ObjectId('4ff1213ee087c3516b2f703f') } -> { shardkey: ObjectId('4ff12a5eddf2b32dff1e7bea') }
12 月 10 日星期二 11:44:31.425 [migrateThread] 迁移提交刷新到日志以获取 'xxx.xxx' { shardkey: ObjectId('4ff1213ee087c3516b2f703f') } -> { shardkey: ObjectId('4ff12a5eddf2b32dff1e7bea') }
12 月 10 日星期二 11:44:31.647 [migrateThread] migrate 提交成功刷新到 'xxx.xxx' { shardkey: ObjectId('4ff1213ee087c3516b2f703f') } -> { shardkey: ObjectId('4ff12a5eddf2b32dff1e7bea') }
12 月 10 日星期二 11:44:31.667 [migrateThread] 迁移提交刷新到日志,用于 'xxx.xxx' { shardkey: ObjectId('4ff1213ee087c3516b2f703f') } -> { shardkey: ObjectId('4ff12a5eddf2b32dff1e7bea') }
【问题讨论】:
标签: mongodb database-replication