经常在服务器上做一些工作,当重新恢复库时,会先删掉用户xxx。
但是每次drop user xxx cascade时,总是提示有还在连接的用户。在网上查了,很多人给出办法都是将用户的sid,serial#对应的kill掉,可是这种方法只是去一条一条有目的的去删除。我想问有没有其他方法,就是像db2那样断掉所有连接的用户。请高手帮忙解答。希望不要在次给出类似于查sid,然后去断掉session号的答案。还有就是停掉服务什么的。
我只是想问有没有断掉正在连接的所有用户的语句。谢谢
但是每次drop user xxx cascade时,总是提示有还在连接的用户。在网上查了,很多人给出办法都是将用户的sid,serial#对应的kill掉,可是这种方法只是去一条一条有目的的去删除。我想问有没有其他方法,就是像db2那样断掉所有连接的用户。请高手帮忙解答。希望不要在次给出类似于查sid,然后去断掉session号的答案。还有就是停掉服务什么的。
我只是想问有没有断掉正在连接的所有用户的语句。谢谢
解决方案 »
- 急急急!!!!!在线等!.net平台C#开发,数据库为Oracle 10g,程序操作成功,却不定时总报各种各样的错误。
- update批量更新
- 新手求救~~oralce可以建单机服务器吗?
- 触发器中包含关键字该怎么办?
- 删除表中重复记录,不懂执行过程。哪位高手给解释以下执行过程,感谢!
- dual表是什么东西?
- 在触发器和存储过程中如何使用dbms_output.put_line(‘’),显示内容
- 各位大虾,哪位有Oracle9i的学习资料,高分酬谢!
- win7 64位 用php 连接本地数据库 报错oci_connect()ora-12154 tns 无法解析指定的连接标识符
- 在ibatis中怎么写clob的插入语句
- 联合查询问题,急!
- 怎么在oracle10g查询所有包含某字段的表名
'alter system kill session '||''''||trim(s.sid)||','||trim(s.serial#)||''';'
from v$session s,v$process p
where s.paddr = p.addr and s.username is not null;
v_sql varchar2(500);
cursor cur_sql is
select
'alter system kill session '||''''||trim(s.sid)||','||trim(s.serial#)||''''
from v$session s,v$process p
where s.paddr = p.addr and s.username is not null;
begin
open cur_sql;
loop
fetch cur_sql into v_sql;
exit when cur_sql%notfound ;
dbms_output.put_line(v_sql);
execute immediate v_sql;
end loop;
end;
end;
为什么要加个username is not null呢
还记得你刚刚问过的问题v$session里有null的是什么进程。要断掉用户的连接,可以kill session
kill -9 `ps -aef|grep oracle|grep -v grep|grep LOCAL=NO|awk '{print $2}'`
这个保证你kill掉所有进程后没有别人可以连上来,除了sysdba