Перейти к основному содержимому
Перейти к основному содержимому

system.replicas

Содержит информацию и статус для реплицированных таблиц, находящихся на локальном сервере. Эта таблица может быть использована для мониторинга. Таблица содержит строку для каждой таблицы Replicated*.

Пример:

Столбцы:

  • database (String) - Имя базы данных
  • table (String) - Имя таблицы
  • engine (String) - Имя движка таблицы
  • is_leader (UInt8) - Является ли реплика лидером. Несколько реплик могут быть лидерами одновременно. Реплику можно предотвратить от становления лидером с помощью настройки merge_tree replicated_can_become_leader. Лидеры отвечают за планирование фоновых слияний. Обратите внимание, что записи могут выполняться в любую доступную реплику, которая имеет сессию в ZK, независимо от того, является ли она лидером.
  • can_become_leader (UInt8) - Может ли реплика быть лидером.
  • is_readonly (UInt8) - Находится ли реплика в режиме только для чтения. Этот режим включается, если в конфигурации нет секций с ClickHouse Keeper, если произошла неизвестная ошибка при повторной инициализации сессий в ClickHouse Keeper, и во время повторной инициализации сессии в ClickHouse Keeper.
  • is_session_expired (UInt8) - сессия с ClickHouse Keeper истекла. По сути, то же самое, что и is_readonly.
  • future_parts (UInt32) - Количество частей данных, которые появятся в результате INSERT'ов или слияний, которые еще не выполнены.
  • parts_to_check (UInt32) - Количество частей данных в очереди на проверку. Часть помещается в очередь на проверку, если есть подозрение, что она может быть повреждена.
  • zookeeper_path (String) - Путь к данным таблицы в ClickHouse Keeper.
  • replica_name (String) - Имя реплики в ClickHouse Keeper. У разных реплик одной и той же таблицы разные имена.
  • replica_path (String) - Путь к данным реплики в ClickHouse Keeper. То же самое, что и конкатенация 'zookeeper_path/replicas/replica_path'.
  • columns_version (Int32) - Номер версии структуры таблицы. Указывает, сколько раз было выполнено изменение (ALTER). Если у реплик разные версии, это означает, что некоторые реплики еще не выполнили все изменения (ALTER).
  • queue_size (UInt32) - Размер очереди для операций, ожидающих выполнения. Операции включают вставку блоков данных, слияния и некоторые другие действия. Обычно совпадает с future_parts.
  • inserts_in_queue (UInt32) - Количество вставок блоков данных, которые необходимо выполнить. Вставки обычно реплицируются довольно быстро. Если это число велико, это означает, что что-то не так.
  • merges_in_queue (UInt32) - Количество слияний, ожидающих выполнения. Иногда слияния занимают много времени, поэтому это значение может оставаться больше нуля долгое время.
  • part_mutations_in_queue (UInt32) - Количество мутаций, ожидающих выполнения.
  • queue_oldest_time (DateTime) - Если queue_size больше 0, показывает, когда была добавлена самая старая операция в очередь.
  • inserts_oldest_time (DateTime) - См. queue_oldest_time
  • merges_oldest_time (DateTime) - См. queue_oldest_time
  • part_mutations_oldest_time (DateTime) - См. queue_oldest_time

Следующие 4 столбца имеют ненулевое значение только тогда, когда есть активная сессия с ZK.

  • log_max_index (UInt64) - Максимальный номер записи в журнале общей активности.
  • log_pointer (UInt64) - Максимальный номер записи в журнале общей активности, который реплика скопировала в свою очередь выполнения, плюс один. Если log_pointer значительно меньше log_max_index, что-то не так.
  • last_queue_update (DateTime) - Когда очередь была обновлена в последний раз.
  • absolute_delay (UInt64) - Насколько велико отставание в секундах у текущей реплики.
  • total_replicas (UInt8) - Общее количество известных реплик данной таблицы.
  • active_replicas (UInt8) - Количество реплик данной таблицы, которые имеют сессию в ClickHouse Keeper (т.е. количество функционирующих реплик).
  • lost_part_count (UInt64) - Количество частей данных, потерянных в таблице всеми репликами в общем с момента создания таблицы. Значение хранится в ClickHouse Keeper и может лишь увеличиваться.
  • last_queue_update_exception (String) - Когда очередь содержит поврежденные записи. Особенно важно, когда ClickHouse нарушает обратную совместимость между версиями, и записи журнала, записанные более новыми версиями, не могут быть обработаны старыми версиями.
  • zookeeper_exception (String) - Сообщение о последнем исключении, полученное, если произошла ошибка при получении информации из ClickHouse Keeper.
  • replica_is_active (Map(String, UInt8)) — Отображение между именем реплики и активна ли реплика.

Если вы запрашиваете все столбцы, таблица может работать немного медленнее, поскольку для каждой строки выполняются несколько чтений из ClickHouse Keeper. Если вы не запрашиваете последние 4 столбца (log_max_index, log_pointer, total_replicas, active_replicas), таблица работает быстро.

Например, вы можете проверить, что все работает корректно следующим образом:

Если этот запрос не возвращает ничего, это означает, что все в порядке.