Связанный MySQL Server Hanging on Insert

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

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

  • ~32 000 строк и 25 столбцов
  • Механизм = MyISAM
  • запрос (выполнил от SQL Server 2008), = INSERT INTO MYSQLINTRANET...segments_temp SELECT * FROM ProjectTracking.dbo.segments;
  • Отказ строки, кажется, случаен
  • Журналы ошибок пусты

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

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

0
задан 26 February 2015 в 04:54
1 ответ

Я бы оставил это как комментарий, но я хочу процитировать код, поэтому я делаю это здесь. Я бы начал с попытки отследить, где происходит блокировка. В следующий раз, когда у вас будет блокировка, соберите некоторые данные. На сервере 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

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

1
ответ дан 4 December 2019 в 17:02

Теги

Похожие вопросы