今天登陆OEM的时候发现无法登陆,提示信息为database is down,但ORACLE是正常状态,OEM也正常启动,经过检查发现OEM用户“sysman”与”dbsnmp“的密码过期,重新修改密码,并修改OEM配置文件后,重启OEM恢复正常。
以下是恢复步骤:
1.查看用户密码状态:
SQL> select * from dba_users;
发现用户“sysman”与”dbsnmp“的状态皆为“EXPIRED”。
2.重新修改密码:
SQL> alter user sysman identified by xxxxx;
SQL> alter user dbsnmp identified by xxxxx;
锁定状态修改:
SQL> alter user sysman account unlock;
SQL> alter user dbsnmp account unlock;
3.确认密码被正确修改:
SQL> conn sysman/xxxxx;
Connected.
SQL> conn dbsnmp/xxxxx;
Connected.
4.修改配置文件:
(sysman用户)
切换$ORACLE_HOME/(HOSTNAME)_(SID)/sysman/config目录下
a.备份emoms.properties:
$ cp emoms.properties emoms.properties.bak
b.修改文件emoms.properties:
$ vi emoms.properties
找到oracle.sysman.eml.mntr.emdRepPwd=把等于后的加密字串替换成刚才更改的密码xxxxx;
找到oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE 把TRUE换成FALSE。
(dbsnmp用户)
切换$ORACLE_HOME/(HOSTNAME)_(SID)/sysman/emd目录下
a.备份targets.xml:
$ cp targets.xml targets.xml.bak
b.修改文件targets.xml:
$ vi targets.xml
修改下列代码中:
<Property NAME="UserName" VALUE="6f5848a4f53a2d0a" ENCRYPTED="TRUE"/>
<Property NAME="password" VALUE="829e1a25401de489" ENCRYPTED="TRUE"/>
用新的dbsnmp的密码代替上列password的Value值,ENCRYPTED的值修改成FALSE。
5、重启dbconsole,访问OEM恢复正常
$ emctl start dbconsole
下面附上ORACLE系统用户的默认密码,和一些密码相关的系统参数,可用于取消过期和错误锁定等特性。
1.系统用户初始密码:
用户名 / 密码 登录身份 说明
sys/change_on_install SYSDBA 或 SYSOPER 不能以 NORMAL 登录,可作为默认的系统管理员
system/manager SYSDBA 或 NORMAL 不能以 SYSOPER 登录,可作为默认的系统管理员
sysman/oem_temp SYSMAN 为EM的用户名
scott/tiger NORMAL 普通用户
aqadm /aqadm SYSDBA 或 NORMAL 高级队列管理员
dbsnmp/dbsnmp SYSDBA 或 NORMAL 复制管理员
2.查询密码过期天数:
查看参数当前值
SQL> select * from dba_profiles where profile='DEFAULT' and resource_name like 'PASSWORD%';
设置密码永不过期
SQL> alter profile default limit password_life_time unlimited;
3.密码相关系统参数:
FAILED_LOGIN_ATTEMPTS
设定登录到Oracle 数据库时可以失败的次数。一旦某用户尝试登录数据库的达到该值时,该用户的帐户就被锁定,只能由DBA能解锁.
PASSWORD_LIFE_TIME
设定口令的有效时间(天数),一旦超过这一时间,必须重新设口令。缺省为180天(11g,10gUNLIMITED).
PASSWORD_REUSE_TIME
许多系统不许用户重新启用过去用过的口令。该资源项设定了一个失效口令要经过多少天,用户才可以重新使用该口令。缺省为UNLIMITED.
PASSWORD_REUSE_MAX
重新启用一个先前用过的口令前必须对该口令进行重新设置的次数(重复用的次数).
PASSWORD_LOCK_TIME
设定帐户被锁定的天数(当登录失败达到FAILED_LOGIN_ATTEMPTS时).
PASSWORD_GRACE_TIME
设定在口令失效前,给予的重新设该口令的宽限天。当口令失效之后回,在登录时会出现警告信息显示该天数。如果没有在宽限天内修改口令,口令将失效.
PASSWORD_VERITY_FUNCTION
该资源项允许调用一个PL/SQL 来验证口令。Oracle公司已提供该应用 的脚本,但是只要愿意的话,用户可以制定自己的验证脚本。该参数的设定就是PL/SQL函数的名称。
缺省为NULL.