信息: 查询返回: SOFTWARE\ORACLE\KEY_OraDb11g_home2
信息: 调用 查询areasQueries10.2.0.1.0 getAllOracleHomeNames
信息: 查询返回: OraDb11g_home1,agent12c1,sbin12c1,OraHome1,OraHome2,OraHome3,OraHome4,OraHome5,OraDb11g_home2
信息: 调用 查询rgsQueries10.1.0.3.0 getKeyFromHomeName
OracleHomeName = OraDb11g_home1
信息:
查询异常错误: HomeNameNotFoundException
查询异常错误类: class oracle.sysman.oii.oiil.OiilQueryException
信息: Adding ExitStatus STOP_INSTALL to the exit status set
信息: Finding the most appropriate exit status for the current application
信息: Exit Status is -4
信息: Shutdown Oracle Database 11g 发行版 2 安装程序
信息: Unloading Setup Driver
从上面信息看没有信息OracleHomeName = OraDb11g_home1
通过cmd 的regedit 查看
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\OracleMTSRecoveryService\Setup\All Versions
其中1的home 对应SOFTWARE\ORACLE\KEY_OraDb11g_home1 ,version = 11.2.0.1.0 --这是旧的
其中2的home对应SOFTWARE\ORACLE\KEY_OraDb11g_home2,version = 11.2.0.4.0 --是新安装的
根据home值能句找到 SOFTWARE\ORACLE\KEY_OraDb11g_home1 却找不到 SOFTWARE\ORACLE\KEY_OraDb11g_home1,符合报错的信息。
如果把SOFTWARE\ORACLE\KEY_OraDb11g_home1信息添加到注册表,也许就不会报错了,OracleMTSRecoveryService服务也是可以启起来的。
通过regedit 上的功能,把SOFTWARE\ORACLE\KEY_OraDb11g_home2信息导出,然后编写成KEY_OraDb11g_home1的信息。
a.bat如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1]
"ORACLE_HOME"="D:\\Oracle\\Ora11g"
"ORACLE_HOME_NAME"="OraDb11g_home1"
"ORACLE_GROUP_NAME"="Oracle - OraDb11g_home1"
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
"ORACLE_BUNDLE_NAME"="Enterprise"
"OLEDB"="D:\\Oracle\\Ora11g\\oledb\\mesg"
运行完之后
SOFTWARE\ORACLE\KEY_OraDb11g_home1在注册表中生成成功。同步升级时安装soft也顺利进行,安然完之后OracleMTSRecoveryService服务顺利启动。这种问题应该是事先有人动过windows的regedit。问题了当地的人,他们说也遇到这种问题,没在呼。