DBA日记之数据库频繁错误密码登录
今天客户核心系统数据库,早上九点左右,出现卡慢的现象,伴随有登录超时的现象,赶紧登录到数据库, 收集了AWR报告,发现有大量library cache lock等待事件,通过AWR分析和现场项目经理沟通,发现是有一个业务系统在用错误的密码在频繁登录数据库导致, 具体的分析如下:
TOP 10等待事件,有大量 library cache lock
wait分类里,排名第一的是并发
事件模型统计,显示大量连接管理耗时
PLSQL登录数据库,通过审计信息可以发现有大量失败的登录信息,如登录ip, 机器名,用户名等。
在 Oracle 11g 中,为了提升安全性,Oracle 引入了『密码延迟验证』的新特性。这个特性的作用是,如果用户输入了错误的密码尝试登录,那么随着登录错误次数的增加,每次登录前验证的时间也会增加,以此减缓可能对于数据库重复的口令尝试攻击。但是对于正常的系统,由于口令的更改,可能存在某些被遗漏的客户端,不断重复尝试,从而引起数据库内部长时间的 Library Cache Lock的等待。出现这种问题,时间模型Time Model 中会显示 connection management call elapsed time 占据了主要的DB Time,这个等待直接表明是在建立数据库连接时产生的。
这一类问题,可以通过以下命令关闭『密码延迟验证』这个特性,从而消除此类影响,以下命令将修改设置在参数文件中:
ALTER SYSTEM SET EVENT ='28401 TRACE NAME CONTEXT FOREVER, LEVEL 1' SCOPE = SPFILE; 并重启数据库。
下一篇:DBCC CHECKD 手工修复和优化数据库 各种参数的用法说明