oracle数据库用户频繁被锁原因查看并修复(转载)

oracle数据库用户频繁被锁原因查看并修复

1、数据库服务器的报账号被锁的错误,先解锁再细查原因,是修改用户口令造成的,口令修改后,每天的数据导入程序中配置的口令没有及时修改,导致错误登录次数超限被锁,查数据导入情况,果然数据没有导入,再查数据导入日志,显示连接失败,证实了用户被锁的原因就是导入程序所致。

教训:修改口令动一发而牵动全身,改前应做个详细预案,把方方面面考虑周全,特别是那些暂时不影响的。比如这个导入程序,需要第二天凌晨才用到。

2、解锁方法是用system用户(或者具有DBA角色的用户)登陆,进行解锁: 

  SQL> alter user myuser account unlock;
  User altered.

3、查看$ORACLE_HOME/network/log/listener.log日志可以分析哪个IP造成的,不过对我现在的情况不适用,因为访问是本机的导入程序,不通过监听程序。不过,用户失效后,另一台通过数据连接进行访问的服务器就不通了,所以监听日志中报错的就是这台服务器的IP。查看此服务器的报错日志,可以找到相关的连接错误日志,根据日志,还可以查看相应的trc文件(内容差不多),可以看出是存储过程再编译时候报的错,日志如下:

Sat Nov 12 06:30:20 2016
Errors in file /opt/app/oracle/admin/orcl/bdump/orcl_j000_9301.trc:
ORA-12012: error on auto execute of job 41
ORA-04045: errors during recompilation/revalidation of EMSSXJK.COSTS_SIMULATION
ORA-04052: error occurred when looking up remote object EMSSXJK.TB_EVT_MAIL_CLCT_QITA@DATALINK_G9.REGRESS.RDBMS.DEV.US.ORACLE.COM
ORA-00604: error occurred at recursive SQL level 3
ORA-28000: the account is locked
ORA-02063: preceding line from DATALINK_G9

日志位置:/opt/app/oracle/admin/orcl/bdump/alert_orcl.log

用命令show parameter background_dump_dest查看位置。

4、可以用下面命令查看具体的被锁时间,不过要在解锁前查看哦。
  select username,lock_date from dba_users ;

查看已错误输入次数

select name, lcount from sys.user$ where name='TIGER';

查一下试试,可以发现许多Oracle自建的用户从安装的时候就被锁了,比如Scott用户。

5、注:
  一般数据库默认是10次尝试失败后锁住用户
  1、查看FAILED_LOGIN_ATTEMPTS的值
  select * from dba_profiles
  2、修改为30次
  alter profile default limit FAILED_LOGIN_ATTEMPTS 30;
  3、修改为无限次(为安全起见,不建议使用)
  alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;

你可能感兴趣的:(#,数据库,oracle,数据库,oracle)