欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

【翻译自mos文章】改变数据库用户sysman(该用户是DBControlRepo

程序员文章站 2022-05-11 13:32:12
...

改变数据库用户sysman(该用户是DB Control Repository 的schema)密码的方法 参考原文: How To Change the Password of the Database User Sysman (DB Control Repository Schema) (Doc ID 259379.1) 适用于: Enterprise Manager for Oracle Database - V

改变数据库用户sysman(该用户是DB Control Repository 的schema)密码的方法

参考原文:
How To Change the Password of the Database User Sysman (DB Control Repository Schema) (Doc ID 259379.1)

适用于:
Enterprise Manager for Oracle Database - Version 10.1.0.2 to 11.2.0.3 [Release 10.1 to 11.2]
Enterprise Manager for Oracle Database - Version 11.2.0.4 to 11.2.0.4 [Release 11.2]
Information in this document applies to any platform.

目的:
sysman的口令被加密存放在多个地方,因此,the Database Control (OMS and Agent)可以在不需要sysman密码的情况下可以访问database。
所以,当修改sysman口令的时候,新口令必须提供给the Database Control OMS and Agent.

如果新口令没有更新给the Database Control OMS and Agent, oms将不能访问数据库,并且在trace file中,你会注意到下面的错误:
2012-05-31 13:50:13,513 [PAFStartupThread] ERROR conn.ConnectionService verifyRepositoryEx.891 - Invalid Connection Pool. ERROR = ORA-01017: invalid username/password;
logon denied2012-05-31 13:50:20,717 [HTTPThreadGroup-4] ERROR conn.ConnectionService verifyRepositoryEx.891 - Invalid Connection Pool. ERROR = ORA-28000: the account is locked
2012-05-31 13:50:20,764 [HTTPThreadGroup-2] ERROR eml.OMSHandshake processFailure.806 - OMSHandshake failed.
(AGENT URL = https://uk-sno1-m018.uk-paper.group.wan:3938/emd/main)(ERROR = INTERNAL_ERROR)(CAUSE =java.sql.SQLException: ORA-01017: invalid username/password; logon denied

本文解释了在不断开Database 与 Database Control的情况下,修改数据库用户sysman密码的方法。

注意:Enterprise Manager 10g 已经进入扩展支持。oracle强烈建议升级你的环境到Enterprise Manager 11g or 12c。
Enterprise Manager 11g or 12c 现在是处于premier Support(翻译成:首先支持?)

范围:
所有使用Enterprise Manager DB Control 10g or 11g的数据库管理员。

细节:
注意:安装在 Windows 2008 / Vista上的 DB Control Release 10.2.0.3 及其更高版本,emctl 命令可能会失败,错误是"Permission Denied".该错误的解决方法,请见下面的文章:
Document 1164293.1 - Executing Any EMCTL Command on Windows 2008 / Vista Returns "Permission denied" Error

第一种情况:Database Release prior 10.2.0.4

sysman 这个用户是 the standalone repository of the Enterprise Manager DB Control 的 schema

为了确保你是在正确的数据库中修改了sysman口令,请检查环境变量ORACLE_SID是否被设置,环境变量 ORACLE_HOME 是否被设置,PATH是否包括 正确的 $ORACLE_HOME/bin

请修改sysman口令时严格遵守如下的步骤,否则,你的DB Control 将会运行异常。
1.停止 DB Control
On Unix
$ emctl stop dbconsole

On Windows
Stop the Windows Service OracleDBConsole
Or
Open a Command Window and type
C> emctl stop dbconsole

2.确认DB Control 已经被停止:
On Unix
$ emctl status dbconsole

On Windows
Check the status of the Windows Service OracleDBConsole
Or
Open a DOS Command Window and type
C> emctl status dbconsole

3. 使用dba 权限登陆sqlplus,执行如下的语句:
SQL> alter user sysman identified by ;
例子:
SQL> alter user sysman identified by rainbow ;

4.检查新密码能否登陆到db中
SQL> connect sysman/[@database_alias]
Example:
SQL> connect sysman/rainbow@DBRH

5.到$ORACLE_HOME/host_sid/sysman/config中
5.1 将emoms.properties 文件做一个备份emoms.properties.orig
5.2 编辑emoms.properties文件:
5.2.1 查找以下面内容开头的行:
oracle.sysman.eml.mntr.emdRepPwd=
以新密码(额外注:明文不带;号)替换掉加密后的值。
例子:oracle.sysman.eml.mntr.emdRepPwd=rainbow
5.2.2 找下面的行:
oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE
用FALSE替换TRUE
6.重启 DB Control
On Unix
$ emctl start dbconsole

On Windows
Start the Windows Service OracleDBConsole
Or
Open a DOS Command Window and type
C> emctl start dbconsole

7.检查密码已经被加密:
查看$ORACLE_HOME/host_sid/sysman/config/emoms.properties文件
7.1 搜索以下面开头的行:
oracle.sysman.eml.mntr.emdRepPwd=
确认密码已经被加密
7.2 搜索以下面开头的行:
oracle.sysman.eml.mntr.emdRepPwdEncrypted=
确认该值是 TRUE

第二种情况: Database Release beginning 10.2.0.4
sysman 这个用户是 the standalone repository of the Enterprise Manager DB Control 的 schema

为了确保你是在正确的数据库中修改了sysman口令,请检查环境变量ORACLE_SID是否被设置,

对于 DB Control Release 11.2 以及更高版本来说,你需要将环境变量ORACLE_UNQNAME设置为数据库参数DB_UNIQUE_NAME 的值
你必须检查环境变量 ORACLE_HOME 是否被设置,PATH是否包括 正确的 $ORACLE_HOME/bin

请修改sysman口令时严格遵守如下的步骤,否则,你的DB Control 将会运行异常。

1.1.Stop the DB Control
On Unix
$ emctl stop dbconsole

On Windows
Stop the Windows Service OracleDBConsole
Or
Open a Command Window and type
C> emctl stop dbconsole

2. 确认 DB Control 已经被停止
On Unix
$ emctl status dbconsole

On Windows
Check the status of the Windows Service OracleDBConsole
Or
Open a DOS Command Window and type
C> emctl status dbconsole

3. 使用dba 权限登陆sqlplus,执行如下的语句:
SQL> alter user sysman identified by ;
4. 确认新密码:
SQL> connect sysman/[@database_alias]
5. 在database directory $ORACLE_HOME/bin目录中,执行:
On Unix
$ emctl setpasswd dbconsole
Provide the new SYSMAN password

On Windows
C>: emctl setpasswd dbconsole
Provide the new SYSMAN password

6.重启DB Control
On Unix
$ emctl start dbconsole

On Windows
Start the Windows Service OracleDBConsole
Or
Open a DOS Command Window and type
C>: emctl start dbconsole