墨墨导读:在Oracle 11g中,大量的登录失败可能会导致library cache lock;或者大量的使用同一用户登录且登录失败,导致用户登录hang的问题,本文记录整个分析、处理过程。
一、前言
今天下午,某客户进行求助,说是数据库的一个用户(假设为wx)无法正常登录,但是奇怪的是其他用户登录正常。
二、问题处理过程及分析方法
通过远程,sqlplus / as sysdba对数据库进行登录,并进行检查,数据库运行正常,且数据库中没有异常的等待事件;
根据客户描述,通过wx用户和客户提供的密码进行登录,发现登录出现hang住的情况,重新打开另外一个数据库窗口,并对当前的阻塞进行排查:
select sid,seq#, BLOCKING_SESSIO,event,wait_class from v$session_wait;
并未发现阻塞。
于是对登录过程进行hanganalyze分析:
sqlplus / as sysdbaoradebug hanganalyze 3
connect wx/wx123
exit;
通过生成的hanganalyze文件,可以发现此时进行登录的进程,被其他用户登录的动作hang住,且此时等待均为library cache lock。
三、定位问题:
由于其他进程均为登录动作,且等待事件为library cache lock,于是对数据库版本进行查询,发现数据库版本为11.2.0.3。
此时,则想到了11g中的一个bug,即:大量的无效登录,可能会导致大量的library cache lock等待事件,造成数据库异常。于是通过mos进行搜索。最终发现,oracle11g中存在一个bug:9776608;该bug描述,多个用户使用错误密码同时登录一个用户的时候,会造成该用户登录异常。为了确认是否存在该异常,于是对登录失