Servidor MySQL vinculado pendurado na inserção

Servidor MySQL vinculado pendurado na inserção

Estou executando uma tarefa a cada 5 minutos no MS SQL Server 2008 vinculada ao MySQL em outro servidor da rede. Funciona provavelmente 80% das vezes. Os 20% restantes resultam no travamento do MySQL e service mysql restarté necessário.

Aqui estão algumas informações sobre a consulta que é executada a cada 5 minutos:

  • ~32.000 linhas e 25 colunas
  • Motor = MyISAM
  • consulta (executada no SQL Server 2008) =INSERT INTO MYSQLINTRANET...segments_temp SELECT * FROM ProjectTracking.dbo.segments;
  • A falha na linha parece ser aleatória
  • Os logs de erros estão vazios

É possível que o ProjectTracking.dbo.segmentsbloqueio possa resultar em travamento?

Sem nenhum erro relatado no log de erros, para onde posso ir a partir daqui?

Responder1

Eu teria deixado isso como um comentário, mas quero citar algum código, então estou fazendo isso aqui. Eu começaria tentando rastrear onde o bloqueio está acontecendo. Na próxima vez que você tiver um bloqueio, reúna alguns dados. No servidor MS SQL execute o seguinte:

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

Analise o retorno e veja qual está o status. Está bloqueado? Está aguardando o retorno dos dados remotamente?

No servidor MySQL execute:

show full processlist;

Assim como:

SHOW ENGINE INNODB STATUS

A primeira listará os processos em execução, qual o status da sua consulta? O que diz que está esperando. A segunda irá ajudá-lo a descobrir se você está tendo um problema de impasse.

informação relacionada