今天早上同事向我求助,说是一个用户(我们假设该用户名为HOEGH)的数据不是最新的。奇怪,我明明上周五统一使用exp、imp脚本更新了相关用户的数据,肯定是包含HOEGH用户的。同事把应用程序启动起来,指着程序界面告诉我,这个数据肯定不是最新的。好吧,难道是我当时更新数据时漏掉了HOEGH用户?
首先,我尝试登录PLSQL,想查询一下HOEGH用户下表的编译时间,确认一下我执行imp操作的具体时间。令人意外的是,使用PLSQL登录时报错了,提示“ORA-28000: the account is locked”。
有点晕,谁动了HOEGH用户?
我登陆到sys用户,通过下面的sql语句查询HOEGH用户的帐户状态以及锁定时间。
点击(此处)折叠或打开
SQL> select username,account_status,to_char(lock_date,'yyyymmdd hh24:mi:ss') from dba_users where username='HOEGH';
USERNAME ACCOUNT_STATUS TO_CHAR(LOCK_DATE
------------------------------ -------------------------------- -----------------
HOEGH LOCKED 20150817 08:57:54
SQL>
从查询结果来看,HOEGH用户确实被锁了,而且,锁定操作就发生在几分钟之前。
虽然没弄明白怎么回事,还是先把问题解决了再说吧。我使用“alter user HOEGH account unlock”语句