Управление узлами репликации

Оператор ALTER CLUSTER <cluster_name> UPDATE nodes обновляет списки узлов на каждом узле в указанном кластере, чтобы включить все активные узлы кластера. Для получения дополнительной информации о списках узлов см. Присоединение к кластеру.

‹›
  • SQL
  • JSON
  • PHP
  • Python
  • Python-asyncio
  • javascript
  • Java
  • C#
  • Rust
📋
ALTER CLUSTER posts UPDATE nodes
‹›
Response
{u'error': u'', u'total': 0, u'warning': u''}

Если включены аутентификация и авторизация, команды ALTER CLUSTER ... UPDATE nodes, ALTER CLUSTER ... ADD и ALTER CLUSTER ... DROP используют сохраненного пользователя кластера. Чтобы изменить сохраненного пользователя кластера, выдайте новому пользователю право replication и выполните:

ALTER CLUSTER posts UPDATE user 'repl_user'

Новый сохраненный пользователь должен быть подготовлен с совпадающими данными аутентификации на узлах, которые будут участвовать в последующих операциях кластера. Эти операции завершатся сбоем, если сохраненный пользователь отсутствует, имеет другие данные аутентификации или лишится права replication.

Например, при первоначальном создании кластера список узлов, используемых для повторного присоединения к кластеру, был 10.10.0.1:9312,10.10.1.1:9312. С тех пор к кластеру присоединились другие узлы, и теперь активными узлами являются 10.10.0.1:9312,10.10.1.1:9312,10.15.0.1:9312,10.15.0.3:9312. Однако список узлов, используемых для повторного присоединения к кластеру, не был обновлен.

Чтобы исправить это, можно выполнить оператор ALTER CLUSTER ... UPDATE nodes, чтобы скопировать список активных узлов в список узлов, используемых для повторного присоединения к кластеру. После этого список узлов, используемых для повторного присоединения к кластеру, будет включать все активные узлы кластера.

Оба списка узлов можно просмотреть с помощью оператора Статус кластера (cluster_post_nodes_set и cluster_post_nodes_view).

Удаление узла из кластера

Чтобы удалить узел из кластера репликации, выполните следующие шаги:

  1. Остановите узел
  2. Удалите информацию о кластере из файла <data_dir>/manticore.json (обычно /var/lib/manticore/manticore.json) на остановленном узле.
  3. Выполните ALTER CLUSTER cluster_name UPDATE nodes на любом другом узле.

После этих шагов другие узлы забудут об отсоединенном узле, а отсоединенный узел забудет о кластере. Это действие не повлияет на таблицы в кластере или на отсоединенном узле.

EXIT CLUSTER

EXIT CLUSTER <cluster_name> — это онлайн-эквивалент описанного выше ручного процесса отсоединения. Он удаляет локальный узел из кластера репликации, сохраняет локальные таблицы нетронутыми в качестве обычных локальных таблиц, сохраняет локальную конфигурацию, а затем просит оставшиеся узлы обновить свои сохраненные списки узлов с помощью существующего механизма ALTER CLUSTER ... UPDATE nodes.

EXIT CLUSTER posts

Используйте EXIT CLUSTER, когда хотите отсоединить только текущий узел. Используйте DELETE CLUSTER, когда хотите удалить кластер со всех узлов.

EXIT CLUSTER разрешен только для работоспособного локального узла в первичном кластере. Если команда возвращает предупреждение, локальное отсоединение уже выполнено, но может потребоваться дополнительное завершение. В этом случае выполните ALTER CLUSTER <cluster_name> UPDATE nodes на любом оставшемся узле, чтобы завершить обновление оставшихся метаданных кластера.

Если после EXIT CLUSTER оставшаяся сторона превращается в чистый кластер из одного узла, она остаётся кластером репликации. После корректного завершения работы этот оставшийся узел можно запускать обычным образом, и он должен вернуться в состояние primary / synced; в этом случае для самого себя --new-cluster не нужен.

Last modified: June 30, 2026