Прежде всего, спасибо, что уделили мне время, чтобы прочитать этот вопрос!
Я тестирую обновление с mon go 2.4 до версии 3 (я успешно обновился до 2.6). Проблема заключается в одном шаге до обновления двоичных файлов, я хочу иметь проверку метаданных для каждого узла моей реплики, которая сегментирована, как описано в обновить сегментированный кластер
Я отключил балансировщик и кажется, что он успешно отключен:
mongos> sh.getBalancerState()
false
Статус сегментирования:
mongos> sh.status()
--- Sharding Status ---
sharding version: {
"_id" : 1,
"minCompatibleVersion" : 5,
"currentVersion" : 6,
"clusterId" : ObjectId("5eebbde828374ced0f5e432c")
}
shards:
{ "_id" : "test_rs1", "host" : "test_rs1/mongodb01:27017,mongodb02:27017,mongodb03:27017" }
balancer:
Currently enabled: no
Currently running: no
Failed balancer rounds in last 5 attempts: 0
Migration Results for the last 24 hours:
No recent migrations
databases:
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "test", "partitioned" : false, "primary" : "test_rs1" }
Как видите, балансировщик в настоящее время не работает. В любом случае, если я попробую, обновление метаданных будет успешным для узла 01, но не для двух других:
root@mongodb01 tmp]# ./mongos30Up --configdb mongodb02 --upgrade
2020-06-18T21:08:49.706+0000 W SHARDING running with 1 config server should be done only for testing purposes and is not recommended for production
2020-06-18T21:08:49.708+0000 I CONTROL ** WARNING: You are running this process as the root user, which is not recommended.
2020-06-18T21:08:49.708+0000 I CONTROL
2020-06-18T21:08:49.708+0000 I SHARDING [mongosMain] MongoS version 3.0.15 starting: pid=11224 port=27017 64-bit host=mongodb01 (--help for usage)
2020-06-18T21:08:49.708+0000 I CONTROL [mongosMain] db version v3.0.15
2020-06-18T21:08:49.708+0000 I CONTROL [mongosMain] git version: b8ff507269c382bc100fc52f75f48d54cd42ec3b
2020-06-18T21:08:49.708+0000 I CONTROL [mongosMain] build info: Linux ip-10-35-227-214 2.6.32-220.el6.x86_64 #1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64 BOOST_LIB_VERSION=1_49
2020-06-18T21:08:49.708+0000 I CONTROL [mongosMain] allocator: tcmalloc
2020-06-18T21:08:49.708+0000 I CONTROL [mongosMain] options: { sharding: { configDB: "mongodb02" }, upgrade: true }
2020-06-18T21:08:49.714+0000 E - [mongosMain] error upgrading config database to v6 :: caused by :: balancer must be stopped for config upgrade
Как видите, не работает из-за балансировщика! тот же случай для узла 03 ...
Есть подсказка?
РЕДАКТИРОВАТЬ: (Добавлен bash скрипт)
#!/bin/bash
# Run the metadata for all DB's.
# VARS
MONGOS_BIN='./mongos30Up'
MONGO1='mongodb01'
MONGO2='mongodb02'
MONGO3='mongodb03'
#Give exec permission
`chmod 0100 $MONGOS_BIN`
## Start the metadatata upgrade.
$MONGOS_BIN --configdb $MONGO1 --upgrade
$MONGOS_BIN --configdb $MONGO2 --upgrade
$MONGOS_BIN --configdb $MONGO3 --upgrade