box.info.replication
-
box.info.
replication
¶ Раздел replication (репликация) во вложенном модуле
box.info()
содержит статистику по всем экземплярам в наборе реплик относительно текущего экземпляра (см. также «Мониторинг набора реплик»):Далее n – это индексный номер одного элемента таблицы, например,
replication[1]
, который содержит данные о экземпляре сервера номер 1, который может быть или не быть тем же самым, что и текущий экземпляр («текущий экземпляр» – это тот, что отвечает наbox.info
).replication[n].id
– это короткий числовой идентификатор экземпляра в наборе реплик. Данное значение хранится в системном спейсе box.space._cluster.replication[n].uuid
– это глобально-уникальный идентификатор экземпляра. Данное значение хранится в системном спейсе box.space._cluster.replication[n].lsn
– это номер в журнале (LSN) для последней записи в журнале упреждающей записи (WAL) экземпляра n.replication[n].upstream
возникает (т.е. не nil), если текущий экземпляр принимает или готов принимать данные от экземпляра n, что обычно означаетreplication[n].upstream.status
=follow
,replication[n].upstream.peer
= url экземпляра n, который отдает данные,replication[n].lag и idle
= скорость экземпляра, описанная позже. По-другому можно сказать, чтоreplication[n].upstream
возникает, когдаreplication[n].upstream.peer
не принадлежит текущему экземпляру, не является доступным только для чтения и был указан вbox.cfg{replication={...}}
, поэтому он показан в box.cfg.replication.replication[n].upstream.status
– это репликационный статус экземпляра:auth
означает, что экземпляр проходит аутентификацию.connecting
означает, что происходит подключение.disconnected
означает, что экземпляр не подключен к набору реплик (по причине проблем в сети, а не ошибок репликации).follow
означает, что текущий экземпляр является репликой (только для чтения, или не только для чтения, но ведет себя как реплика для этого удаленного URI в конфигурации master-master) и получает или может получать данные от мастера экземпляра n (upstream).stopped
означает, что репликация остановилась по причине ошибки репликации (например, повторяющийся ключ).sync
означает, что мастер и реплика в данный момент синхронизируются для получения одинакового набора данных.
replication[n].upstream.idle
– это время (в секундах) с момента получения последнего события. Это основной индикатор работоспособности репликации. Подробности в Monitoring a replica set.
replication[n].upstream.peer
содержит URI экземпляра n, например 127.0.0.1:3302. Более подробную информацию см. в разделе Мониторинг набора реплик.
replication[n].upstream.lag
– это разница во времени между локальным временем на экземпляре n, зарегистрированным при получении события, и локальное время на другом мастере, зарегистрированное при записи события в журнал упреждающей записи на этом мастере. Более подробную информацию см. в разделе Мониторинг набора реплик.replication[n].upstream.message
содержит сообщение об ошибке в случае системного сбоя, в противном случае – nil.replication[n].downstream
appears (is not nil) with data about an instance that is following instance n or is intending to follow it, which ordinarily meansreplication[n].downstream.status
=follow
.replication[n].downstream.vclock
содержит векторные часы, которые представляют собой таблицу из пар „id, lsn“, напримерvclock: {1: 3054773, 4: 8938827, 3: 285902018}
(Обратите внимание, что таблица может иметь несколько пар, хотя vclock - это единственное имя).Даже если экземпляр удален, его значения все равно появятся здесь; однако, его значения будут переопределены, если позже экземпляр присоединится с тем же UUID. Пары векторных часов будут появляться только если
lsn > 0
.replication[n].downstream.vclock
может быть таким же, как и vclock текущего экземпляра (box.info.vclock
), потому что все значения vclock в кластере известны. Мастер будет знать, что находится в копии vclock реплики, потому что, когда мастер делает изменение данных, он посылает информацию об изменении на реплику (включая векторные часы мастера), и реплика отвечает тем, что находится в ее таблице векторных часов.Также реплика отправляет всю свою таблицу векторных часов в ответ на сообщение контрольного сигнала мастера (heartbeat message), их примеры можно найти в разделе Бинарный протокол – репликация.
replication[n].downstream.idle
– это время (в секундах) с момента последней отправки событий экземпляром n через downstream-репликацию.replication[n].downstream.status
– это статус для downstream-репликации:stopped
означает, что downstream-репликация остановлена,follow
означает, что downstream-репликация находится в процессе (экземпляр n готов принимать данные от мастера или уже делает это).
replication[n].downstream.lag
is the time difference between the local time at the master node, recorded when a particular transaction was written to the write ahead log, and the local time recorded when it receives an acknowledgement for this transaction from a replica. Since version 2.10.0. See more in Monitoring a replica set.replication[n].downstream.message
andreplication[n].downstream.system_message
will benil
unless a problem occurs with the connection. For example, if instance n goes down, then one may seestatus = 'stopped'
,message = 'unexpected EOF when reading from socket'
, andsystem_message = 'Broken pipe'
. See also degraded state.
For better understanding, see the following diagram illustrating the
upstream
anddownstream
connections within the replica set of three instances: