1、解鎖用戶
以dba身份登錄?? sqlplus / as sysdba
?alter user scott account unlock;
2、解鎖表
alter?? system?? kill?? session
<!----1.查出鎖定object的session的信息以及被鎖定的object名------------------------------------>
SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username, ?l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time ?
FROM v$locked_object l, all_objects o, v$session s ?
WHERE l.object_id = o.object_id
?AND l.session_id = s.sid ?
ORDER BY sid, s.serial# ;
<!---------------------2.查出鎖定表的session的 sid, serial#,os_user_name, machine name, terminal和
執行的語句 --比上面那段多出sql_text和action ----------------------------------------------------------->
SELECT l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#, ?l.os_user_name,s.machine, s.terminal,a.sql_text, a.action
?FROM v$sqlarea a,v$session s, v$locked_object l ?
WHERE l.session_id = s.sid
?AND s.prev_sql_addr = a.address ?
ORDER BY sid, s.serial#; ?
<!-------------------------3.查出鎖定表的sid, serial#,os_user_name, machine_name, terminal,鎖的type,mode ------------------------------------------------------------>
SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine, ?s.terminal, s.logon_time, l.type
?FROM v$session s, v$lock l
?WHERE s.sid = l.sid ?
AND s.username IS NOT NULL ?
ORDER BY sid; ? ?
?<!--------殺鎖命令---------->??
?? alter system kill session 'sid,serial#'; ? ?
? alter system kill session '3,21395';
?--------------------------- ?
alter system kill session 'sid,serial#' ?SELECT /*+ rule */ s.username, ?decode(l.type,'TM','TABLE LOCK', ?'TX','ROW LOCK', ?NULL) LOCK_LEVEL, ?o.owner,o.object_name,o.object_type, ?s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser ?
FROM v$session s,v$lock l,dba_objects o
?WHERE l.sid = s.sid
?AND l.id1 = o.object_id(+) ?AND s.username is NOT NULL
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
