Висячие транзакции в MySQL Innodb - PullRequest
4 голосов
/ 21 октября 2011

Предположим, что я выполняю следующие операторы SQL:

start transaction;
insert into someTable (userId, amount) values (33, 44);

Обратите внимание, что в конце этого оператора нет Commit или Rollback. У меня также нет возможности требовать включения autoCommit.

Как dba может обнаружить такого рода незаконченные транзакции? Я пытался использовать 'show innodb status', но он предоставляет слишком много информации. Я пытаюсь найти незафиксированные транзакции и заставить их совершить или выполнить откат.

Спасибо.

1 Ответ

2 голосов
/ 21 октября 2011

Autocommit здесь вам не поможет, start transaction отменяет его.

Оборванные транзакции будут откатываться , как только истечет время ожидания соединения ИЛИ клиент снова подключится, в зависимости от того, что произойдет раньше.
Нет способа зафиксировать оборванную транзакцию, толькоВозможный вариант - откат.

Если вы хотите понять вывод состояния InnoDB, см .:
http://www.mysqlperformanceblog.com/2006/07/17/show-innodb-status-walk-through/

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