02391问题的解决方法(2)

如果抛出了ora-02391,我们可以通过alter user xxxxx  profile xxxx sessions_per_user  xxxx来进行解决。
 问题是这种错误在数据库日志中不会显示,所以DBA也无从知晓,只能等待反馈,得到反馈后再解决问题。
 我们可以变被动为主动。
 使用下面的监控语句来进行检查。
 比如我们设置阀值为90%,即每个user的对应的session超过profile中设定值的90%,就会返回结果。
select u.username||' with related profile '||p.profile||' has potential issue on '||p.resource_name ||' current value is '||s.cnt||' of '||p.limit
 from dba_profiles p,
 (select username,count(*)cnt from v$session where username is not null group by username) s,
 dba_users u
 where  p.RESOURCE_NAME = 'SESSIONS_PER_USER'
 and p.profile=u.profile
 and s.username=u.username
 and p.profile !='DEFAULT'
 and s.cnt*100/decode(p.limit,'DEFAULT',999)>=90;

返回结果类似下面的形式。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
APP_TEST with related profile PF_APP_TEST1 has potential issue on SESSIONS_PER_USER current value is 29 of 31
 APP_TEST2 with related profile PF_APP_TEST2 has potential issue on SESSIONS_PER_USER current value is 60 of 6

进一步改进,我们可以加入orabbix中,这样我们可能比开发还早收到报警邮件,问题处理也更有效。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/21ffd29f3887cfe2051cee5a24b8aabd.html