查看数据库日志(连接数)

1
374字 · 2分钟

对连接数过多进行监控和诊断

1、查看数据库正在运行的进程信息

如果发现有大量的进程在运行,那么很可能是连接数过多导致的。

ps -ef |grep ora_ | grep -v grep

2、查询当前正在执行任务的所有会话信息。

select * from v$session where status='ACTIVE';
select * from v$session where status!='ACTIVE' and USERname ='GUOKUNCPS';

3、查询当前连接到数据库的会话数

SELECT count(*) FROM v$session;

4、并发连接数

Select count(*) from v$session where status='ACTIVE'
Select count(*) from v$session where status!='ACTIVE' and USERname ='GUOKUNCPS';

5、查询进程数的限制和当前的使用情况。

SELECT * FROM v$resource_limit WHERE resource_name = 'processes';

6、所有机器的并发数

select machine,count(*) from v$session group by machine;

7、所有机器的并发数和z

select machine,status,count(*) from v$session group by machine,status order by status;

8、查看Oracle当前有哪些用户正在使用数据

SELECT osuser, a.username,cpu_time/executions/1000000||'s',b.sql_text,machine from v$session a, v$sqlarea b
where a.sql_address =b.address order by cpu_time/executions desc;

9、获得了当前session的id

如果想获得跟踪文件的名称,而跟踪文件的名称包含了当前session的id,所以获得了当前session的id,也就可以找到当前跟踪文件的名称。

以下3条SQL都可以获取当前session的id

select spid from v$session s, v$process p, v$mystat m where s.paddr=p.addr and s.sid=m.sid and m.statistic#=0;

select spid from v$session s inner join v$process p on s.paddr=p.addr inner join v$mystat m on s.sid=m.sid and m.statistic#=0;

select spid from v$process where addr in (select paddr from v$session where sid=(select sid from v$mystat where rownum=1)); 
本文发布于 24 天前,内容时效性较好
这篇文章对你有帮助吗?