Как найти MySQL DB является подчиненным? - PullRequest
4 голосов
/ 31 марта 2011

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

Ответы [ 3 ]

6 голосов
/ 27 августа 2011

Вот 3 варианта, которые вы должны определить, если репликация работает

ВАРИАНТ № 1: Проверка переменной состояния 'Slave_running'

Использование MySQL 5.1 / 5.5

select variable_value from information_schema.global_status
where variable_name = 'Slave_running';

Использование MySQL 5.0 и обратно

SHOW VARIABLES LIKE 'Slave_running';

ВАРИАНТ № 2: Проверьте список процессов

Использование MySQL 5.1 + / 5.5

select COUNT(1) SlaveThreads
from information_schema.processlist
where user = 'system user';
  • Если SlaveThreads = 2, репликация запущена
  • Если SlaveThreads = 1, репликация нарушена
  • Если SlaveThreads = 0, репликация остановлена ​​или отключена

Использование MySQL 5.0 и обратно

SHOW PROCESSLIST;

Найдите 2 соединения с БД, которые имеют «системный пользователь» в столбце пользователя.

ВАРИАНТ № 3: Проверить наличие master.info

Если репликация настроена на сервере БД, найдите master.info. По умолчанию master.info обычно находится в / var / lib / mysql или там, где определен каталог данных.

Просто запустите 'cat master.info' несколько раз (для сообщества Windows введите master.info). Если позиция журнала перемещается, репликация включена. Если позиция журнала не перемещается, это может означать, что репликация нарушена (ошибка SQL в потоке SQL), остановлена ​​(из-за STOP SLAVE;) или отключена (при запуске CHANGE MASTER TO MASTER_HOST='';).

1 голос
/ 26 апреля 2017

До MySQL 5.7, вы можете проверить переменную 'slave_running', выполнив следующий запрос: SHOW GLOBAL STATUS LIKE 'slave_running';

Начиная с MySQL 5.7, slave_running был удален, и вышеупомянутый запрос возвращает пустой набор. Вы можете включить «show_compatibility_56», чтобы получить значение, но «show_compatibility_56» устарела и будет удалена в ближайшее время.,Причина этого заключается в том, что MySQL отходит от таблиц information_schema GLOBAL_STATUS и SESSION_STATUS в предпочтении для performance_schema.

Правильный способ получить статус ведомого, работающего в MySQL 5.7 вне SHOW SLAVE STATUS, - это использовать новые таблицы performance_schema, основанные на репликации.

Вы можете выполнить следующий запрос для получения статуса службы репликации: SELECT SERVICE_STATE FROM performance_schema.replication_connection_status;

1 голос
/ 31 марта 2011

Согласно MySQL doc - Проверка состояния репликации :

Slave_IO_Running : будь то ввод / вывод Поток для чтения двоичного файла мастера журнал запущен. Обычно вы хотите это да, если вы еще не начал репликацию или явно остановил его с помощью STOP SLAVE.

Slave_SQL_Running : используется ли SQL поток для выполнения событий в релейный журнал работает. Как с вводом / выводом нить, это обычно должно быть Да.

...