windows Oracle 12c 安装无法访问临时位置
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/21546892/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Oracle 12c Installation failed to access the temporary location
提问by user3226056
I have Windows 8.1 64-bit OS running on 64-bit architecture. I am installing a fresh copy of Oracle 12C, means I haven't installed any version before on my system.
我有在 64 位架构上运行的 Windows 8.1 64 位操作系统。我正在安装 Oracle 12C 的新副本,这意味着我之前没有在我的系统上安装任何版本。
During the installation, I encountered the following error message;
在安装过程中,我遇到了以下错误信息;
Cause?-?Failed to access the temporary location. Action?-?Ensure that the current user has required permissions to access the temporary location. Additional Information:
?-?Framework setup check failed on all the nodes ?-?Cause:?Cause Of Problem Not Available ?-?Action:?User Action Not Available Summary of the failed nodes al-naseeha ?-?Version of exectask could not be retrieved from node "al-naseeha" ?-?Cause:?Cause Of Problem Not Available ?-?Action:?User Action Not Available
The error code is [INS-30131]. I've the full privileges of an administrator-ship. I also tried to resolve this problem via the following command;
错误代码是 [INS-30131]。我拥有管理员的全部权限。我也尝试通过以下命令解决此问题;
net use \localhost\c$
But in no vain. Can you please help me sort out this issue.
但没有白费。你能帮我解决这个问题吗。
回答by Dan Caldwell
The error is caused due to administrative shares are being disabled. If they cannot be enabled then perform the following workaround:
该错误是由于管理共享被禁用而引起的。如果无法启用它们,请执行以下解决方法:
6.2.23 INS-30131 Error When Installing Oracle Database or Oracle Client
If the administrative shares are not enabled when performing a single instance Oracle Database or Oracle Client installation for 12c Release 1 (12.1) on Microsoft Windows 7, Microsoft Windows 8, and Microsoft Windows 10, then the installation fails with an
INS-30131
error.Workaround:
Execute the
net share
command to ensure that the administrative shares are enabled. If they are disabled, then enable them by following the instructions in the Microsoft Windows documentation. Alternatively, perform the client or server installation by specifying the following options:
For a client installation:
-ignorePrereq -J"-Doracle.install.client.validate.clientSupportedOSCheck=false"
For a server installation:
-ignorePrereq -J"-Doracle.install.db.validate.supportedOSCheck=false"
This issue is tracked with Oracle bug 21452473.
6.2.23 安装 Oracle 数据库或 Oracle 客户端时出现 INS-30131 错误
如果在 Microsoft Windows 7、Microsoft Windows 8 和 Microsoft Windows 10 上为 12c 第 1 版 (12.1) 执行单实例 Oracle 数据库或 Oracle 客户端安装时未启用管理共享,则安装将失败并显示
INS-30131
错误。解决方法:
执行
net share
命令以确保已启用管理共享。如果它们被禁用,则按照 Microsoft Windows 文档中的说明启用它们。或者,通过指定以下选项来执行客户端或服务器安装:
对于客户端安装:
-ignorePrereq -J"-Doracle.install.client.validate.clientSupportedOSCheck=false"
对于服务器安装:
-ignorePrereq -J"-Doracle.install.db.validate.supportedOSCheck=false"
此问题通过 Oracle 错误 21452473 进行跟踪。
回答by user3226056
Looking at Oracle's support site, it could be one of two things (may be #2 in your case, but including both).
查看 Oracle 的支持站点,它可能是两件事之一(在您的情况下可能是 #2,但包括两者)。
Problem 1:
问题1:
Enable administrative share for C$ (Please check with your System Admin to do this or See Microsoft document http://support.microsoft.com/kb/314984)
Check that it is ok:
- net use \\c$ should work
- the current user (i.e. user in administrator group) should have all privileges on the default share
Retry the installation
- Remove the administrative share again
为 C$ 启用管理共享(请与您的系统管理员联系以执行此操作或参阅 Microsoft 文档http://support.microsoft.com/kb/314984)
检查是否正常:
- net use \\c$ 应该可以工作
- 当前用户(即管理员组中的用户)应该拥有默认共享的所有权限
重试安装
- 再次删除管理共享
Problem 2: Remove the OracleRemExecService before doing the Oracle Client 12c Release 1 32-bit or 64-bit installation on the same Microsoft Windows x64 (64-bit) after installing the Oracle 64-bit or 32-bit software .
问题 2:在安装 Oracle 64 位或 32 位软件后,在同一 Microsoft Windows x64(64 位)上执行 Oracle Client 12c Release 1 32 位或 64 位安装之前删除 OracleRemExecService。
- Go to the Windows 'Services'
- Stop OracleRemExecServiceV2
- 转到 Windows“服务”
- 停止 OracleRemExecServiceV2
( This service is having a intelligence .Once someone tries to stop it this service gets deleted. This is due to the fact ,that this service is not running from the Oracle Home like other oracle services ,but from temp . For example : C:\Users\AppData\Local\Temp\oraremservi...)
(这个服务有一个智能。一旦有人试图阻止它,这个服务就会被删除。这是因为这个服务不像其他 oracle 服务那样从 Oracle Home 运行,而是从 temp 运行。例如:C: \Users\AppData\Local\Temp\oraremservi...)
- Then try to install the Oracle 12c 32-bit or 64-bit on the same Microsoft Windows x64 (64-bit)
- 然后尝试在同一个 Microsoft Windows x64(64 位)上安装 Oracle 12c 32 位或 64 位
回答by user4494506
I found another situation in which this problem may arise (despite following the steps listed by other users above) and that's when the username of the user you're logged in as has an '_' on it. The path it will try to use to find the temp directory is whatever is set in %TEMP%. I managed to work around it by:
我发现了另一种可能会出现此问题的情况(尽管遵循了上面其他用户列出的步骤),那就是您登录的用户的用户名上带有“_”。它将尝试用于查找临时目录的路径是 %TEMP% 中设置的任何内容。我设法通过以下方式解决它:
- Launch cmd.exe in Administrator mode
- SET TEMP = C:\TEMP
- Run the installer from that command window
- 以管理员模式启动 cmd.exe
- 设置温度 = C:\TEMP
- 从该命令窗口运行安装程序
Installed successfully that way.
这样就安装成功了。
回答by 200999
(Solution) Same problem: Windows 10 vs. Oracle 11g (11.2.0.4)
(解决方案)同样的问题:Windows 10 vs. Oracle 11g (11.2.0.4)
The problem arises again with the final release of Windows 10 (and Server 2016 Preview 3 too) using e. g. Oracle 11g (11.2.0.4, 64 bit) after installation tasks worked fine with several preview builds of Windows 10. All things said above are o. k. resp. do not work.
使用 Oracle 11g(11.2.0.4,64 位)等最终版本的 Windows 10(以及 Server 2016 Preview 3)再次出现问题,安装任务在 Windows 10 的多个预览版本中运行良好。上述所有内容都可以分别 不工作。
The ultimate cause is an incompatibility of OracleRemExecService (vs. RemoteExecService.exe): as known, at the beginning of installation process it is created via %TEMP%\oraremservice. If you watch it e. g. with Sysinternals' ProcessMonitor using an appropriate filter, you can see several crashes (the most of them with "buffer Overflow") and restarts, and there are also corresponding with messages in Windows' "System" event log.
最终原因是 OracleRemExecService(与 RemoteExecService.exe)不兼容:众所周知,在安装过程开始时,它是通过 %TEMP%\oraremservice 创建的。例如,如果您使用适当的过滤器通过 Sysinternals 的 ProcessMonitor 观看它,您会看到几次崩溃(其中大多数是“缓冲区溢出”)并重新启动,并且在 Windows 的“系统”事件日志中也有相应的消息。
If you start (after deleting the HKLM\Software\oracle in the registry) the installation several times (more than three times - see below) it suddenly works. The reason for this behaviour is Windows' "Fault Tolerant Heap" mechanism (see https://msdn.microsoft.com/de-de/library/windows/desktop/dd744764(v=vs.85).aspx)that creates after three attempts within 60 minutes (see http://blogs.technet.com/b/askperf/archive/2009/10/02/windows-7-windows-server-2008-r2-fault-tolerant-heap-and-memory-management.aspx) a FTH entry in HKLM\Software\Microsoft\FTH\State and a corresponding shim in HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers. Although the content of the FTH entry is related to the current process of RemoteExecService.exe you can import the registry keys to a system before you start the DB installation. If you set Windows' %TEMP% environment variable and also%TMP% (due to the fact that Oracle uses bothdirectories while creating the things around OracleRemExecService) to a predefined value (e. g. C:\TEMP) you are able to use this for all your installation tasks as follows (unfortunately, it works only with Windows 10, not Server 2016 - updated 2015-09-24, see below):
如果您启动(在注册表中删除 HKLM\Software\oracle 之后)安装几次(超过 3 次 - 见下文),它会突然起作用。这种行为的原因是 Windows 的“容错堆”机制(请参阅https://msdn.microsoft.com/de-de/library/windows/desktop/dd744764(v=vs.85).aspx)在在 60 分钟内尝试了 3 次(参见http://blogs.technet.com/b/askperf/archive/2009/10/02/windows-7-windows-server-2008-r2-fault-steroid-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 周围的事物时使用这两个目录的事实)设置为预定义值(例如 C:\TEMP),您可以将其用于您的所有安装任务如下(不幸的是,它仅适用于 Windows 10,不适用于 Server 2016 - 2015-09-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
Update 2015-09-24: With Server 2016 (Preview 3), it's a little bit more tricky: first you also have to set the environment variable %TEMP% e. g. to C:\Temp and to import the registry keys above (after this, it's no bad idea to restart the system). Than you start the Oracle installation using an additional parameter:
2015 年 9 月 24 日更新:使用 Server 2016(预览版 3),这有点棘手:首先,您还必须将环境变量 %TEMP% 设置为 C:\Temp 并导入上面的注册表项(在此之后,重启系统也不错)。然后使用附加参数启动 Oracle 安装:
setup.exe -debug
setup.exe -debug
If you watch what happens in %TEMP% you can see that the folder %TEMP%\oraremservice\ is created twice: after first creation, the installer seems to notice that the service does not work, deletes the folder and creates it again. After this, the Installation process works as expected.
如果您观察 %TEMP% 中发生的情况,您可以看到文件夹 %TEMP%\oraremservice\ 被创建了两次:第一次创建后,安装程序似乎注意到该服务不起作用,删除该文件夹并再次创建它。在此之后,安装过程按预期工作。
Update 2015-11-27: - Using Windows Server 2016 Preview 4, the workaround via "setup.exe -debug" is not necessary anymore; you can proceed as described for Windows 10. - Of course, you do not need the procedure with new C:\TEMP vs. %TEMP% and %TMP% if you have a defined user (e. g. Administrator). Then you can use modified registry items like this:
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
Update 2017-01-31: Tested all builds of Windows 10 (Insider Preview) until now, so we have seen a new problem coming up with build 15002: the Oracle setup isn't able to determine the PATH variable anymore (the variable itself, not a wrong content or so on!). So all attempts to install the Oracle DB fail. Comparing the registry of the Windows versions and "playing around" with this variable and their contents did not help. The only work-around is to edit the related XML file \64bit|32bit\stage\cvu\cvu_prereq.xml and delete in the section all tags ... (or this tag only in the last item "Windows Server 2012"). And btw: despite of we are primary using Oracle 11g this new installation problem also occurs using the up to date setup of Oracle 12c...
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 的最新设置也会出现这个新安装问题......
回答by sui.zhiyuan
This error could caused by a username with Chinese characters.
此错误可能是由带有中文字符的用户名引起的。
- Create a new local windows user with an English username. Make sure there are no spaces in the username.
- Install Oracle using the user you just created.
- 使用英文用户名创建一个新的本地 Windows 用户。确保用户名中没有空格。
- 使用您刚刚创建的用户安装 Oracle。
回答by user187557
Try cleaning your hosts file.
尝试清理您的主机文件。
I spent about half a day on this, and none of these answers worked for me. I finally found the solution hinted at on OTN (the last place I look when I run into Oracle issues), and someone mentioned looking at the hosts file. I had recently modified the hosts file because this particular machine didn't have access to DNS.
我花了大约半天的时间,这些答案都不适合我。我终于在 OTN 上找到了暗示的解决方案(我遇到 Oracle 问题时最后看到的地方),有人提到查看主机文件。我最近修改了主机文件,因为这台特定的机器无法访问 DNS。
I had a line for this host:
我对这位主持人有一条线路:
123.123.123.123 fully.qualified.domain.name.com hostname
Commenting out the line above allowed me to install the Oracle client.
注释掉上面的行允许我安装 Oracle 客户端。
回答by Michael
The main problem in your case would be failure of accessing \\localhost\c$
您的情况的主要问题是访问\\localhost\c$失败
If you get an error while trying to access the Windows hidden C share (C$):
如果您在尝试访问 Windows 隐藏的 C 共享 (C$) 时遇到错误:
C:\> net use \\localhost\c$
System error 53 has occurred.
The network path was not found.
C:\> net use \\localhost\c$
发生系统错误 53。
找不到网络路径。
You may find the following articles useful: KB254210and KB951016.
您可能会发现以下文章很有用:KB254210和KB951016。
A simple thing is just to make sure your TCP/IP NetBIOS Helper and Server services are running (Start-Run, services.msc) and try again:
一个简单的事情就是确保您的 TCP/IP NetBIOS Helper 和服务器服务正在运行(开始-运行,services.msc)并重试:
C:\> net use \localhost\c$
The command completed successfully.
C:\> net use \localhost\c$
命令成功完成。
Of course, your user must be either an administrator or be part of the administrator group.
当然,您的用户必须是管理员或属于管理员组。
If it still fails, manually edit the registry (Start-Run, regedit). Browse to:
如果仍然失败,请手动编辑注册表(开始-运行、regedit)。浏览至:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
and create a new DWORD value LocalAccountTokenFilterPolicy set to 1
After solving this issue and installing Oracle Database Server, you can disable back your TCP/IP NetBIOS Helperservice if you don't need it anymore.
References: http://groglogs.blogspot.ro/2013/11/windows-cannot-access-hidden-c-admin.html
For others:
If you don't have the problem with \\localhost\c$, then you might have the other problem with your username as the others stated (e.g. username with '_' in it):
This will get solved by changing TEMPand TMPenvironment variables from a command line and then running setup.exefrom there.
并创建一个新的 DWORD 值 LocalAccountTokenFilterPolicy 设置为 1
解决此问题并安装 Oracle 数据库服务器后,如果您不再需要它,您可以禁用TCP/IP NetBIOS Helper服务。
参考:http: //groglogs.blogspot.ro/2013/11/windows-cannot-access-hidden-c-admin.html
对于其他人:
如果你没有\\localhost\c$ 的问题,那么你您的用户名可能有其他问题,如其他人所述(例如,用户名中带有“_”):
这将通过从命令行更改TEMP和TMP环境变量,然后从那里运行setup.exe来解决。
If this still doesn't work:
Try running setup.exe with "-debug" option and see what happens in there.
You may also want to check what's in the .log files created in your %TEMP% folder (e.g. ssproiut_%number%.log)
如果这仍然不起作用:
尝试使用“ -debug”选项运行 setup.exe并查看其中发生了什么。
您可能还想检查 %TEMP% 文件夹中创建的 .log 文件中的内容(例如 ssproiut_%number%.log)
回答by JoeH
You can configure setup.exe to skip this check using the parameters below -
您可以使用以下参数配置 setup.exe 以跳过此检查 -
setup.exe -ignorePrereq -ignorePrereq -J"-Doracle.install.db.validate.supportedOSCheck=false"
回答by Philm
Summarized: Oracle under Windows has problems with usernames containing non-English letters or special characters:
总结:windows下oracle出现用户名包含非英文字母或特殊字符的问题:
If your machine is fresh installed, first look here. All the network related or 32 vs. 64 related issues may be not significant for you:
如果您的机器是全新安装的,请首先查看此处。所有与网络相关或 32 与 64 相关的问题对您来说可能并不重要:
As others already pointed out partly, this error is highly related to the name of the TEMP dir. It occurred to me when installing Oracle 11g first time on a totally fresh Windows (e.g. Server 2008 R2 or Win 7, not important).
正如其他人已经部分指出的那样,此错误与 TEMP 目录的名称高度相关。我第一次在全新的 Windows(例如 Server 2008 R2 或 Win 7,不重要)上安装 Oracle 11g 时想到了这一点。
As I found out, on my machine the problem was, that the username contained a German special character ("?"). Moreover Oracle cannot handle any special character, I assume, the TEMP path is limited to letters. Other colleagues here have reported problems with underscore and chinese characters.
正如我发现的,在我的机器上,问题是用户名包含一个德语特殊字符(“?”)。此外,我认为 Oracle 无法处理任何特殊字符,TEMP 路径仅限于字母。这里的其他同事报告了下划线和中文字符的问题。
Explanation: In Windows the TEMP dir (environment variable %TEMP%) is by default in the user directory, for example:
说明:在 Windows 中,TEMP 目录(环境变量 %TEMP%)默认位于用户目录中,例如:
C:\Users\ThisUser\AppData\Local\Temp
If "ThisUser" contains special or non-ASCII characters, then in this case this affects the TEMP path, and that is where Oracle is gettings problems.
如果“ThisUser”包含特殊或非 ASCII 字符,那么在这种情况下这会影响 TEMP 路径,这就是 Oracle 出现问题的地方。
Setting the TEMP dir to different directory is of course another possibility instead of installing with another username.
将 TEMP 目录设置为不同的目录当然是另一种可能性,而不是使用其他用户名进行安装。
Moreover, Oracle is not a fully native Windows citizen which everybody will recognize, if he opens the Oracle install logfile with notepad ;-) Obviously, this is not programmed cleanly and portable, e.g. with using "std::endl" instead of "\n" . (Yes, Notepad++ and other editors do the job.)
此外,如果 Oracle 用记事本打开 Oracle 安装日志文件,Oracle 并不是每个人都会认识到的完全原生的 Windows 公民;-) 显然,这不是干净且可移植的,例如使用“std::endl”而不是“\ ñ”。(是的,Notepad++ 和其他编辑器可以完成这项工作。)
Overall, my impression is, if the database were of the same quality as it's installer, Oracle would not be so successful ..
总的来说,我的印象是,如果数据库的质量与其安装程序的质量相同,Oracle 就不会如此成功..
Last remark: Yes, after failed install because of the special characters you see only one Oracle service named OracleRemExecService, but there is no reason to stop this manually as recommended in other solutions, if you are able to install again a fresh OS..
最后一句话:是的,在安装失败后,由于特殊字符,您只能看到一个名为 OracleRemExecService 的 Oracle 服务,但是如果您能够再次安装新的操作系统,则没有理由按照其他解决方案中的建议手动停止此服务。
回答by Meetmauro
My problem was that I had the Server service stopped and this gave exactly this same issue. So started the Server service and the installation worked.
我的问题是我停止了服务器服务,这给出了完全相同的问题。于是启动了服务器服务,安装成功了。