殺死鎖進程的代碼
/*--處理死鎖 查看當前進程,或死鎖進程,並能自動殺掉死進程 因爲是針對死的,所以如果有死鎖進程,只能查看死鎖進程 當然,你可以通過參數控制,不管有沒有死鎖,都只查看死鎖進程 --鄒建 2004.4--*/ /*--調用示例 exec p_lockinfo --*/ create proc p_lockinfo @kill_lock_spid bit=1, --是否殺掉死鎖的進程,1 殺掉, 0 僅顯示 @show_spid_if_nolock bit=1 --如果沒有死鎖的進程,是否顯示正常進程信息,1 顯示,0 不顯示 as declare @count int,@s nvarchar(1000),@i int select id=identity(int,1,1),標誌, 進程ID=spid,線程ID=kpid,塊進程ID=blocked,數據庫ID=dbid, 數據庫名=db_name(dbid),用戶ID=uid,用戶名=loginame,累計CPU時間=cpu, 登陸時間=login_time,打開事務數=open_tran, 進程狀態=status, 工作站名=hostname,應用程序名=program_name,工作站進程ID=hostprocess, 域名=nt_domain,網卡地址=net_address into #t from( select 標誌='死鎖的進程', spid,kpid,a.blocked,dbid,uid,loginame,cpu,login_time,open_tran, status,hostname,program_name,hostprocess,nt_domain,net_address, s1=a.spid,s2=0 from master..sysprocesses a join ( select blocked from master..sysprocesses group by blocked )b on a.spid=b.blocked where a.blocked=0 union all select '|_犧牲品_>', spid,kpid,blocked,dbid,uid,loginame,cpu,login_time,open_tran, status,hostname,program_name,hostprocess,nt_domain,net_address, s1=blocked,s2=1 from master..sysprocesses a where blocked<>0 )a order by s1,s2 select @count=@@rowcount,@i=1 if @count=0 and @show_spid_if_nolock=1 begin insert #t select 標誌='正常的進程', spid,kpid,blocked,dbid,db_name(dbid),uid,loginame,cpu,login_time, open_tran,status,hostname,program_name,hostprocess,nt_domain,net_address from master..sysprocesses set @count=@@rowcount end if @count>0 begin create table #t1(id int identity(1,1),a nvarchar(30),b Int,EventInfo nvarchar(255)) if @kill_lock_spid=1 begin declare @spid varchar(10),@標誌 varchar(10) while @i<=@count begin select @spid=進程ID,@標誌=標誌 from #t where id=@i insert #t1 exec('dbcc inputbuffer('+@spid+')') if @標誌='死鎖的進程' exec('kill '+@spid) set @i=@i+1 end end else while @i<=@count begin select @s='dbcc inputbuffer('+cast(進程ID as varchar)+')' from #t where id=@i insert #t1 exec(@s) set @i=@i+1 end select a.*,進程的SQL語句=b.EventInfo from #t a join #t1 b on a.id=b.id end GO
查看死鎖的代碼
create procedure sp_who_lock as begin declare @spid int,@bl int, @intTransactionCountOnEntry int, @intRowcount int, @intCountProperties int, @intCounter int create table #tmp_lock_who (id int identity(1,1),spid smallint,bl smallint) IF @@ERROR<>0 RETURN @@ERROR insert into #tmp_lock_who(spid,bl) select 0 ,blocked from (select * from sysprocesses where blocked>0 ) a where not exists(select * from (select * from sysprocesses where blocked>0 ) b where a.blocked=spid) union select spid,blocked from sysprocesses where blocked>0 IF @@ERROR<>0 RETURN @@ERROR -- 找到臨時表的記錄數 select @intCountProperties = Count(*),@intCounter = 1 from #tmp_lock_who IF @@ERROR<>0 RETURN @@ERROR if @intCountProperties=0 select '現在沒有阻塞和死鎖信息' as message -- 循環開始 while @intCounter <= @intCountProperties begin -- 取第一條記錄 select @spid = spid,@bl = bl from #tmp_lock_who where id = @intCounter begin if @spid =0 select '引起數據庫死鎖的是: '+ CAST(@bl AS VARCHAR(10)) + '進程號,其執行的SQL語法如下' else select '進程號SPID:'+ CAST(@spid AS VARCHAR(10))+ '被' + '進程號SPID:'+ CAST(@bl AS VARCHAR(10)) +'阻塞,其當前進程執行的SQL語法如下' DBCC INPUTBUFFER (@bl ) end -- 循環指針下移 set @intCounter = @intCounter + 1 end drop table #tmp_lock_who return 0 end
喜大普奔,微信給我的公衆號開了留言功能!!!有緣看到這篇文章的朋友,可以留個言互動下,謝謝~ 最近線上偶發MySQL的死鎖異常,發現原來很多理論都只背了個結論,細節都是魔鬼。 比如,MySQL在RR級別用gap lock防止幻讀,
本文分享自華爲雲社區《【防過載檢查項】》,作者: 譡裏個檔。 1. GUC參數檢查 目的:針對不同版本建議設定不同的參數值,當前先檢查出來,後續diagnosis會給出建議值 SELECT split_part((substri
作者:劉秋陽、蔡靖 前言 在當今全球一體化的經濟環境下,數字娛樂產業正日益成爲文化和商業交流的有力代表。在此背景下大量遊戲廠商嘗試遊戲出海並取得了令人矚目的成績,許多遊戲以全球同服架構吸引着世界各地廣泛的玩家羣體。遊戲全球化部署不僅擴大了單
0x01 信息收集 個人覺得教育src的漏洞挖掘就不需要找真實IP了,我們直接進入正題,收集某大學的子域名,可以用oneforall,這裏給大家推薦一個在線查詢子域名的網站:https://www.virustotal.com/ 收集到的子
作者:無哲 引言 在構建現代數據和業務系統的過程中,可觀測性已經變得至關重要,日誌服務(SLS)爲 Log/Trace/Metric 數據提供了大規模、低成本、高性能的一站式平臺服務,並提供數據採集、加工、投遞、分析、告警、可視化等功能,從
說在前面: 什麼是pyc文件? pyc是一種二進制文件,是由py文件經過編譯後,生成的文件,是一種byte code,py文件變成pyc文件後,加載的速度有所提高,pyc 文件是 Python 編譯過的字節碼文件。它是 Python 程
最近看到code-server 比較有意思,可以在線搭建一個開發環境,於是驗證了一下 1、安裝 curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run brew
DevExpress WinForm擁有180+組件和UI庫,能爲Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForm能完美構建流暢、美觀且易於使用的應用程序,無論是Office風格的界面,還是分
1. 背景介紹 京東作爲中國最大的綜合性電商平臺之一,擁有龐大的用戶羣體和海量的商品信息。對於開發人員和測試人員來說,如何高效地進行京東網站的數據爬取和接口測試至關重要。而在進行這些操作時,登錄狀態是一個不可或缺的環節。本文將介紹如何利
Linux系統中有時會遇到一些登陸初始化故障,會阻止用戶進入系統(比如ETX無法打開桌面)或者導致某些工具運行失敗(LSF bsub任務是無法完成初始化),所以瞭解Linux系統用戶登錄時的環境加載順序,對debug和解決如上問題是很有幫助
本文分享自華爲雲社區《華爲雲短信服務教你用Zig實現Cmpp協議》,作者: 張儉。 引言&協議概述 中國網絡通信集團短信網關協議(CNGP)是中國網通爲實現短信業務而制定的一種通信協議,全稱叫做China Netcom Short Mes
方案概述 MSE 網關可以爲後端服務提供轉發路由能力,在此基礎上,一些敏感的後端服務需要特定認證授權的用戶才能夠訪問。MSE 雲原生網關致力於提供給雲上用戶體系化的安全解決方案,其中 JWT 認證能力是在 Json Web Token 這種
root用戶登錄服務器 服務器密碼配置 在/etc/login.defs文件中設置密碼時效、長度等參數vim /etc/login.defs: # 密碼最大有效天數 PASS_MAX_DAYS 90 # 兩次改變密碼之間相距的最小
作者:阿里雲消息隊列 前言 在 2023 年杭州雲棲大會上,Confluent 成爲阿里雲技術合作夥伴,在此基礎上,雙方展開了深度合作,並在今天(3月1日)正式上線“雲消息隊列 Confluent 版”。 通過將 Confluent 在 A
Linux 運維高級指令04 du -sh指令(重點) 作用: 查看目錄的大小。 語法格式:du -sh 目錄路徑 選項含義: -s: 只顯示彙總的大小 表示以高可讀性的形式進行顯示。 案例1: find 指令(重點)