阅读后Oracle 11g 的 Linux 安装指南,特别注意预安装要求;我已经能够根据成功的手动安装记录静默安装的响应文件。
问题是,当根据记录的响应文件执行静默安装时,执行生成的 shell 脚本以手动执行任何需要干预的步骤时,安装过程将失败。
进一步挖掘(阅读strace
)表明,日志文件中存在以下异常:
INFO: oracle.assistants.server:Internal PlugIn for {Micro Step state:step:1:configuration in CfmAggregateInstance: oracle.assistants.server:11.1.0.6.0:common:family=CFM:oh=/oracle/app/oracle/product/11.1.0/db_1:label=0} failed with an unhandled exception:
oracle.sysman.emCfg.common.CfwExceptionUninitializedParameter: {Parameter:S_SYSPASS in {Aggregate:oracle.assistants.server:11.1.0.6.0:common}}: parameter value has never been set and no default is present.
at oracle.sysman.emCfg.core.CfmParameterState.expressData(CfmParameterState.java:720)
at oracle.sysman.emCfg.core.CfmParameterState.expressDataAsArgv(CfmParameterState.java:541)
at oracle.sysman.emCfg.core.CfmParameterPair.appendDataAsArgv(CfmParameterPair.java:372)
at oracle.sysman.emCfg.core.CfmArguments.expandOneArgv(CfmArguments.java:92)
at oracle.sysman.emCfg.core.CfmArguments.expand(CfmArguments.java:61)
at oracle.sysman.emCfg.core.CfmArguments.expandAsArgv(CfmArguments.java:107)
at oracle.sysman.emCfg.core.PerformMicroStep.runJavaClass(PerformMicroStep.java:540)
at oracle.sysman.emCfg.core.PerformMicroStep.executeMicroStep(PerformMicroStep.java:120)
at oracle.sysman.emCfg.core.ActionPerformer.performMicroStep(ActionPerformer.java:917)
at oracle.sysman.emCfg.core.ActionPerformer$Performer.run(ActionPerformer.java:1038)
我怀疑记录的响应文件缺少手动安装过程中提供的参数。值得注意的是S_SYSPASS
。
但是,即使手动设置响应文件中的所有密码字段也无法解决此问题。
我需要回答的问题是,我可以在哪里进一步诊断此安装失败。
答案1
找到了罪魁祸首;使用 -noconfig 选项运行安装程序导致配置助手不会从静默安装配置文件中继承密码。
因此,这是行不通的:
su oracle -- database/runInstaller -silent -noconfig -responseFile `pwd`/ORA11G_Linux.rsp
但这确实:
su oracle -- database/runInstaller -silent -responseFile `pwd`/ORA11G_Linux.rsp
感谢 Oracle 今天的到来。