Как включить протоколирование DEADLOCK в MySQL?

В основном, я всем советую использовать Percona вместо MySQL, это более быстрый форк, если выразиться кратко. Далее, как обычно, дело идет за тюнингом БД, но об этом я расскажу в других статьях, сейчас остановимся на протоколировании DEADLOCK, потому как дедлоки могут принести много проблем при работе вашего сайта.

Если у нас используется Percona, то ставим pt-deadlock-logger:

wget percona.com/get/percona-toolkit.rpm
yum localinstall percona-toolkit-2.2.4-1.noarch.rpm

Подключаемся к MySQL и создаем таблицу deadlocks в базе test:

mysql> use test;
mysql> CREATE TABLE deadlocks (
        server char(20) NOT NULL,
        ts datetime NOT NULL,
        thread int unsigned NOT NULL,
        txn_id bigint unsigned NOT NULL,
        txn_time smallint unsigned NOT NULL,
        user char(16) NOT NULL,
        hostname char(20) NOT NULL,
        ip char(15) NOT NULL, -- alternatively, ip int unsigned NOT NULL
        db char(64) NOT NULL,
        tbl char(64) NOT NULL,
        idx char(64) NOT NULL,
        lock_type char(16) NOT NULL,
        lock_mode char(1) NOT NULL,
        wait_hold char(1) NOT NULL,
        victim tinyint unsigned NOT NULL,
        query text NOT NULL,
        PRIMARY KEY  (server,ts,thread)
      ) ENGINE=InnoDB;
Query OK, 0 rows affected (0.00 sec)

Теперь запускаем pt-deadlock-logger:

pt-deadlock-logger localhost -uroot -p'password' --dest D=test,t=deadlocks --daemonize --run-time 12h --interval 30s

За более подробной документацией можно обратиться на оффициальный сайт: http://www.percona.com/doc/percona-toolkit/2.1/pt-deadlock-logger.html

Related posts:

  1. How can I restore the MySQL root user’s full privileges? Stop MySQL server. Start MySQL server with –skip-grant-tables: Login (your...
  2. Asterisk – храним CDR в БД MySQL. Asterisk. Настройка. Статья#1. Складываем CDR в MySQL. Должны быть установлены...
  3. Включение query cache в MySQL – улучшаем производительность Если выхотите оптимизировать скорость ответа вашего MySQL сервера, тогда вам...
  4. Mysql: обновление timezone Чтобы проверить текущую временную зону, нужно выполнить команду: Чтобы посмотреть...
  5. Mysql error : Can’t create new tempfile: ‘*.TMD file Если вы видите данную ошибку и команда repair table не...
You can leave a response, or trackback from your own site.

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

*