Логирование Deadlocks InnoDB

Понадобилось однажды обнаруживать Deadlocks и логировать их, опишу как это сделать:

Посмотрим включено ли логирование deadlocks, по умолчанию OFF:

SHOW VARIABLES LIKE 'innodb_print_all_deadlocks';

Включим логирование deadlocks в файл ошибок:

SET GLOBAL innodb_print_all_deadlocks = ON;

Посмотрим где находятся логи ошибок, обычно это /var/log/mysql/error.log:

SHOW VARIABLES LIKE 'log_error';

Deadlocks также можно посмотреть выполнив запрос:

SHOW ENGINE INNODB STATUS\G;

Так как на сервере был Zabbix-agent, то я использовал его, чтобы отслеживать когда в логах появится слово ‘deadlock’ (выполнение раз в три часа, в зависимости от размера файла логов, часто выполнять не рекомендую):

UserParameter=deadlocks_error,grep -Fr 'deadlock' /var/log/mysql/error.log | wc -l

Смотрите также мою статью:
Установка и настройка Zabbix агента в Ubuntu

Оставьте комментарий

Добавить комментарий