Удаление узлов¶
В данном разделе приведена информация об удалении узлов из кластера
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 можно удалить любой узел кластера, в том числе и единственный.
См. также: