今天接到某套系统数据库备库的CPU使用率告警信息,登录zabbix监控告警查看CPU使用率如下:
查看数据库活动会话信息
SELECT * FROM v$session WHERE username='' AND status='ACTIVE';
发现活动的会话达到了60个,通过AWR报告查看最后定位到有一条慢SQL,
因此可以得到是由于并发的多个慢查询导致的CPU使用率升高。如何优化SQL这里就不在详细讲解了,因为今天主要想说一下PORFILE的使用。
之前我在创建这个应用用户时记得是限制了并发会话数,即参数SESSIONS_PER_USER=15.在数据库查看时也是15,可以通过查看v$session得到的活跃会话数竟达到了60多个,所以我猜测是profile的限制没有起作用。
查看oracle系统参数resource_limit的值是false,可以知道原来是该参数禁用导致用户指定的profile限定没有起作用。
修改参数resource_limit的方式如下:
alter system set resource_limit=true;