Назад | Перейти на главную страницу

Связанный сервер MySQL зависает на вставке

Каждые 5 минут я запускаю задачу на MS SQL Server 2008, которая связана с MySQL на другом сервере в сети. Это работает, вероятно, в 80% случаев. Остальные 20% приводят к зависанию MySQL и service mysql restart необходимо.

Вот некоторая информация о запросе, который выполняется каждые 5 минут:

Возможно ли, что ProjectTracking.dbo.segments мог быть заблокирован, что привело к зависанию?

Без каких-либо сообщений об ошибках в журнале ошибок, куда я могу перейти?

Я бы оставил это как комментарий, но хочу процитировать код, поэтому делаю это здесь. Я бы начал с попытки отследить, где происходит блокировка. В следующий раз, когда у вас будет блокировка, соберите некоторые данные. На сервере MS SQL выполните следующее:

USE master
select text,wait_time,blocking_session_id AS "Block",
percent_complete, * from sys.dm_exec_requests 
CROSS APPLY sys.dm_exec_sql_text(sql_handle)  AS s2 order by start_time asc

Проанализируйте возврат и посмотрите, каков статус. Это заблокировано? Ожидает ли он возврата данных с пульта?

На сервере mySQL запустите:

show full processlist;

Так же как:

SHOW ENGINE INNODB STATUS

В первом будут перечислены запущенные процессы, каков статус вашего запроса? Что там написано, он ждет. Второй поможет вам определить, есть ли у вас проблема с тупиком.