Какое отставание MySQL Slave от MySQL master считать проблемным?
Привет.
Для SHOW SLAVE STATUS запроса MySQL, выполняемого на Slave экземпляре, отдаются метрики SQL_Delayи SQL_Remaining_Delay.
Вопрос 1:
Прав ли я в понимании этих метрик: SQL_Delayопределяет количество времени отставания в секундах, а SQL_Remaining_Delay- количество времени, в течение которого такое отставание будет считаться нормальным?
Иначе говоря - SQL_Remaining_Delay= X- SQL_Delay?
Если так, то
Вопрос 2:
Каким образом определяется X? Это значение расчитывается каким-то образом под капотом сервиса, или оно имеет default значение, или оно задается вручную администратором БД?
Вопрос 3:
Как это значение X получить, или на что ориентироваться при его определении?
The number of seconds that the replica must lag the source.
SQL_Remaining_Delay
When Replica_SQL_Running_State is Waiting until SOURCE_DELAY seconds after source executed event, this field contains the number of delay seconds remaining. At other times, this field is NULL.
SQL_Delay - это намеренная задержка репликации как минимум на такой срок: https://dev.mysql.com/doc/refman/8.4/en/replicatio...
SQL_Remaining_Delay показывает сколько времени осталось ждать до применения следующей транзакции, только в том случае когда мы ждём сконфигурированную задержку репликации. timestamp выполнения транзакции на источнике мы заведомо знаем, до него и показывается остаток.
И то и другое отображает намеренно сконфигурированное администратором поведение и поэтому не может быть проблемой по своему определению.
Для самопроверки:
Администратор БД задает задержку репликации для невоспроизведения мгновенно в данных Slave БД проблем, допущенных в Master БД
Таким образом в поле SQL_Delay, имеющем стандартно нулевую задержку (the default replication delay is 0 seconds), можно вручную оставить какой-то больший временной интервал.
Следующий же параметр - SQL_Remaining_Delay- будет исчислять остаток времени до следующей операции.
И, таким образом, ни одна из мною приведенных переменных не отражает искомых значений.
А искомым значением для меня - исходя из ответа Vamp (спасибо!) - будет поле Seconds_Behind_Master.
Верно?