今天遇到了一个Enterprise Manager 无法连接到数据库实例的错误,无法使用OEM,经过检查发现是 SYSMAN用户被锁定了,关于Enterprise Manager 无法连接到数据库实例的错误 网上其实早已有解决办法 那就是要保证如下用户必须是OPEN状态:

SELECT username,account_status FROM dba_users WHERE username in ('SYSTEM','SYS','SYSMAN','DBSNMP','MGMT_VIEW');

SYSTEM    OPEN 
SYS       OPEN 
SYSMAN    LOCKED(TIMED)
DBSNMP    OPEN 
MGMT_VIEW OPEN

经过检查 发现SYSMAN果然是LOCKED状态,于是马上解除锁定状态

ALTER USER sysman ACCOUNT UNLOCK;

然后再次登陆OEM,发现还是 无法连接到数据库实例,于是再次检查用户状态,发现SYSMAN又被锁定了,如此反复多次之后,网上说是由于OEM打开时会尝试使用这些这些用户连接数据库,由于profiles的限制造成锁定,于是以管理员用户登陆到数据库

SQL> CONN / AS SYSDBA
已连接。
SQL> ALTER PROFILE DEFAULT LIMIT failed_login_attempts UNLIMITED ; 
配置文件已更改

但是发现OEM还是无法使用:Enterprise Manager 无法连接到数据库实例。再次检查用户状态,发现SYSMAN现在没有被锁定了。突然想到既然是由于多次登陆SYSMAN被锁定造成的,那么肯定是由于密码不正确导致SYSMAN被错误的多次尝试造成的锁定,于是查找以前的安装记录,修改为刚开始安装数据库时设定的密码,然后再次刷新网页,OK 网页可以正常使用了,虽然问题已经解决,但是如果初始密码未知,难道非要重建OEM嘛?

带着疑问 再次做几个小测试:

SQL> alter user sys identified by test_dba; 
用户已更改。 
SQL> alter user system identified by test_dba; 
用户已更改。

然后刷新OEM,发现依然可以使用,但是一旦SYSMAN、DBSNMP的密码被更改,就无法打开实例了。而对于'MGMT_VIEW'用户,由于不属于在初始化时设置的用户,不知道$ORACLE_HOME\RDBMS\ADMIN\ 文件夹下的那个脚本是创建该用户的,同时又是正式库,因此不敢贸然修改。 下来有时间在本机上再继续测试吧。

05-11 20:07