linux中檢視oracle程式在做什麼,是否sql引起了鎖 kill掉程式
ps -l 檢視系統程式
PID 每個程式的ID。
PPID 每個程式的父程式ID。
UID 每個程式所有者的UID 。
USER 每個程式所有者的使用者名稱。
PRI 每個程式的優先順序別。
NI 該程式的優先順序值。
SIZE 該程式的程式碼大小加上資料大小再加上堆疊空間大小的總數。單位是KB。
TSIZE 該程式的程式碼大小。對於核心程式這是一個很奇怪的值。
DSIZE 資料和堆疊的大小。
TRS 文字駐留大小。
D 被標記為“不乾淨”的頁專案。
LIB 使用的庫頁的大小。對於ELF程式沒有作用。
RSS 該程式佔用的實體記憶體的總數量,單位是KB。
SHARE 該程式使用共享記憶體的數量。
STAT 該程式的狀態。其中S代表休眠狀態;D代表不可中斷的休眠狀態;R代表執行狀態;Z代表僵死狀態;
T代表停止或跟蹤狀態。
TIME 該程式自啟動以來所佔用的總CPU時間。如果進入的是累計模式,那麼該時間還包括這個程式子程式所佔用的時間。且標題會變成CTIME。根據OS程式號,應該可以查到它正在執行什麼SQL語句.
-- 查到oracle OS程式的sid編號:
select ses.sid from v$session ses,v$process pro where pro.spid=&spid and ses.paddr=pro.addr;
-- 查到此sid連線使用者正在執行的SQL語句:
select sql_text from v$sqltext_with_newlines where (hash_value,address)
in (select sql_hash_value,sql_address from v$session where sid=&sid) order by address,piece;
檢視oracle的鎖是sql語句引起的
檢視引起鎖的session_id
sync4j啟動的程式
select * from v$locked_object where os_user_name='sync4j'
找到seesion_ID=139
找到引起的sql語句
SELECT a.username,
a.machine,
a.program,
a.sid,
a.serial#,
a.status,
c.piece,
c.sql_text
FROM v$session a,
v$sqltext c
WHERE a.sid = 139
and a.sql_address=c.address(+)
ORDER BY c.piece
v$sqltext就是引起鎖的sql語句了
alter system kill session 'sid,serial#' 殺掉程式
sid,serial#在v$session中可以查到
==================================
1.首先透過v$session_wait確定library cache pin等待事件的會話
2.確定要pin的物件:
select kglnaobj
from sys.x$kglob
where inst_id = userenv('instance')
and kglhdadr = v$session_wait.P1RAW;
3.確定阻塞的會話:
select a.sid,a.serial#,a.username,a.paddr,a.logon_time,
a.sql_hash_value,b.kglpnmod
from v$session a,sys.x$kglpn b
where a.saddr = b.kglpnuse
and b.inst_id= userenv('instance')
and b.kglpnreq = 0
and b.kglpnmod not in (0,1)
and b.kglpnhdl = v$session_wait.P1RAW;
確定哪些會話正在使用某個包/過程/函式/檢視,如果有的話,這時就不要進行drop,complie之類的操作了
select c.sid
from sys.x$lglob a,sys.x$kglpn b,v$session c
where a.kglnaobj=大寫的你要進行操作的包/過程/函式/檢視
and a.kglhdadr=b.kglpnhdl
and b.kglpnuse=c.saddr;
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/liuya1985liuya/archive/2008/01/07/2028994.aspx
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-665074/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux 檢視程式 kill程式Linux
- Linux中檢視指令碼程式是否存在的命令!Linux指令碼
- Linux中殭屍程式是什麼意思?怎麼檢視殭屍程式?Linux
- 檢視oracle死鎖程式並結束死鎖Oracle
- 檢視ORACLE中鎖定物件Oracle物件
- linux檢視埠是否被佔用的命令是什麼 linux被哪個程式佔用命令介紹Linux
- oracle資料庫檢視鎖表的sql語句整理Oracle資料庫SQL
- linux 下根據埠kill 程式Linux
- linux程式和埠檢視Linux
- 檢視 Linux 殭屍程式Linux
- Linux 檢視程式情況Linux
- Java 程式設計師每天都在做什麼?Java程式設計師
- Jtti:linux怎麼檢視swap是否開啟JttiLinux
- Linux中如何檢視有幾個telnet程式?Linux
- oracle檢視被鎖的表和解鎖Oracle
- Linux中如何檢視系統是什麼版本?Linux
- Linux檢視程式PID的方法?Linux
- Linux中如何檢視8080埠是否被佔用?Linux
- Oracle檢視歷史TOP SQLOracleSQL
- 檢視sqlserver的某程式的sql文字SQLServer
- Innodb中怎麼檢視鎖資訊
- Linux程式之如何檢視程式詳情?(ps命令)Linux
- 如何在Linux中檢視所有正在執行的程式Linux
- LInux下檢視和關閉程式Linux
- 檢視oracle被鎖的表是誰鎖的Oracle
- LINUX中如何檢視某個埠是否被佔用Linux
- Oracle PL/SQL程式碼中的註釋OracleSQL
- LINUX中埠是否被佔用應該如何檢視呢?Linux
- linux下檢視埠是否被佔用以及檢視所有埠Linux
- 怎麼檢視mac電腦的應用程式與M1是否相容Mac
- Linux中如何啟動程式?啟動程式的方法是什麼?Linux
- 如何檢視Linux系統是什麼版本?Linux
- Oracle檢視歸檔是否被備庫應用Oracle
- Linux系統中檢視程式埠常用命令有哪些?Linux
- 如何在 Linux 上使用 kill 和 killall 來管理程式Linux
- 檢視LINUX程式記憶體佔用情況Linux記憶體
- Linux檢視埠被哪個程式佔用Linux
- Linux檢視程式檔案絕對路徑Linux
- Linux中常用來檢視程式的命令PSLinux