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.peerсодержит URI экземпляра n, например, 127.0.0.1:3302. Подробнее см. в разделе Мониторинг набора реплик.
Разница между локальным временем экземпляра 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.statusC статус репликации для 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'. См. также деградированное состояние.