Понимание статуса кластера и состояний узлов

Краткая справка

Статус кластера показывает два ключевых значения, которые помогают понять состояние кластера:

  • cluster_%_status - может ли кластер принимать записи
  • cluster_%_node_state - что делает этот конкретный узел

Значения статусов

‹›
  • SQL
SQL
📋
SHOW STATUS LIKE 'cluster_%_status';
SHOW STATUS LIKE 'cluster_%_node_state';
‹›
Response
+----------------------------+-------+
| Counter                    | Value |
+----------------------------+-------+
| cluster_posts_status       | primary |
| cluster_posts_node_state   | synced |
+----------------------------+-------+

cluster_%_status

  • primary - нормальная работа, можно читать и записывать
  • non-primary - потерян кворум, запись заблокирована
  • disconnected - узел изолирован, пытается переподключиться

cluster_%_node_state

  • synced - нормальная работа
  • joining - узел присоединяется к кластеру (временно)
  • donor - помогает другому узлу присоединиться (временно)
  • closed - узел остановлен
  • destroyed - узел упал, требуется перезапуск

Типичные сценарии

Что произошло cluster_%_status cluster_%_node_state Что делать
Нормальная работа primary synced Ничего
Большинство узлов недоступно non-primary synced Инициализировать заново или ждать
Узел запускается disconnected joiningsynced Ждать
Узел упал varies destroyed Перезапустить узел
Сетевая изоляция (большинство) primary synced Продолжать работу как обычно
Сетевая изоляция (меньшинство) non-primary synced Ждать или инициализировать заново

Восстановление после потери кворума

Когда большинство узлов недоступно и статус показывает non-primary:

‹›
  • SQL
  • JSON
📋
-- Check which node has highest sequence number
SHOW STATUS LIKE 'cluster_%_last_committed';
-- Bootstrap the cluster (run on best node only)
SET CLUSTER posts GLOBAL 'pc.bootstrap' = 1;
‹›
Response
+----------------------------+-------+
| Counter                    | Value |
+----------------------------+-------+
| cluster_posts_last_committed | 1547 |
+----------------------------+-------+
Last modified: September 01, 2026