1. 程式人生 > >解鎖用戶及數據庫表,鎖死進程

解鎖用戶及數據庫表,鎖死進程

blog 取出 權限 sta 數據 rom count eight orm

 1 一丶解鎖用戶
 2 --修改時間格式
 3 alter session set nls_date_format = yyyy-MM-dd hh24:mi:ss;
 4 
 5 --查詢鎖住時間
 6 select username,lock_date  from dba_users where username like ODS;
 7 
 8 --查詢用戶狀態
 9 select username,account_status from dba_users where username IN (od,yxx);
10 
11 --解鎖用戶
12 alter user yxx account unlock

 1 二、解鎖數據表
 2 --01.註意你的用戶有沒有權限問題
 3 SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,
 4        b.os_user_name
 5   FROM v$process p, v$session a, v$locked_object b, all_objects c
 6  WHERE p.addr = a.paddr AND a.process = b.process
 7        AND c.object_id = b.object_id
8 ---1、帶有表名稱查詢 9 select object_name, machine, s.sid, s.serial# 10 from v$locked_object l, dba_objects o, v$session s 11 where l.object_id  =  o.object_id 12 and l.session_id = s.sid; 13 14 --2、獲取出sid,serial 用於解鎖的參數 15 16 select s.username, s.osuser, s.sid, s.serial#, p.spid from v$session s,v$process p
17 where s.paddr = p.addr and s.username is not null; 18 --2.1、拼接sql 19 select alter system kill session ,‘‘‘‘||trim(t2.sid)||,||trim(t2.serial#)||‘‘‘; 20 from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time; 21 22 ---2:執行sql進行解鎖 23 alter system kill session 198,12231; 24 alter system kill session 194,37558;

三、解鎖鎖死系統進程
--查詢進程ID
SELECT a.username, c.spid AS os_process_id, c.pid AS oracle_process_id
  FROM v$session a, v$process c
 WHERE c.addr = a.paddr
   and a.sid =2323
   and a.serial# =213;
---kill掉進程
linux 執行:KILL -9 SPID;
window執行:orakill ORACLE_SID spid 

解鎖用戶及數據庫表,鎖死進程