Задать вопрос
@Salamandrine

Какое отставание 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 получить, или на что ориентироваться при его определении?
  • Вопрос задан
  • 64 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
DBA для вашего PostgreSQL?
Начать желательно с документации. https://dev.mysql.com/doc/refman/8.4/en/show-repli...
То есть вы неверно понимаете эти значения.
SQL_Delay

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 выполнения транзакции на источнике мы заведомо знаем, до него и показывается остаток.

И то и другое отображает намеренно сконфигурированное администратором поведение и поэтому не может быть проблемой по своему определению.
Ответ написан
Комментировать
Vamp
@Vamp
1. SQL_Delay и SQL_Remaining_Delay относятся к так называемой отложенной репликации. Когда репликация всегда намеренно отстаёт на заданное в конфиге время.

2, 3. Вам нужно смотреть на параметр Seconds_Behind_Master. Как раз он показывает отставание от мастера в секундах. Может показывать null если репликация полностью остановилась из-за ошибок каких-нибудь.

Какое отставание MySQL Slave от MySQL master считать проблемным?

Для mysql проблемным становится такое отставание, когда мастер уже успел отротировать и удалить старые бинлоги, которые слейв ещё не успел обработать.

Для приложений критичность отставания сильно зависит от бизнес требований к самому приложению. Кому-то и 5 секунд уже катастрофа, а кому-то и 24 часа норм.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы