创建em的时候报错:
配置: failed to unlock mgmt_view account
2013-4-29 22:47:03 oracle.sysman.emcp.emreposconfig invoke
严重: 无法对所有 em 相关帐户解锁
2013-4-29 22:47:03 oracle.sysman.emcp.emconfig perform
严重: 无法对所有 em 相关帐户解锁
有关详细资料, 请参阅 d:oraclecfgtoollogsemcaorclemca_2013_04_29_22_43_32.log 中的日志文件。
2013-4-29 22:47:03 oracle.sysman.emcp.emconfig perform
配置: stack trace:
oracle.sysman.emcp.exception.emconfigexception: 无法对所有 em 相关帐户解锁
at oracle.sysman.emcp.emreposconfig.invoke(emreposconfig.java:349)
at oracle.sysman.emcp.emreposconfig.invoke(emreposconfig.java:158)
at oracle.sysman.emcp.emconfig.perform(emconfig.java:253)
at oracle.sysman.emcp.emconfigassistant.invokeemca(emconfigassistant.java:590)
at oracle.sysman.emcp.emconfigassistant.performconfiguration(emconfigassistant.java:1453)
at oracle.sysman.emcp.emconfigassistant.statusmain(emconfigassistant.java:574)
at oracle.sysman.emcp.emconfigassistant.main(emconfigassistant.java:522)
2013-4-29 22:47:03 oracle.sysman.emcp.emconfig restoreouiloc
配置: restoring oracle.installer.oui_loc to d:oracleproduct11.2.0dbhome_1oui
查看日志文件,是因为执行了下面的语句报的错:
2013-4-29 22:47:03 oracle.sysman.emcp.util.platforminterface executecommand
配置: 执行 cmd /c d:oracleproduct11.2.0dbhome_1sysmanadminscriptsemcaemcadbutil.bat d:oracleproduct11.2.0dbhome_1sysmanadminscripts;d:oracleproduct11.2.0dbhome_1bin; d:/oracle/product/11.2.0/dbhome_1/perl/binperl.exe d:oracleproduct11.2.0dbhome_1sysmanadminscriptsemcaemcadbutil.pl d:oracleproduct11.2.0dbhome_1 (description=(address_list=(address=(protocol=tcp)(host=pc201303231245)(port=1521)))(connect_data=(service_name=orcl.ke3470.com))) sys sysdba declare repos_pwd varchar2(30); view_user varchar2(30); view_user_pwd varchar2(30); view_user_acc_status varchar2(30); begin repos_pwd := ?; sysman.mgmt_view_priv.get_view_user(view_user); select account_status into view_user_acc_status from sys.dba_users where upper(username) = upper ( view_user ); if view_user_acc_status like '%locked%' then execute immediate 'alter user ' || view_user || ' account unlock'; end if; if view_user_acc_status like '%expired%' then sysman.mgmt_view_priv.set_view_user_creds ( repos_pwd ); sysman.mgmt_view_priv.get_view_user_creds ( view_user, view_user_pwd ); execute immediate 'alter user ' || view_user || ' identified by ' || view_user_pwd || ''; end if; end; orcl 1 sysman_pwd 时出错
但很奇怪的是,单独拿出来并不会出现这样的错误,再往前看看日志,发现执行上面的语句之前,报了另外一个错误:
2013-4-29 22:47:03 oracle.sysman.emcp.util.platforminterface executecommand
配置: '?' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
可以看出这个是windows下cmd命令提示符显示的错误信息,估计是调用内部命令的时候出错了,再看看刚打开cmd的时候在窗口首行提示的错误信息:
这里已经可以很确定是windows命令行的问题了,像这样的错误一般在linux下是不会遇到的,执行下面的命令,在执行cmd的时候系统自动运行了某个命令,但是该命令不存在,,所以报错。只要将自动运行置空即可:
reg add hkey_local_machinesoftwaremicrosoftcommand processor /v autorun /d /f
再重新执行操作,不再出现上面的错误了。
上面的语句添加了一条注册表项,各个参数的意思如下:
/v:表示要添加的值名autorun
/d:要分配的数据
/f:不提示强行改写现有数据
