DBA救火排殺指令碼
作為一個壓力山大的DBA,很多時候需要面對處理一些緊急突發的救火任務,當業務出現異常,效能接近癱瘓的奪命一刻,需要果斷出擊,把系統業務的影響減少到最小,至於原因分析,可以交到後續分析,下面將針對不同的困境,作出排殺處理:
1,批量殺掉oracle連線程式:這種情況是終極絕招,在面對效能將要癱瘓的局面,可以立刻解決問題,但正在等待的業務或事務會被強行終止,需要重新請求!
ps -ef | grep LOCAL=NO | awk '{print $2}' | xargs kill -9
2,DBA能定位到引起效能異常的SQL,在資料庫還能連線響應的情況下,批量生成kill -9的SQL批殺指令碼:
select 'kill -9 '||spid from v$process where addr in (select paddr from v$session where sid in(select c.sid from v$session c Where username ='MBS7_OMS' and event='SQL*Net message from dblink') );
3,DBA能定位到引起效能異常的schema,並且這個影響是整個schema層面業務的,在資料庫還能連線響應的情況下,查殺同一個使用者的會話:
select 'alter system kill session '''||c.sid||','||c.SERIAL# ||''';' from v$session c Where username ='RRJC' ;
3,這個跟上面第二點相似,查殺同一個SQLID的會話:
select 'alter system kill session '''||c.sid||','||c.SERIAL# ||''' immediate;' from v$session c where sql_id='1vnbgy700u1cu' ;
4,有時候需要排查一些連線程式的情況,方便跟蹤效能問題,下面是檢視同一個SQL_iD的登陸請求資訊:
select sql_id,logon_time,machine,terminal,osuser from v$session where sql_id='1vnbgy700u1cu' order by logon_time desc;
–謹記kill後面加immediate引數,否則會讓pmon回收很久!如不幸用了傳統kill,可用下面方法再度釋放:
select 'alter system kill session '''||c.sid||','||c.SERIAL# ||''' immediate;' from v$session c Where username ='FRNT' and machine in ('jk2','biweb2') and status='KILLED';
如果會話已經在DB裡killed,上面的SQL已經查不出spid,可以用下面的SQL查出SPID
select addr, pid, spid FROM v$process p where addr in (select p.addr from v$process p where pid <> 1 minus select s.paddr from v$session s);
————————————————
版權宣告:本文為CSDN博主「dbs_service」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/dbs_service/article/details/102719523
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25401903/viewspace-2661504/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DBA指令碼 (1)指令碼
- DBA指令碼 (2)指令碼
- DBA指令碼 (3)指令碼
- dba常用指令碼指令碼
- 批次殺程式指令碼指令碼
- dba巡檢指令碼指令碼
- DBA監控指令碼指令碼
- datastage指令碼排程AST指令碼
- 【DBA 指令碼】查詢current open cursor的指令碼指令碼
- DBA日常維護SQL指令碼SQL指令碼
- Oracle DBA常用監控指令碼Oracle指令碼
- crontab排程Python指令碼Python指令碼
- ORACLE DBA常用語句和指令碼Oracle指令碼
- oracle dba 的一些指令碼Oracle指令碼
- oracle DBA 常用監控指令碼1(轉)Oracle指令碼
- 【Python秒殺指令碼】淘寶或京東等秒殺搶購Python指令碼
- shell指令碼按照程式名稱殺死程式指令碼
- 面向 DBA 的 Linux Shell 指令碼簡介Linux指令碼
- ORACLE DBA常用SQL指令碼工具->管理篇(zt)OracleSQL指令碼
- Linux Shell指令碼時間排程Linux指令碼
- 史上最全近百條Oracle DBA日常維護SQL指令碼指令OracleSQL指令碼
- 自己寫的殺mysql執行緒的指令碼MySql執行緒指令碼
- DBA日常維護SQL指令碼_自己編寫的SQL指令碼
- ORACLE DBA常用SQL指令碼工具->管理篇(1) (轉)OracleSQL指令碼
- Oracle Windows平臺自動排程備份指令碼OracleWindows指令碼
- 用海豚排程器定時排程從Kafka到HDFS的kettle任務指令碼Kafka指令碼
- 使用DBMS_SCHEDULER排程作業系統shell指令碼作業系統指令碼
- 百億互金平臺救火故事
- 利用 JS 指令碼實現網頁全自動秒殺搶購JS指令碼網頁
- 醬油DBA奉獻ORACLE資料庫監控健康指令碼(一)Oracle資料庫指令碼
- 8個DBA最常用的監控Oracle資料庫的常用shell指令碼Oracle資料庫指令碼
- 8個DBA最常用的監控Oracle資料庫的常用shell指令碼--Oracle資料庫指令碼
- [資訊]11.13 惡意程式藉助 AutoIt 指令碼來逃避殺軟的檢測指令碼
- 8個DBA最常用的監控Oracle資料庫的常用shell指令碼--轉Oracle資料庫指令碼
- Eygle的《深入解析Oracle-DBA 入門、進階與診斷案例》——指令碼整理Oracle指令碼
- 庫物件指令碼抽取指令碼物件指令碼
- 免殺!第三課 免殺前奏+特徵碼定位…特徵
- 快排原始碼原始碼