У меня была такая же проблема, и я решил ее с помощью 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 мертвы и находятся в другой сети. Они были изменены на 0,91 и 0,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
Очистка должна выполняться на всех узлах, один за другим, чтобы убедиться, что изменение полностью учтено.