У меня была та же проблема, и я решил ее с помощью removenode
, который не требует от вас поиска и изменения токена узла.
Сначала получите UUID узла:
nodetool status
DN 192.168.56.201 ? 256 13.1% 4fa4d101-d8d2-4de6-9ad7-a487e165c4ac r1
DN 192.168.56.202 ? 256 12.6% e11d219a-0b65-461e-babc-6485343568f8 r1
UN 192.168.2.91 156.04 KB 256 12.4% e1a33ed4-d613-47a6-8b3b-325650a2bbd4 RAC1
UN 192.168.2.92 156.22 KB 256 13.6% 3a4a086c-36a6-4d69-8b61-864ff37d03c9 RAC1
UN 192.168.2.93 149.6 KB 256 11.3% 20decc72-8d0a-4c3b-8804-cc8bc98fa9e8 RAC1
Как видите, .201 и .202 мертвы и находятся в другой сети. Они были изменены на .91 и .92 без надлежащего вывода из эксплуатации и повторного ввода в эксплуатацию. Я работал над установкой сети и сделал несколько ошибок...
Во-вторых, удалите .201 с помощью следующей команды:
nodetool removenode 4fa4d101-d8d2-4de6-9ad7-a487e165c4ac
(в старых версиях это было nodetool remove ...
)
Но, как и для nodetool removetoken ...
, он блокирует... (см. комментарий samarth в ответе psandord). Однако у него есть побочный эффект: он помещает этот UUID в список узлов, которые нужно удалить. Итак, затем мы можем принудительно удалить с помощью:
nodetool removenode force
(в старых версиях это было nodetool remove ...
)
Теперь узел принимает команду и сообщает мне, что он удаляет недопустимую запись:
RemovalStatus: удаление токена (-9136982325337481102). Ожидание подтверждения репликации от [/192.168.2.91,/192.168.2.92].
Мы также видим, что он связывается с двумя другими узлами, которые работают, и поэтому это занимает немного времени, но все же довольно быстро.
Далее nodetool status
не показывает узел .201. Повторяю с .202 и теперь состояние чистое.
После этого вы также можете запустить очистку, как указано в ответе psanford:
nodetool cleanup
Очистку следует запускать на всех узлах один за другим, чтобы убедиться, что изменение полностью учтено.
person
Alexis Wilke
schedule
31.10.2014