如何查看和终止对ORACLE架构进行的会话列表?

如何查看和终止对ORACLE架构进行的会话列表?,oracle,oracle11g,Oracle,Oracle11g,我试图诊断一个问题,因此需要查看与特定Oracle架构的连接列表 假设我有DBA权限,我应该运行哪些查询: 列出Oracle架构的会话(活动和其他会话),然后 终止这些会话 谢谢大家! 以下是您需要执行的查询: -- 1. Check connected sessions select sid, serial#, username, machine, to_char(logon_time+5/24,'ddMon hh24:mi') login, SQL_HASH_VALU

我试图诊断一个问题,因此需要查看与特定Oracle架构的连接列表

假设我有DBA权限,我应该运行哪些查询:

  • 列出Oracle架构的会话(活动和其他会话),然后
  • 终止这些会话

  • 谢谢大家!

    以下是您需要执行的查询:

    -- 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
    
    我已经在Oracle 11g数据库上使用了上述内容,因此希望它们也能为您工作

    注意,我在前两个查询中包含了一些注释掉的where子句,这将允许您优化搜索条件


    希望这就是您想要的。

    谢谢,这些看起来很有希望。在发布这个问题之前,我的研究表明,
    v$session
    表/视图将参与其中,因此这些看起来很有希望。