Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

replication

Раздел replication функции box.info() — это таблица со статистикой по всем экземплярам в наборе реплик, к которому принадлежит текущий экземпляр. Пример см. в разделе Мониторинг набора реплик.

Далее n — порядковый номер элемента таблицы, например, replication[1], содержащего данные об экземпляре сервера номер 1, который может как совпадать с текущим экземпляром, так и не совпадать (под «текущим экземпляром» понимается экземпляр, отвечающий на box.info).

  • replication[{n}].id — короткий числовой идентификатор экземпляра n в наборе реплик. Это значение хранится в системном спейсе box.space._cluster.

  • replication[{n}].uuid — глобально уникальный идентификатор экземпляра n. Это значение хранится в системном спейсе box.space._cluster.

  • replication[{n}].lsnномер последовательности в журнале (LSN) для последней записи в журнале предзаписи (WAL) экземпляра n.

  • replication[{n}].name — имя экземпляра. См. также: box_info_name.

  • replication[{n}].upstream появляется (не равно nil), если текущий экземпляр следует за экземпляром n или намеревается это делать. Обычно это означает, что replication[{n}].upstream.status = follow, replication[{n}].upstream.peer = URL экземпляра n, за которым ведется следование, replication[{n}].lag and idle = скорость экземпляра, описываемая далее. Иначе говоря, replication[{n}].upstream появляется, когда replication[{n}].upstream.peer не принадлежит текущему экземпляру, не является read-only и был указан в box.cfg{replication={...}}, поэтому отображается в box.cfg.replication.

  • replication[{n}].upstream.status — статус репликации соединения с экземпляром n:

    • connect — экземпляр подключается к мастеру.
    • auth — выполняется аутентификация.
    • wait_snapshot: экземпляр получает метаданные от мастера. Если на этом этапе присоединение завершается с некритической ошибкой (например, ER_READONLY, ER_ACCESS_DENIED или проблемой с сетью), экземпляр пытается найти новый мастер для присоединения.
    • fetch_snapshot — экземпляр получает данные из файлов .snap мастера.
    • final_join — экземпляр получает новые данные, добавленные во время fetch_snapshot.
    • sync — мастер и реплика синхронизируются для достижения одинаковых данных.
    • follow — роль текущего экземпляра — реплика. Это означает, что экземпляр доступен только для чтения или выступает в роли реплики для этого удаленного узла в конфигурации мастер-мастер. Экземпляр получает или может получать данные от мастера (upstream) экземпляра n.
    • stopped — репликация остановлена из-за ошибки репликации (например, дублирование ключа).
    • disconnected — экземпляр не подключен к набору реплик (например, из-за проблем с сетью, а не из-за ошибок репликации).

    Подробнее см. в разделе Этапы репликации.

replication[{n}].upstream.idle

Время (в секундах) с момента получения последнего события. Это основной индикатор состояния репликации. Подробнее см. в разделе Мониторинг набора реплик.

replication[{n}].upstream.lag

Разница между локальным временем экземпляра n, зафиксированным при получении события, и локальным временем другого мастера, зафиксированным при записи события в журнал предзаписи этого мастера. Подробнее см. в разделе Мониторинг набора реплик.

  • replication[{n}].upstream.message содержит сообщение об ошибке в случае деградированного состояния; в остальных случаях — nil.
  • replication[{n}].downstream появляется (не равно nil) с данными об экземпляре, который следует за экземпляром n или намеревается это делать. Обычно это означает, что replication[{n}].downstream.status = follow.
  • replication[{n}].downstream.vclock содержит векторные часы, представляющие собой таблицу пар 'id, lsn', например, vclock: {1: 3054773, 4: 8938827, 3: 285902018}. Обратите внимание, что таблица может содержать несколько пар, хотя vclock — имя в единственном числе.

Реплика также отправляет всю таблицу векторных часов в ответ на heartbeat-сообщение мастера. Примеры heartbeat-сообщений см. в разделе Бинарный протокол — репликация.

  • replication[{n}].downstream.idle — время (в секундах) с момента последней отправки событий экземпляром n через downstream-репликацию.
  • replication[{n}].downstream.status C статус репликации для downstream-репликации:
    • stopped означает, что downstream-репликация остановлена;
    • follow означает, что downstream-репликация выполняется (экземпляр n готов принимать данные от мастера или делает это в данный момент);
  • replication[{n}].downstream.lag — разница между локальным временем на узле мастера, зафиксированным при записи определенной транзакции в журнал предзаписи, и локальным временем, зафиксированным при получении подтверждения этой транзакции от реплики. Доступно с версии 2.10.0. Подробнее см. в разделе Мониторинг набора реплик.
  • replication[{n}].downstream.message и replication[{n}].downstream.system_message будут равны nil, если с соединением не возникло проблем. Например, если экземпляр n недоступен, можно увидеть status = 'stopped', message = 'unexpected EOF when reading from socket' и system_message = 'Broken pipe'. См. также деградированное состояние.