(解决方案)同样的问题:Windows 10 vs. Oracle 11g (11.2.0.4)
使用 e.Windows 10 的最终版本(以及 Server 2016 Preview 3)再次出现问题。 G。安装任务后的 Oracle 11g(11.2.0.4,64 位)在 Windows 10 的几个预览版本中运行良好。上面所说的一切都是 o。 ķ。分别不工作。
最终原因是 OracleRemExecService(与 RemoteExecService.exe)不兼容:众所周知,在安装过程开始时,它是通过 %TEMP%\oraremservice 创建的。如果你看它 e。 G。使用 Sysinternals 的 ProcessMonitor 使用适当的过滤器,您可以看到几次崩溃(其中大部分是“缓冲区溢出”)并重新启动,并且在 Windows 的“系统”事件日志中也有相应的消息。
如果您开始(在删除注册表中的 HKLM\Software\oracle 之后)安装几次(超过 3 次 - 见下文),它会突然工作。
此行为的原因是 Windows 的“容错堆”机制(请参阅 https://msdn.microsoft.com/de-de/library/windows/desktop/dd744764(v=vs.85).aspx),它在 60 分钟内尝试三次后(请参阅 http://blogs.technet.com/b/askperf/archive/2009/10/02/windows-7-windows-server-2008-r2-fault-tolerant-heap-and-memory-management.aspx)在 HKLM\Software\Microsoft\FTH\State 中创建 FTH 条目和相应的填充程序在 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers。
虽然 FTH 条目的内容与 RemoteExecService.exe 的当前进程有关,但您可以在开始安装 DB 之前将注册表项导入系统。如果您将 Windows 的 %TEMP% 环境变量 以及 %TMP%(由于 Oracle 在创建 OracleRemExecService 周围的东西时使用 both 目录)为预定义值(例如 C:\TEMP)您可以将其用于所有安装任务,如下所示(不幸的是,它仅适用于 Windows 10,不适用于 Server 2016 - 更新于 2015 年 9 月 24 日,见下文):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Temp\\oraremservice\\RemoteExecService.exe"="FaultTolerantHeap"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\State]
"C:\\Temp\\oraremservice\\RemoteExecService.exe"=hex:10,00,00,00,10,00,00,00,\
0c,b4,ff,0c,52,00,65,00,6d,00,6f,00,74,00,65,00,45,00,78,00,65,00,63,00,53,\
00,65,00,72,00,76,00,69,00,63,00,65,00,2e,00,65,00,78,00,65,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00
2015 年 9 月 24 日更新:
使用 Server 2016(预览版 3),它有点棘手:首先您还必须设置环境变量 %TEMP% e。 G。到 C:\Temp 并导入上面的注册表项(在此之后,重新启动系统也不错)。
比您使用附加参数启动 Oracle 安装:
setup.exe -调试
如果您观察 %TEMP% 中发生的情况,您会看到文件夹 %TEMP%\oraremservice\ 被创建了两次:第一次创建后,安装程序似乎注意到该服务不起作用,删除该文件夹并创建它再次。在此之后,安装过程按预期工作。
2015 年 11 月 27 日更新:
- 使用 Windows Server 2016 Preview 4,不再需要通过“setup.exe -debug”的解决方法;您可以按照 Windows 10 的说明继续操作。
- 当然,如果您有已定义的用户(例如管理员),则不需要新的 C:\TEMP 与 %TEMP% 和 %TMP% 的过程。然后你可以像这样使用修改后的注册表项:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Users\\Administrator\\AppData\\Local\\Temp\\oraremservice\\RemoteExecService.exe"="FaultTolerantHeap"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\State]
"C:\\Users\\Administrator\\AppData\\Local\\Temp\\oraremservice\\RemoteExecService.exe"=hex:10,00,00,00,10,00,00,00,\
0c,b4,ff,0c,52,00,65,00,6d,00,6f,00,74,00,65,00,45,00,78,00,65,00,63,00,53,\
00,65,00,72,00,76,00,69,00,63,00,65,00,2e,00,65,00,78,00,65,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00
2017 年 1 月 31 日更新:测试了 Windows 10 的所有版本(Insider Preview),因此我们发现版本 15002 出现了一个新问题:Oracle 设置不再能够确定 PATH 变量(变量本身,不是错误的内容等等!)。因此,所有安装 Oracle DB 的尝试都失败了。比较 Windows 版本的注册表并“玩弄”这个变量及其内容并没有帮助。唯一的解决方法是编辑相关的 XML 文件 \64bit|32bit\stage\cvu\cvu_prereq.xml 并在所有标签...部分中删除(或此标签仅在最后一项“Windows Server 2012”中)。顺便说一句:尽管我们主要使用 Oracle 11g,但使用 Oracle 12c 的最新设置也会出现这个新的安装问题......