Как определить, сколько данных осталось в журнале - PullRequest
2 голосов
/ 04 ноября 2010

У меня есть 2 сервера, настроенных с использованием MySQL.Он использует стандартную настройку репликации, с одним ведомым, без циклической репликации.

Есть ли способ программно определить, насколько далеко за ведомым устройством находится чтение данных из двоичного журнала?

ЕслиЯ запускаю оператор:

SHOW MASTER STATUS;

На ведущем устройстве и запускаю

SHOW SLAVE STATUS;

на ведомом устройстве, я могу сравнить столбец Положение из основного состояния и столбец Read_Master_Log_Pos из состояния ведомогочтобы определить, насколько далеко находится ведомое устройство.

Однако это работает только в том случае, если ведомое устройство читает из того же файла, в который ведущий записывает.Поэтому, если ведомое устройство все еще читает предыдущий файл журнала, потому что оно работает позади, я не могу понять, как определить, сколько данных осталось, пока оно не догонит текущую позицию, в которой находится мастер.Решение, использующее только SQL, было бы оптимальным, но я открыт для других решений.Надеюсь, не тот, который требует чтения каталога, содержащего файлы журнала.

1 Ответ

0 голосов
/ 30 ноября 2010

Мне нравится использовать поле 'Seconds_behind_master' из SHOW SLAVE STATUS, чтобы определить, захвачены ли серверы MASTER-SLAVE. В качестве вторичного защитника я также выполняю запрос COUNT (*) по конкретной таблице (то есть часто обновляемой) на обоих серверах, а затем сравниваю количество записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...