powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Транзакции в InnoDB - как отследить зависшую?
2 сообщений из 2, страница 1 из 1
Транзакции в InnoDB - как отследить зависшую?
    #38920115
KaPuS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Запускаю первую транзакцию (1-ая консоль) без коммита:
Код: sql
1.
2.
START TRANSACTION
SELECT id FROM table WHERE id = 100 FOR UPDATE



Запускаю вторую транзакцию (2-ая консоль):
Код: plsql
1.
2.
START TRANSACTION
SELECT id FROM table WHERE id = 100 FOR UPDATE



Как и ожидалось, вторая транзакция зависает и через 50 сек выкидывает ошибку: "ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction".

После этого, ни одна транзакция не сможет прочитать SELECT id FROM table WHERE id = 100 FOR UPDATE, и никаким запросом не обновить колонки ряда с id 100, пока первая транзакция не будет закоммичена или не разорвать соединение первой консоли с MySQL.

Вопрос: как можно отследить проблему, увидеть незавершенные "висящие" транзакции и как их откатить или завершить (перезапуск MySQL, просьба, не предлагать).
...
Рейтинг: 0 / 0
Транзакции в InnoDB - как отследить зависшую?
    #38920150
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KaPuS,

В доке упоминается Lock Monitor . Посмотрите, может, что-то подойдет.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Транзакции в InnoDB - как отследить зависшую?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]