【通译自mos文章】修改被 DB Control 监控的db (10g and 11g)中 dbsnmp密码的方法

【翻译自mos文章】修改被 DB Control 监控的db (10g and 11g)中 dbsnmp密码的方法

修改被 DB Control 监控的db (10g and 11g)中 dbsnmp密码的方法

参考原文:
How to Change DBSNMP Password in Database 10g and 11g Monitored by DB Control (Doc ID 259387.1)

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

目的:
当10g 和 11g的 db被DB Control 监控时, 修改 该db中的dbsnmp用户密码的方法。
ATTENTION: Enterprise Manager 10g is now in extended support. Oracle strongly recommends that you upgrade your environment to either Enterprise Manager 11g or 12c, both of which are still in premier Support.

范围:
所有使用db control 来监控他们的10g or 11g db 的数据库管理员

细节:
修改dbsnmp密码时,你必须严格遵守下面的步骤,否则 管理你的db的 10g or 11g DB Control  会运行异常。

注意: 对于安装在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

1.stop the standalone dbconsole

On Unix - DB Control Release up to 11.1.x
$ export ORACLE_SID=<database_sid>
$ emctl stop dbconsole

On Unix - DB Control Release 11.2.x and higher
$ export ORACLE_SID=<database_sid>
$ export ORACLE_UNQNAME=<value of the DB_UNIQUE_NAME database parameter>
$ emctl stop dbconsole

On Windows - DB Control Release up to 11.1.x
Stop the Windows Service OracleDBConsole<database_sid>
Or
Open a DOS Command Window and type
C> set ORACLE_SID=<database_sid>
C> set ORACLE_HOME=<oracle_home_name>
C> cd %ORACLE_HOME%/bin
C> emctl stop dbconsole

On Windows - DB Control Release 11.2.x and higher
Stop the Windows Service OracleDBConsole<database_sid>
Or
Open a DOS Command Window and type
C> set ORACLE_SID=<database_sid>
C> set ORACLE_UNQNAME=<value of the DB_UNIQUE_NAME database parameter>
C> set ORACLE_HOME=<oracle_home_name>
C> cd %ORACLE_HOME%/bin
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, cd to the database $ORACLE_HOME\bin and type
C> emctl status dbconsole

3.以dba权限登陆sqlplus,执行如下语句:--->登陆进去的这个db是受监控端的db。
SQL> alter user dbsnmp identified by <new dbsnmp password> ;

4.确认新密码能连接:
SQL> connect dbsnmp/[@database_alias]

5.到$ORACLE_HOME/host_sid/sysman/emd目录下----->本步骤应该是在 standalone dbconsole主机上操作吧?
   5.1 将targets.xml文件复制为targets.xml.orig
   5.2 用文本编辑器编辑targets.xml文件
      5.2.1 找下面的行:
      <property name="password" value="<encrypted_string>" encrypted="TRUE">
      5.2.2 用新密码替换掉加密后的值
      5.3.3 用FALSE替换掉TRUE
   5.3 重启standalone dbconsole
  
   On Unix - DB Control Release up to 11.1.x  
   $ export ORACLE_SID=<database_sid>
   $ emctl start dbconsole
  
  
   On Unix - DB Control Release 11.2.x and higher  
   $ export ORACLE_SID=<database_sid>
   $ export ORACLE_UNQNAME=<value of the DB_UNIQUE_NAME database parameter>
   $ emctl start dbconsole
  
  
   On Windows - DB Control Release up to 11.1.x  
   Start the Windows Service OracleDBConsole<database_sid>
   Or
   Open a DOS Command Window and type
   C> set ORACLE_SID=<database_sid>
   C> set ORACLE_HOME=<oracle_home_name>
   C> cd %ORACLE_HOME%/bin
   C> emctl start dbconsole
  
  
   On Windows - DB Control Release 11.2.x and higher  
   Start the Windows Service OracleDBConsole<database_sid>
   Or
   Open a DOS Command Window and type
   C> set ORACLE_SID=<database_sid>
   C> set ORACLE_UNQNAME=<value of the DB_UNIQUE_NAME database parameter>
   C> set ORACLE_HOME=<oracle_home_name>
   C> cd %ORACLE_HOME%/bin
   C> emctl start dbconsole

   5.4 确认密码已经被加密
   查看targets.xml
   搜索:<property name="password" value="<encrypted_string>" encrypted="TRUE">
   检查 密码value 已经被加密
   检查ENCRYPTED 的value 是TRUE