为了学习,把数据库的verify_function功能打开,,自动将default概要文件的密码过期时间设置成60天,密码重用的天数为18000天,密码满足复杂性要求等等,关闭verify_function功能后,没有及时修改default概要文件,导致sysman和dbsnmp用户密码过期后,打开OEM界面直接报错如下图,其他部件均正常!
查看sysman和dbsnmp用户的状态均为密码过期,修改密码后重新登录OEM,依然报错如下图!
SQL> select username,account_status from dba_users where username=’SYSMAN’;
USERNAME ACCOUNT_STATUS
SYSMAN EXPIRED
SQL> alter user sysman identified by “123456”;
User altered.
SQL> alter user dbsnmp identified by “123456”;
User altered.
再次查询sysman和dbsnmp用户的状态,这次的状态为LOCKED(TIMED)
SQL> select username,account_status from dba_users where username=’SYSMAN’;
USERNAME ACCOUNT_STATUS
SYSMAN LOCKED(TIMED)
原因:
dbsnmp和sysman这两个用户和oem紧密相关,dbsnmp用户启动Oracle智能代理,用于收集oracle系统运行状态的相关数据,sysman是oem的超级管理员。如果配置了oem后,又使用alter user identified by ;修改了这两用户的口令,就会出现dbsnmp 和sysman “LOCKED(TIMED)”. 的情况。
解决方法:
还必须同步修改oem中记录的dbsnmp和sysman用户的口令。
$emca -config dbcontrol db
根据提示修改sysman和dbsnmp的口令即可。