首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查看和删除正在进行到ORACLE架构的会话列表?

如何查看和删除正在进行到ORACLE架构的会话列表?
EN

Stack Overflow用户
提问于 2014-04-05 18:02:27
回答 1查看 822关注 0票数 2

我正在尝试诊断一个问题,为此需要查看到特定Oracle架构的连接列表。

假设我拥有DBA特权,那么我应该运行哪些查询:

  1. 列出Oracle架构的会话(活动会话和其他会话),
  2. 杀了这些会议

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-05 18:08:15

下面是执行所需的查询:

代码语言:javascript
复制
-- 1. Check connected sessions
select     sid, serial#, username, machine,
    to_char(logon_time+5/24,'ddMon hh24:mi') login,
    SQL_HASH_VALUE, PREV_HASH_VALUE,
    status
from  v$session
where
lower(username) like  '%SCHEMA_NAME%'
--and lower(status) not like '%killed%'
--and machine like '%SOURCE_MACHINE_NAME%'
order      by logon_time;

-- 2. Same as above, but just show the count of sessions  
select    count(1)
from      v$session
where      lower(username) like  lower('%SCHEMA_NAME%')
--and lower(status) not like '%inactive%'
order      by logon_time;


-- 3. Kill connected sessions
ALTER SYSTEM ENABLE RESTRICTED SESSION;
begin
    for x in (
            select Sid, Serial#, machine, program
            from v$session
            where      lower(username) like  '%SCHEMA_NAME%'
        ) loop
        execute immediate 'Alter System Kill Session '''|| x.Sid
                     || ',' || x.Serial# || ''' IMMEDIATE';
    end loop;
end;
ALTER SYSTEM DISABLE RESTRICTED SESSION;
-- May have to wait for a bit for the killed sessions to be cleaned up

我一直在Oracle11g数据库上使用上面的内容,所以希望它们也能为您工作。

请注意,我在前两个查询中包含了一些注释,其中包含了where子句,这将使您能够改进搜索标准。

希望这就是你要找的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22884657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档