扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
sqlplus环境下 alter system kill session 'sid,serial#';
成都创新互联专注于瑞昌企业网站建设,响应式网站设计,商城系统网站开发。瑞昌网站建设公司,为瑞昌等地区提供建站服务。全流程定制网站制作,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
如果不行的话在操作系统下操作:
windows: orakill 实例名 spid
linux: kill -9 spid
需要查询SID和SERIAL#,然后kill掉。
方法1、用sql语句
SHELL sqlplus /nolog
SQL conn /as sysdba
SQL set head off
SQL spool kill.txt
SQL select ‘alter system kill session ‘ || ”” || a.SID || ‘,’ || a.SERIAL# || ””||’ ;’ from v$session a where a.STATUS = ‘ACTIVE' and osuser='alex';
SQL spool off
SQL exit
SHELLsed -i ‘/^$/d’ ~/kill.txt
SHELLsqlplus /nolog
SQL conn /as sysdba
SQL @kill.txt
SQL exit
方法2、用proc
declare cursor mycur is
select b.sid,b.serial#
from v$locked_object a,v$session b
where a.session_id = b.sid group by b.sid,b.serial#;
begin
for cur in mycur
loop
execute immediate ( ‘alter system kill session ”’||cur.sid || ‘,’|| cur.SERIAL# ||”’ ‘);
end loop;
end;
��匠�焙蟛呕岜唤饪��茄�蓟嵩斐捎τ貌僮鞅蛔枞�?梢砸設ralce管理员权限用户登录Oracle数据,查询到被锁的对象,然后杀除指定的会话。用下面的语句查询被锁的对象,可以带上更多约束条件,如schemaname等更精确的匹配。
alter system kill session 'sid, serial#' 如上面查出来的一条记录的sid是53, serial#为663,就执行以下的语句alter system kill session '53,663' 如果要一次性杀死多个会话,一个一个填写sid和serial#十分的繁琐,应该在查询被锁对象的同时拼凑出多条的杀会话语句,以分号分隔,一起复制下来,然后就可以批量的执行了。 1.SELECT'alter system kill session '''|| c.sid ||''||','|| c.serial# ||''';',2. a.object_id, a.session_id, b.object_name, c.*3. FROMv$locked_object a, dba_objects b, v$session c4. WHEREa.object_id = b.object_id5. ANDa.SESSION_ID = c.sid(+)6. ANDschemaname ='Unmi'7. ORDERBYlogon_time
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流