oracle 鎖表 在OS級殺死程序

2021-08-25 18:18:52 字數 1421 閱讀 9192

關閉資料庫

sql>shutdown immediate

關閉資料庫,以確保殺死所有未斷的user session

當例項無法關閉無法使用shutdown immediate關閉時,可使用shutdown abort關閉例項,但關閉後應startup並再次使用shutdown immediate關閉例項,保證database的同步

當在oracle下kill oracle程序後,sid被標記為killed,但鎖表仍未釋放時,就在os級殺程序。

主要步驟如下:

1)select s.process,

s.sid,

s.serial#,

b.object_name,

b.subobject_name,

a.locked_mode,

s.osuser,

s.logon_time,

s.machine,

s.program

from v$locked_object a, dba_objects b, v$session s

where a.object_id = b.object_id

and a.session_id = s.sid

2)alter system kill session 'sid,serial#';

3)此時如果oracle會話被標記為killed,但仍然鎖住表,則需要根據spid到os系統中殺相應的oracle程序

查詢spid的語句如下:

select spid, osuser, s.program

from v$session s,v$process p

where s.paddr=p.addr and s.sid=此處為上面查出的sid

4) kill -9 spid

檢視當前user的serial#和sid

select sid, serial#, status from v$session where audsid=userenv('sessionid');

檢視當前user的spid

select spid from v$process p join v$session s on p.addr=s.paddr and s.audsid=userenv('sessionid');

檢視當前使用者的trace file路徑:

select p.value || '\' || t.instance || '_ora_' || ltrim(to_char(p.spid,'fm99999')) || '.trc'

from v$process p, v$session s, v$parameter p, v$thread t

where p.addr = s.paddr and s.audsid = userenv('sessionid') and p.name = 'user_dump_dest';

MySQL行級鎖 表級鎖 頁級鎖

mysql資料庫由於其自身架構的特點,存在多種資料儲存引擎,每種儲存引擎所針對的應用場景特點都不太一樣,為了滿足各自特定應用場景的需求,每種儲存引擎的鎖定機制都是為各自所面對的特定場景而優化設計,所以各儲存引擎的鎖定機制也有較大區別。mysql各儲存引擎使用了三種型別 級別 的鎖定機制 表級鎖定,行...

行級鎖和表級鎖

鎖定的範圍不一樣,行級鎖鎖定的是相關的行,別人仍然可以操作該錶的其他行 而表級鎖則鎖定整個表,其他人對該錶的訪問會受到更多的限制。所以,二者的主要區別就是鎖的粒度不一樣,帶來的結果及時併發能力的不同。鎖的粒度越細,併發性越好。行級鎖,一般是指排它鎖,即被鎖定行不可進行修改,刪除,只可以被其他會話se...

MySQL行級鎖 表級鎖

行級鎖 表級鎖的資料不能被其它事務再鎖定,也不被其它事務修改 修改 刪除 是表級鎖時,不管是否查詢到記錄,都會鎖定表 innodb 行鎖是通過給索引上的索引項加鎖 來實現的,這一點mysql與 oracle 不同,後者是通過在資料塊中對相應資料行加鎖來實現的。innodb這種行鎖實現特點意味著 只有...