是否有更好的方法强制断开所有用户与Oracle 10g数据库模式,而不是重新启动Oracle数据库服务?
我们有几个开发人员使用sql Developer连接到单个Oracle 10g服务器上的同一个模式。问题是,当我们想删除模式重建它,不可避免的有人仍然连接,我们不能删除数据库模式或用户,而有人仍然连接。
出于同样的原因,我们不想删除所有连接到其他模式,因为其他人仍然可以连接和测试这些模式。
要找到会话,作为DBA使用
select sid,serial# from v$session where username = '<your_schema>'
如果你想确保只得到使用sql Developer的会话,你可以添加和program =’sql Developer’。如果只想杀死属于特定开发人员的会话,则可以在os_user上添加限制
然后用他们杀死他们
alter system kill session '<sid>,<serial#>'
(e.g.
alter system kill session '39,1232'
)
select 'alter system kill session ''' || sid || ',' || serial# || ''';' from v$session where username = '<your_schema>'
这将为该用户的每个会话返回一个kill语句 – 类似:
alter system kill session’375,64855′;
alter system kill session’346,53146′;