简要解释:
原因是这样的: EM 有自己的配置文件emoms.properties,
你打开后就会发现这些:
oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE
oracle.sysman.eml.mntr.emdRepPwd=xxxx,xxxx,xxxx,xxxx
这说明OMS启动的时候已经对SYSMAN用户的密码进行了
加密处理,你只在SQLPLUS中修改,EM是无法知道的,
因为它不去读数据字典,而是读自己的配置文件
另外,在$ORACLE_HOME/<hostname_sid>/sysman/emd 目录
下还有一个文件targets.xml,这个文件也要修改。
参考EM的官方文档“ Advance Configuration "
文档编号是B12013-01.
具体章节是: 第六章第四节
"Changing the SYSMAN Password"
详细解决办法:
这个错误看起来很好解决
ORA-01017: invalid username /password;logon denied
但是在EM 10G(Grid Control and DB Control)中却
解决不了问题, 因为有其他的配置文件需要修改.
一 Grid Control
假如在安装过程中我给SYSMAN用户设置的密码是
mybmw530i, 现在我想修改成 mybmw745i,
应该怎么办呢?
Step 1: 在SQLPLUS中修改密码
SQL> conn sys/xxx as sysdba;
SQL> alter user SYSMAN identified by mybmw745i;
如果还出现过ORA-28000 error (account is unlocked),
将账号解锁就可以了(加上account unlock子句)
Step 2: 修改emoms.properties文件
这个文件所在的目录是$ORACLE_HOME/sysman/config.
找到下面两行:
oracle.sysman.eml.mntr.emdRepPwd= ...
oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE
OMS启动时,会将SYSMAN用户的口令加密后且存放在这个
文件. 因此,我们需要将它解密,并且重新设置密码.
oracle.sysman.eml.mntr.emdRepPwd= mybmw745i
oracle.sysman.eml.mntr.emdRepPwdEncrypted=FALSE
Step 3: 修改targets.xml文件
在下面的两个目录都会发现这个文件:
$OMS_HOME/sysman/config
$AGENT_HOME/sysman/config
显然,我们应该修改后一个文件. 因为agent会检测目标主机上
所有的target,并且将信息存入这个文件.
打开这个文件,找到下面的部分:
<Target TYPE="oracle_emrep"
NAME="Management Services and Repository" VERSION="1.0">
...
<Property NAME="UserName" VALUE="xxx" ENCRYPTED="TRUE"/>
<Property NAME="password" VALUE="xxx" ENCRYPTED="TRUE"/>
</Target>
修改成:
<Property NAME="UserName" VALUE="SYSMAN" ENCRYPTED="FALSE"/>
<Property NAME="password" VALUE="mybmw745i" ENCRYPTED="FALSE"/>
Step 4: 重新启动OMS和agent.
二 DB Control
基本修改方式同上. 只是targets.xml的路径
变成了$ORACLE_HOME/hostname_sid/sysman/emd.
三 说明
1. 如果 dbsnmp的密码也做了修改,同样需要修改上面提到的两个配置文件;
2. 直接运行emca这个命令行脚本也能完成修改.
1.资资料参考---EM Configuration
EM uses two kernel configuration file, one is for OMS, another is for agent(daemon).
Location: $ORACLE_HOME/hostname_sid/sysman/config
“Targets.xml”: $ORACLE_HOME/hostname_sid/sysman/emd
It’s recommended to use “EMCA” to manage parameter’s modification.
“emctl” is a console based application to manage db console service and it’s actually
Widely used in Grid Control such as all related operations of managing targets
Basic privileges to use db console:
System privilege: Select any dictionary
ROLE: CONNECT
Note:
The role “CONNECT” is deprecated since 10G R2(Oly remains a basic privilege
“CREATE SESSION”, If you only want to grant a normal user some basic privileges
Like previous version, please query “ROLE_SYS_PRIVS” to get those basic privileges
ALTER SESSION
CREATE CLUSTER
CREATE DATABASE LINK
CREATE SEQUENCE
CREATE SESSION
CREATE SYNONYM
CREATE TABLE
CREATE VIEW
参考:
http://oraclelon1.oracle.com/docs/cd/B14117_01/em.101/b12013/repository.htm#i1029558