.net OracleMTSRecoveryService 启动失败?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/7868909/
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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-03 15:58:55  来源:igfitidea点击:

OracleMTSRecoveryService failed to start?

.netoracleodac

提问by Talal

i am getting this error while starting OracleMTSRecoveryService:

我在启动时收到此错误OracleMTSRecoveryService

Could not start the OracleMTSRecoveryService service on Local Computer.
Error 1: Incorrect function.*

Also during installation of ODAC service start failed.

同样在安装ODAC 服务期间启动失败

OracleXETNSListeneris also not starting. i have reinstalled ODAC but problem remains.

OracleXETNSListener也没有开始。我已经重新安装了 ODAC,但问题仍然存在。

any suggestions? Any service conflicts?

有什么建议?任何服务冲突?

回答by AndrewB

Look at the registry value HKEY_LOCAL_MACHINE\Software\Oracle\OracleMTSRecoveryService\Protid_0\and make sure that the host name matches your machine name.

查看注册表值HKEY_LOCAL_MACHINE\Software\Oracle\OracleMTSRecoveryService\Protid_0\并确保主机名与您的机器名匹配。

If you have Windows 7the registry path is

如果您使用的是Windows 7,则注册表路径为

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\OracleMTSRecoveryService\Protid_0

回答by Brett

This worked for me as well, but the registry path was wrong. I'm running Windows 7 and the Oracle 11gR2 client and the registry path is:

这对我也有效,但注册表路径错误。我正在运行 Windows 7 和 Oracle 11gR2 客户端,注册表路径是:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\OracleMTSRecoveryService\Protid_0

Here is the registry file:

这是注册表文件:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\OracleMTSRecoveryService\Protid_0]
"Name"="HTTP"
"Host"="putyourmachinesnamehere.com"
"Port"="2030"

回答by irfan

I have windows 7, i had same problem but the reason of my problem was, i deleted the original oracle folder from C:\app------\product\11.2.0\dbhome_1\BIN\omtsreco.exe, so that is why it was failing.

我有 Windows 7,我有同样的问题,但我的问题的原因是,我从 C:\app------\product\11.2.0\dbhome_1\BIN\omtsreco.exe 中删除了原来的 oracle 文件夹,所以这就是它失败的原因。

these steps worked for me :)

这些步骤对我有用:)

This worked for me in Windows 7:

这在 Windows 7 中对我有用:

  1. Open your Registry Editor window running command: regedit

  2. Keep error window opened while you change the following registry-key value:

  1. 打开您的注册表编辑器窗口运行命令:regedit

  2. 更改以下注册表项值时保持错误窗口打开:

"Computer\hkey_local_machine\system\controlset001\service\OracleMTSRecoveryService".

“计算机\hkey_local_machine\system\controlset001\service\OracleMTSRecoveryService”。

  1. Search for ImagePath Value and change the path to where your Oracle is actually installed. In your case is C:\app\myuser\product\11.2.0\dbhome_1\BIN\omtsreco.exe "OracleMTSRecoveryService"
  1. 搜索 ImagePath 值并将路径更改为实际安装 Oracle 的位置。在你的情况下是 C:\app\myuser\product\11.2.0\dbhome_1\BIN\omtsreco.exe "OracleMTSRecoveryService"

回答by Paolo Ditarso

I did open up regedit and the server name was wrong because I was trying to install the Oracle 11g software on a clone copy of our production server. So the hostname was still matching that of the production server. I right clicked on Host and choosed modify then changed the server name to my current(cloned) server name

我确实打开了 regedit 并且服务器名称是错误的,因为我试图在我们的生产服务器的克隆副本上安装 Oracle 11g 软件。所以主机名仍然与生产服务器的主机名相匹配。我右键单击主机并选择修改然后将服务器名称更改为我当前(克隆)的服务器名称

回答by Tatiana B

I had the same problem and my issue was that the host name was wrong in my tnsnamesand listenerfolders from C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN

我遇到了同样的问题,我的问题是我的tnsnameslistener文件夹中的主机名错误C:\oraclex\app\oracle\product\11.2.0\server\network\ADMIN

This happened after a domain migration of my computer as it's name changed.

这发生在我的计算机的域迁移之后,因为它的名称已更改。

回答by Gopal00005

Just changed following registries:

刚刚更改了以下注册表:

Step 1. : Update path in registry:

第 1 步:更新注册表中的路径:

HKEY_LOCAL_MACHINE\system\controlset001\service\OracleMTSRecoveryService

 Set appropriate imagepath entry for file omtsreco.exe

 In my case it's : `E:\app1\NAL65\product\11.2.0\dbhome_1\BIN

Step 2. : Update host in registry:

HKEY_LOCAL_MACHINE\system\controlset001\service\OracleMTSRecoveryService

 为文件omtsreco.exe设置适当的图像路径条目

 在我的情况下它是:`E:\app1\NAL65\product\11.2.0\dbhome_1\BIN

第 2 步:更新注册表中的主机:

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ORACLE\OracleMTSRecoveryService\Protid_0

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ORACLE\OracleMTSRecoveryService\Protid_0

 it may be deffer for you like:

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\OracleMTSRecoveryService\Protid_0

 它可能对您有所延迟,例如:

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\OracleMTSRecoveryService\Protid_0

 By default it takes DESKTOP-DESKTOP replace it with original one.

 默认情况下,DESKTOP-DESKTOP 将其替换为原始的。

Step 3: retry

第 3 步:重试

That's it !!!

就是这样 !!!

回答by XDS

This issue came up all of a sudden with the service of Oracle12c-32bit (version 12.1.0.2.0). For me the issue turned out to be that the permissions of one or more files/folders under:

Oracle12c-32bit(12.1.0.2.0版本)的服务突然出现这个问题。对我来说,问题是以下一个或多个文件/文件夹的权限:

C:\oracle\client\\product\12.1.0\client_1

C:\oracle\client\product\12.1.0\client_1

Got changed in a way that was causing the error at hand ('permission denied' as seen on windows event logs). I simply made a recursive change of permissions on C:\oracle effectively granting full-access everywhere under the root folder to all the users and groups that had full access to C:\oracle.

以导致手头错误的方式进行了更改(在 Windows 事件日志中可以看到“权限被拒绝”)。我只是对 C:\oracle 的权限进行了递归更改,有效地授予对 C:\oracle 具有完全访问权限的所有用户和组在根文件夹下的所有位置的完全访问权限。

The weird thing about all this is that only the 32bit oracle-service got clogged due to insufficient permissions. My 64bit oracle-service didn't suffer from a similar issue which is weird. I don't know where to attribute the "spontaneous permissions-tweak" that broke the 32bit service. Go figure ...

所有这一切的奇怪之处在于,由于权限不足,只有 32 位 oracle 服务被阻塞。我的 64 位 oracle 服务没有遇到类似的奇怪问题。我不知道将破坏 32 位服务的“自发权限调整”归因于何处。去搞清楚 ...

回答by Yassine Souabni

to AndrewB Thanks very much - this worked for me.

非常感谢 AndrewB - 这对我有用。

I also got there using procmon.exe from sysinternals filter :

我还使用来自 sysinternals 过滤器的 procmon.exe 到达那里:

process=omtsreco.exe then filtered to view only registry entries.... Had to update the hostname (full computer name of the server) by the new one.

process=omtsreco.exe 然后过滤以仅查看注册表项.... 必须通过新的主机名(服务器的完整计算机名称)更新。

Thanks again.

再次感谢。

回答by Piper

In my case it helped to set the Oracle installation folder to the PATH environment variable, e.g. to c:\oracle\odac.

就我而言,它有助于将 Oracle 安装文件夹设置为 PATH 环境变量,例如设置为 c:\oracle\odac。

回答by Guillermo Garcia

This worked for me in Windows 7:

这在 Windows 7 中对我有用:

1.Open your Registry Editor window running command: regedit

1.打开您的注册表编辑器窗口运行命令:regedit

2.Keep error window opened while you change the following registry-key value:

2.在更改以下注册表项值时保持错误窗口打开:

"Computer\hkey_local_machine\system\controlset001\service\OracleMTSRecoveryService".

“计算机\hkey_local_machine\system\controlset001\service\OracleMTSRecoveryService”。

3.Search for ImagePath Value and change the path to where your Oracle is actually installed. In y case is C:\app\myuser\product\11.2.0\dbhome_1\BIN\omtsreco.exe "OracleMTSRecoveryService"

3.搜索 ImagePath Value 并更改 Oracle 实际安装位​​置的路径。在 y 情况下是 C:\app\myuser\product\11.2.0\dbhome_1\BIN\omtsreco.exe "OracleMTSRecoveryService"

4.Go back to error window and click in Retry.

4.返回错误窗口并单击重试。

And fixed it!

并修复了它!