如何列出Oracle中的活动/开放连接?

pis*_*hio 155 oracle

是否有任何隐藏的表,系统变量或某些东西在给定时刻显示活动连接?

Pau*_*ams 178

使用V$SESSION视图.

V$SESSION 显示每个当前会话的会话信息.

  • pistacchio,你在SQL中有两个"FROM":"select*from FROM v $ session" (26认同)
  • 从命令行的第1行开始出错:select*from FROM v $ session命令行错误:1列:14错误报告:SQL错误:ORA-00903:无效的表名00903. 00000 - "无效的表名"*原因:*行动: (4认同)
  • 你需要select_catalog_role角色. (4认同)
  • 您没有权限,或者您没有正确安装DBA视图. (3认同)
  • 您也可以加入v $ sqltext来获取当前的会话SQL. (2认同)

ehr*_*rdt 108

有关更完整的答案,请参阅:http: //dbaforums.org/oracle/index.php?showtopic = 16834

select
       substr(a.spid,1,9) pid,
       substr(b.sid,1,5) sid,
       substr(b.serial#,1,5) ser#,
       substr(b.machine,1,6) box,
       substr(b.username,1,10) username,
--       b.server,
       substr(b.osuser,1,8) os_user,
       substr(b.program,1,30) program
from v$session b, v$process a
where
b.paddr = a.addr
and type='USER'
order by spid; 
Run Code Online (Sandbox Code Playgroud)


小智 28

当我想查看从应用程序服务器到数据库的传入连接时,我使用以下命令:

SELECT username FROM v$session 
WHERE username IS NOT NULL 
ORDER BY username ASC;
Run Code Online (Sandbox Code Playgroud)

简单但有效.


小智 6

Select count(1) From V$session
where status='ACTIVE'
/
Run Code Online (Sandbox Code Playgroud)


小智 6

select s.sid as "Sid", s.serial# as "Serial#", nvl(s.username, ' ') as "Username", s.machine as "Machine", s.schemaname as "Schema name", s.logon_time as "Login time", s.program as "Program", s.osuser as "Os user", s.status as "Status", nvl(s.process, ' ') as "OS Process id"
from v$session s
where nvl(s.username, 'a') not like 'a' and status like 'ACTIVE'
order by 1,2
Run Code Online (Sandbox Code Playgroud)

该查询尝试过滤掉所有后台进程。


use*_*789 5

select
  username,
  osuser,
  terminal,
  utl_inaddr.get_host_address(terminal) IP_ADDRESS
from
  v$session
where
  username is not null
order by
  username,
  osuser;
Run Code Online (Sandbox Code Playgroud)

  • 欢迎来到SO!请为您的答案提供一些直觉. (4认同)