查看数据库日志(连接数)
对连接数过多进行监控和诊断
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 天前,内容时效性较好
这篇文章对你有帮助吗?
评论
请先登录后再评论
登录