《 the account is locked 》
关于 ORA-28000: the account is locked 的解决办法。
前言:
今天突然接到产品经理通知,应用系统挂了,全部业务无法正常办理,我立即对当前项目进行系统诊断性检查,在查看系统运行日志时;发现全是 数据库连接超时、数据库连接失败 等,所以我初步断定为 数据库服务器宕机 导致系统无法正常运行。
注意:
我当前使用的数据库 Oracle 12 C
PL/SQL DEVELOPPER Version 11.0.0.1
检测:
使用普通用户(和数据库进行数据交互的用户)登陆到数据库,发现无法登陆,并提示当前 账户被锁定,如下图:
登陆到系统管理账户 sys/sys as sysdba,在Oracle的配置集合文件(dba_profiles)中,查看登陆信息,输入 "SELECT RESOURCE_NAME, LIMIT FROM DBA_PROFILES WHERE RESOURCE_NAME = 'FAILED_LOGIN_ATTEMPTS'; " SQL 进行查看,如下图:
注:dba_profiles 是系统配置集合视图(VIEW)文件。
从上图中可以看出,Oracle 默认登陆失败的次数为10次,如果连续登陆失败次数超过10次,用户将被锁定。
解决办法:
输入命令 " alter user etc account unlock; " 进行解锁,如下图:
除了如上,进行解锁操作外,还可以将连续登陆失败的次数设置大些 " alter profile default limit failed_login_attempts 30; " ;如果没有需求的限制,还可以将连续登陆次数设置为无限的 " alter profile default limit failed_login_attempts unlimited; ",就可以随便搞了,这样就更保险点了,尤其是在多用户情况下。
注意:这儿解锁成功后一定要提交 commit 一下,有的人解锁成功了就马上去登陆,结果当然还是 Locked 咯,然后说:兄弟,你这个方法不行呀!!!,我说你去 commit 一下再试一下,不行我把 Oracle 吃了,然后他就没有来找我了。
所以,一定要 commit 一下哟!!!
好了,关于 " ORA-28000: the account is locked " 的问题就解决了,然后去登陆,又遇到下一个问题:
ORA-12560: TNS: 协议适配器错误 链接到 " ORA-12560: TNS: 协议适配器错误 "
如果期间还遇到其它问题,可以给我留言,一起探讨。
也希望大家多多关注CSND的IT社区。