Перейти к содержанию

Удаление узлов

В данном разделе приведена информация об удалении узлов из кластера Picodata. Важно понимать, что просто остановка инстанса с помощью graceful shutdown (например, после нажатия Ctrl+C в консоли) завершит процесс инстанса, но не выведет его из кластера. Инстанс останется в кластере в состоянии Offline и cможет быть впоследствии перезапущен.

Для удаления узла из кластера следует использовать команду picodata expel, выполнение которой требует ввода пароля администратора (он должен быть задан через консоль администратора).

Использование expel

Общие сведения

Данная процедура позволяет исключить инстанс из состава кластера с сохранением данных.

Удаление активного инстанса

Для активного инстанса (в состоянии Online) процедура включает в себя:

  • автоматическое перераспределение данных инстанса между оставшимися узлами кластера
  • перевод инстанса из состояния Online в Expelled
  • автоматическое завершение работы процесса инстанса в ОС

Если перезапустить инстанс, который ранее был переведен в состояние Expelled, он уже не сможет присоединиться к кластеру снова.

### Примеры команд {: #usage_examples }

Команда picodata expel в самом простом виде требует только указания идентификатора (uuid) инстанса:

picodata expel <INSTANCE_UUID>

Узнать идентификатор можно из системной таблицы _pico_instance:

picodata> SELECT "name","uuid" FROM _pico_instance;
+------+----------------------------------------+
| name | uuid                                   |
+===============================================+
| "i1" | "2ed55750-034c-41ec-b627-c7e3fd77ca8d" |
|------+----------------------------------------|
| "i2" | "3ed7a231-808f-4f00-9ff4-0e3e68581df0" |
|------+----------------------------------------|
| "i3" | "cf1405bb-644a-4475-b243-f07d88213cfd" |
|------+----------------------------------------|
| "i4" | "0ee665e5-54bd-4911-b246-f714652e264c" |
|------+----------------------------------------|
| "i5" | "96e38675-30e7-4f0d-b8cf-72132a2aa726" |
+------+----------------------------------------

Соответственно, команда для исключения инстанса i5 будет выглядеть так:

picodata expel 96e38675-30e7-4f0d-b8cf-72132a2aa726

Минимальный формат команды сработает, если:

  • имя кластера не было переопределено (по умолчанию, это demo)
  • на текущем хосте выполняется инстанс со стандартным значением параметра listen, который по умолчанию равен значению параметра peer

Соответственно, на практике может потребоваться явно указать имя кластера и/или задать сетевой адрес какого-либо из действующих инстансов (peer):

picodata expel <INSTANCE_UUID> --cluster-name=<CLUSTER_NAME> --peer=<[HOST][:PORT]>

С помощью picodata expel можно удалить любой узел кластера, в том числе и единственный.

См. также: