У меня есть производственный кластер MongoDb с 2.6.5, который я недавно перенес из двух-трех осколков. Я работала как два осколка примерно на год. Каждый осколок представляет собой набор реплик с 3 серверами, и у меня есть одна коллекция. Осколок коллекции около 240G, и с новым осколком я теперь равномерно распределены куски 2922 на каждый осколок. Моя производственная среда работает очень хорошо. Нет проблем с доступом к данным.
[Примечание: 1461 должно быть числом кусков, перемещенных из rs0 и shard1, чтобы сделать 2922 на shard2.]
Мое намерение заключалось в том, чтобы очертить еще три коллекции, поэтому я начал с одного и ожидал, что он распространится по осколкам. Но нет - я закончил с этой повторяющейся ошибкой:
2014-10-29T20: 26: 35.374 + 0000 [Балансировка] moveChunk результат: {причина: {ok: 0.0, errmsg: "не может принимать новые куски, потому что все еще 1461 удалений из предыдущей миграции" },
ok: 0.0, errmsg: "moveChunk не смог задействовать TO-shard при передаче данных: не может принимать новые куски, потому что еще осталось 1461 удалений из предыдущей миграции" }
2014-10-29T20: 26: 35.375 + 0000 [Балансир] перемещение балансира не удалось: {причина: {ok: 0.0, errmsg: "не может принимать новые куски, потому что все еще 1461 удалений из предыдущей миграции" },
ok: 0.0, errmsg: "moveChunk не смог задействовать TO-shard в передаче данных: не может принимать новые куски, потому что все еще 1461 удалений из предыдущей миграции" } from: rs0 to: shard1 chunk: min: { account_id: MinKey} max: {account_id: -9218254227106808901}
С небольшим исследованием я решил, что должен просто дать ему некоторое время, так как, очевидно, ему нужно очистить вещи после переезда. Я запустил sh.disableBalancing( "collection-name" ), чтобы остановить ошибки от попыток очертить новую коллекцию. sh.getBalancerState показывает true, как и sh.isBalancerRunning. Однако я дал ему 24 часа, и сообщение об ошибке одно и то же. Я бы подумал, что он очистил бы/удалил бы хотя бы 1 из 1461, который нужно удалить.
- Это обычное поведение сейчас в мире 2.6? Должен ли я обрабатывать все мои собранные коллекции каждый раз, когда я выращиваю окружающую среду другим осколком?
- Любая идея, как получить эту очистку? или я должен просто уйти из основного на shard1, что кажется проблемой?
- Если я уйду из основного, у меня все еще есть файлы для удаления/очистки в любом случае? Или это позаботится о вещах, чтобы я мог начать собирать новые коллекции?
Заранее благодарим за любые идеи.