一次sql server2012 AwaysON只讀節點嚴重阻塞分析
週二下午處理了一單sql server2012只讀節點阻塞嚴重的問題。首先接到應用人員說明的問題,然後我們進入該伺服器進行查詢分析:
SELECT blocking_session_id, wait_duration_ms, session_id
FROM sys.dm_os_waiting_tasks
WHERE blocking_session_id IS NOT NULL;
blocking_session_id wait_duration_ms session_id
40 23675 238
40 10544 115
.............................................
粗看一下,好像是40大概產生了好幾十個阻塞。致使連線到上面的使用者基本上不能使用
也可以透過sys.sysprocesses來查詢,其中blocked是阻塞產生源。
40應該是一個後臺程式,所需求的資源為LCK_M_SCH_M,當某任務正在等待獲取架構修改鎖時出現。在任務等待獲取使用中止阻塞程式的架構修改鎖時發生。 (與 ALTER TABLE 和 ALTER INDEX 的低優先順序等待選項相關。)
select blocking_session_id,wait_duration_ms, session_id FROM sys.dm_os_waiting_tasks where session_id = 40;
blocking_session_id wait_duration_ms session_id
139 375601 40
可以看到是139在阻塞這個會話,並且很長時間了,繼續查詢139執行的會話是:
SELECT t.text
FROM sys.dm_exec_connections c
CROSS APPLY sys.dm_exec_sql_text (c.most_recent_sql_handle) t
WHERE c.session_id = 139
text
exec mytest_custom_proc '','','','','','','','','','','','傳統業代','1','','54','500','0','','613672'
可以看到執行了一個儲存過程,正是這個語句一直在阻塞。
把該儲存過程給到,開發人員分析,他們說這是某個客戶端正在執行業務資料匯出所致
其中,匯出的是狀態為1的客戶狀態,經過統計分析,這個為1的狀態的數量級大概在150萬左右,加上網路傳輸,所以一直卡在這裡,並且後來檢查,不只是一個人在匯出這個量級的資料!
所以基本上可以確定的是,從awayson的主節點發起了一個修改,在備節點進行處理,而備節點提供給客戶查詢,這個查詢時間太長,導致主節點發起的修改無法完成,形成第一層阻塞。而備節點的還原操作因為被hang,而其它基於該表查詢申請共享鎖hang住。
最後處理辦法:
由於有好幾個客戶在做,無賴之下,我們把只讀節點停止,重新啟動。開發人員修改程式,對這種大批次的匯出進行處理
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29371470/viewspace-1220124/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sql server2012搭建AwaysOn全過程SQLServer
- sql server資料庫select產生嚴重阻塞引起效能問題SQLServer資料庫
- 一次oracle 節點重啟問題的定位Oracle
- alwayson只讀節點資料檔案的磁碟被寫滿
- SQL Server阻塞blocking案例分析SQLServerBloC
- 一次SQL分析SQL
- 記一次JVM FullGC引發嚴重線上事故的定位、分析、解決過程!JVMGC
- 記錄一次非常嚴重的知識侵權
- 一次詳細的RAC 節點例項驅逐分析文件
- oracle 重複列只顯示一次的實現Oracle
- 記一次低階並嚴重的開發失誤
- sql刪除重複記錄只保留一條SQL
- Oracle RAC命中ORA-7445只能開啟一個節點故障案例分析Oracle
- 容易忽視的細節:Log4j 配置導致的零點介面嚴重超時
- 記錄我一次最嚴重的勿操作,杯具啊!!!
- HDFS讀寫流程(重點)
- 11gRAC二節點重構
- SQL刪除重複資料,只保留一行SQL
- SQL server2012解除安裝SQLServer
- 一次TiDB GC阻塞引發的效能問題分析TiDBGC
- 查詢阻塞與被阻塞SQL語句SQL
- layer彈框刪除ztree節點非阻塞問題解決
- SQL Server2012 T-SQL基礎教程(二)SQLServer
- hang了,嚴重的row cache lock 等待事件--就因大sql文字事件SQL
- Sqlserver 2014 alwayson架構主節點執行alter table導致從節點的阻塞問題SQLServer架構
- 計算機史上最嚴重漏洞被公開,風險等級嚴重計算機
- oracle ucm 的嚴重bugOracle
- mysql xtrabackup 遭遇嚴重bugMySql
- activiti通過擴充套件點重寫節點行為套件
- SQL Server2012 安裝方法詳解SQLServer
- MySQL 最佳實踐: RDS 只讀例項延遲分析MySql
- 《重疊實驗框架》閱讀分析框架
- 記一次oracle 19c RAC叢集重啟單節點DB啟動異常(二)Oracle
- PG 裡面的只讀使用者,只讀資料庫資料庫
- 第二章 網孔分析和節點分析
- mongo副本集 叢集中只存在一個SECONDARY節點處理Go
- Go 中的阻塞分析Go
- oracle鎖阻塞的分析Oracle