SYSMAN和DBSNMP用户密码过期后OEM无法使用,并报以下错误:
SYSMAN用户的密码被加密后存放在不同的地方,这样database control(OMS和agent)可以不用每次访问数据库时都输入密码。
当在数据库中改变了SYSMAN的密码后,还要将新密码提供给database control(OMS和agent)。
SYSMAN是OEM的管理员用户,而DBSNMP是智能代理用户,用于监控和管理数据库性能。
1.停止dbconsole
> set ORACLE_SID=yb > set ORACLE_UNQNAME=yb > emctl stop dbconsole
2.检查
> emctl status dbconsole
3.以dba权限登陆数据库
SQL> alter user dbsnmp account unlock identified by oracle; SQL> alter user sysman account unlock identified by oracle;
4.修改DBSNMP用户的其他配置文件
> cd $ORACLE_HOME/host_sid/sysman/emd
保存备份targets.xml文件
编辑targets.xml文件,找到以下的行:
<property name="password" value="<encrypted_string>" encrypted="TRUE"> #将"<encrypted_string>"替换为新的密码,将"encrypted"的值改为"FALSE"
5.修改sysman用户的其他配置文件
> cd $ORACLE_HOME/host_sid/sysman/config
保存备份emoms.properties文件
编辑emoms.properties文件,找到以下的行:
oracle.sysman.eml.mntr.emdRepPwd= #将加密的密码替换为新的密码 比如: oracle.sysman.eml.mntr.emdRepPwd=oracle
编辑emoms.properties文件,找到以下的行:
oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE #将该值修改为FALSE
6.重启dbconsole
> emctl start dbconsole
7.检查步骤4,步骤5中的配置文件中密码是否已经变成加密
修改成功后,密码已经变成加密格式,值FALSE变成TRUE.