您的位置:首页 > 其它

ORA-21520故障 限制某个ip的连接数

2013-09-24 17:19 155 查看


如图,出现ORA-21520错误,上边统计ADUN实例的进程已经达到1499个了,平时这个链接数不应个这么高的,然后通过netstat查看对1521的连接数达到1472个,我的实例设置最大的连接数才是1500个

无疑,这个12520错误是这么来的,链接达到实例的上限了!

然后通知研发人员,让他们看了下现场,最后他们自己吧程序down掉,连接数降下来了,sqlplus也就可以直接登录了。

最后为了避免这样的悲剧再次发生,迷途小运维(也就是笔者)在网上找到了一个触发器sql,运行后效果不错,也给大家分享下!

内容如下:

create or replace trigger logon_audit  

after logon on database  

declare  

  i_sessions         number;  

  i_sessions_limited number := 2;     //被限制的IP的最大链接数

  str_userip         varchar2(15) := '188.188.3.240';    //被限制的IP

  except_ip_limited exception;  

begin  

  dbms_application_info.set_client_info(sys_context('userenv',  'ip_address'));  

  select count(*)  

    into i_sessions  

    from v$session  

   where client_info = str_userip;  

  if (i_sessions > i_sessions_limited) then  

    raise except_ip_limited;  

  end if;  

exception  

  when except_ip_limited then  

    raise_application_error(-20003, 'ip:' || str_userip || ' 连接数受限!');    

end logon_audit;

这个触发器成功编译之后效果如下

如果是普通用户超过这个最大连接数则登录失败 



alert log记录如下:

Errors in file /oracle/diag/rdbms/sem/SEMtrace/SEM_j000_21992.trc:

ORA-12012: 自动执行作业 "APEX_040200"."ORACLE_APEX_MAIL_QUEUE" 出错

ORA-20003: ip:188.188.3.240 连接数受限!

ORA-06512: 在 line 17

如果是有dba角色的用户登录,则只会在alert log中做如上记录,能正常登录!

###########################

本文由笔者原创,sql来自网络

作者:john

转载请注明出处
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: