插入時連結的 MySQL 伺服器掛起

插入時連結的 MySQL 伺服器掛起

我在 MS SQL Server 2008 上每 5 分鐘執行一個任務,該任務連結到網路中另一台伺服器上的 MySQL。大概 80% 的時間它都能工作。剩下的20%會導致MySQL掛起,service mysql restart需要a。

以下是有關每 5 分鐘運行一次的查詢的一些資訊:

  • 約 32,000 行和 25 列
  • 引擎 = MyISAM
  • 查詢(從 SQL Server 2008 執行)=INSERT INTO MYSQLINTRANET...segments_temp SELECT * FROM ProjectTracking.dbo.segments;
  • 行故障似乎是隨機的
  • 錯誤日誌為空

是否有可能ProjectTracking.dbo.segments被鎖定導致掛起?

錯誤日誌中沒有報告任何錯誤,我該去哪裡?

答案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

第一個將列出正在運行的進程,您的查詢的狀態是什麼?它說它在等什麼。第二個將幫助您發現是否遇到死鎖問題。

相關內容