如何卸载/完全删除 Oracle 11g(客户端)?
Posted
技术标签:
【中文标题】如何卸载/完全删除 Oracle 11g(客户端)?【英文标题】:How to uninstall / completely remove Oracle 11g (client)? 【发布时间】:2012-01-17 01:18:30 【问题描述】:如何卸载/完全删除Oracle 11g(客户端)?
deinstall.bat 不起作用。
编辑: 进一步讨论为何关闭和删除此问题:https://meta.stackexchange.com/questions/190441/why-was-this-question-related-to-uninstalling-the-oracle-database-client-deleted
【问题讨论】:
难以置信这个问题被模组关闭了,下面的帖子非常有帮助。希望他们能扩大社区范围以包括“对开发人员有帮助的任何东西”。 @fuzzyanalysis:版主没有关闭这个问题。这些名称旁边没有菱形。他们只是用户。 这个问题获得了 13 次赞成、3 次收藏、1 次重新投票和 69,870 次观看 - 尽管是宝贵的资源,但距离被删除只有 1 票。如果这被认为是 SO 的题外话,那么还有什么其他网站会更好地被认为是题外话?版主是否能够将其移至正确的站点 - 或者甚至可以保护它,而不是让这些知识基本上永远丢失? 覆盖在超级用户:superuser.com/questions/256762/… 【参考方案1】:假设安装的是 Windows,请参考:
http://www.oracle-base.com/articles/misc/ManualOracleUninstall.php
使用 Oracle Universal Installer (OUI) 卸载所有 Oracle 组件。
运行 regedit.exe 并删除 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 键。这包含所有 Oracle 产品的注册表项。
删除注册表以下部分中留下的对 Oracle 服务的任何引用:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ora*
应该
很明显哪些与 Oracle 相关。
重启你的机器。
删除“C:\Oracle”目录,或任何属于您的 ORACLE_BASE 的目录。
删除“C:\Program Files\Oracle”目录。
清空“C:\temp”目录的内容。
清空回收站。
提请大家注意留在这里的一些优秀的 cmets:
遵循此处(上方或下方)列出的任何内容时要小心,因为这样做可能会删除或损坏任何其他 Oracle 安装的产品。 对于 64 位 Windows (x64),您还需要从注册表中删除HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE
键。
通过删除安装到“开始”菜单的所有相关快捷方式进行清理。
清理环境变量:
考虑删除%ORACLE_HOME%
。
从%PATH%
中删除不再需要的所有路径。
这组指令恰好匹配了一个几乎相同的过程,我在安装了几次搞砸的 Oracle 后,多年来对自己进行了逆向工程,并且几乎总能满足需求。
请注意,即使 OUI 不再可用或不起作用,只需执行其余步骤即可。
(Revision #7 已恢复为不错误引用原始来源,并且不删除对答案做出贡献的其他 cmets 的功劳。如果有办法,欢迎进一步编辑(然后请删除此评论)可以找到维护这些注意事项。)
【讨论】:
对于 64 位窗口,您还需要删除 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE 键 首先,删除“C:\Program Files\Oracle”时要小心,它也可能包含其他产品。其次,您可能需要手动清理开始菜单;) 不要忘记清理路径设置并删除 ORACLE_HOME 环境变量。 您使用 / 而不是 \ 有点烦人:P @gbtimmon - 我假设您指的是注册表路径。我只是按原样引用了原始文章。无论如何,它们现在已修复。 :-)【参考方案2】:按照 ziesemer 的建议做所有事情。
您可能还想从注册表中删除:
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\<any Ora* drivers> keys
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers<any Ora* driver> values
因此它们不再出现在 ODBC 数据源管理器的“系统上安装的 ODBC 驱动程序”中
【讨论】:
不要忘记 64 位 Windows 上的 32 位条目:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\...
小心HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\Microsoft ODBC for Oracle
。此驱动程序由 Microsoft 提供,即 Windows 安装的一部分。当您删除它时,您将无法在安装新的 Oracle 客户端时恢复它。【参考方案3】:
按照 ziesemer 的建议做所有事情。
您可能还想:
停止与 Oracle 相关的服务(在从 注册表)。 在注册表中,不仅要查找名为“Oracle”的条目 但也例如“ODP”。【讨论】:
【参考方案4】:还有一些您应该考虑的操作:
删除 MS 分布式事务协调器 (MSDTC) 的注册表项
注意:在 Internet 上,我仅在单个(私人)页面上找到了此步骤。我不知道它是否需要/工作,或者它是否会破坏您 PC 上的任何东西。
打开注册表 导航到HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC\MTxOCI
在 OracleOciLib
、OracleSqlLib
和 OracleXaLib
的每个字符串前添加一个 x
导航到HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\MSDTC\MTxOCI
在 OracleOciLib
、OracleSqlLib
和 OracleXaLib
的每个字符串前添加一个 x
否则这些文件(如果存在)在您下次重新启动时仍然在使用,并且无法删除。
删除环境变量ORACLE_HOME
、ORACLE_BASE
、TNS_ADMIN
、NLS_LANG
(如果存在)
还可以查看 Oracle 文档以查找所有与 Oracle 相关的环境变量,但是除了上面列出的变量之外,它们很少在 Windows 客户端上使用:Oracle Environment Variables
取消注册 oci.dll
打开命令行窗口(开始菜单 -> 运行... -> cmd)分别输入regsvr32 /u oci.dll
。 %windir%\SysWOW64\regsvr32 /u oci.dll
在某些情况下,文件%ORACLE_HOME%\bin\oci.dll
被锁定,您无法将其删除。在这种情况下,重命名文件(例如改名为 oci.dll.x)并重新启动 PC,然后您可以将其删除。
从全局程序集缓存 (GAC) 中删除 Oracle .NET 程序集。您通常使用gacutil 实用程序(如果您的系统上可用)来执行此操作。会是这样的:
gacutil /u Policy.10.1.Oracle.DataAccess
gacutil /u Policy.10.2.Oracle.DataAccess
gacutil /u Policy.1.102.Oracle.DataAccess
gacutil /u Policy.1.111.Oracle.DataAccess
gacutil /u Policy.2.102.Oracle.DataAccess
gacutil /u Policy.2.111.Oracle.DataAccess
gacutil /u Policy.2.112.Oracle.DataAccess
gacutil /u Policy.2.121.Oracle.DataAccess
gacutil /u Policy.2.122.Oracle.DataAccess
gacutil /u Policy.4.112.Oracle.DataAccess
gacutil /u Policy.4.121.Oracle.DataAccess
gacutil /u Policy.4.122.Oracle.DataAccess
gacutil /u Oracle.DataAccess
gacutil /u Oracle.DataAccess.resources
gacutil /u Policy.4.121.Oracle.ManagedDataAccess
gacutil /u Policy.4.122.Oracle.ManagedDataAccess
gacutil /u Oracle.ManagedDataAccess
gacutil /u Oracle.ManagedDataAccess.resources
gacutil /u Oracle.ManagedDataAccessDTC
gacutil /u Oracle.ManagedDataAccessIOP
gacutil /u Oracle.ManagedDataAccess.EntityFramework
不应删除条目 System.Data.OracleClient
,这是由 Microsoft 安装的 - 不是 Oracle 组件!
如果 OraProvCfg 在您的系统上仍然可用,您也可以使用 OraProvCfg /action:ungac /providerpath:...
而不是 gacutil /u ...
。您可以在%ORACLE_HOME%\odp.net\managed\x64\OraProvCfg.exe
找到它。
使用文本编辑器打开 XML 配置文件 %SYSTEMROOT%\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
并删除分支 <oracle.manageddataaccess.client>
(如果存在)。
做同样的事情:
%SYSTEMROOT%\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
%SYSTEMROOT%\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319\Config\web.config
除了手动编辑 XML 配置文件,您还可以运行(如果 OraProvCfg.exe 在您的系统上仍然可用):
%ORACLE_HOME%\odp.net\managed\x64\OraProvCfg.exe /action:unconfig /product:odpm /frameworkversion:v4.0.30319
%ORACLE_HOME%\odp.net\managed\x86\OraProvCfg.exe /action:unconfig /product:odpm /frameworkversion:v4.0.30319
%ORACLE_HOME%\odp.net\managed\x64\OraProvCfg.exe /action:unconfig /product:odp /frameworkversion:v4.0.30319
%ORACLE_HOME%\odp.net\managed\x86\OraProvCfg.exe /action:unconfig /product:odp /frameworkversion:v4.0.30319
检查以下注册表项并删除它们(如果存在)
HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\ODP.Net
HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\ODP.Net
HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\Oracle.ManagedDataAccess
HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\Oracle.ManagedDataAccess.EntityFramework6
HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\odp.net.managed
HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\Oracle.DataAccess.EntityFramework6\
HKLM\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\ODP.Net
HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\ODP.Net
HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\Oracle.ManagedDataAccess
HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\Oracle.ManagedDataAccess.EntityFramework6
HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\odp.net.managed
HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\Oracle.DataAccess.EntityFramework6\
HKLM\SYSTEM\CurrentControlSet\Services\EventLog\Application\Oracle Data Provider for .NET, Managed Driver
HKLM\SYSTEM\CurrentControlSet\Services\EventLog\Application\Oracle Data Provider for .NET, Unmanaged Driver
HKLM\SYSTEM\CurrentControlSet\Services\EventLog\Application\Oracle Provider for OLE DB
删除 Inventory 文件夹,通常是 C:\Program Files\Oracle\Inventory
和 C:\Program Files (x86)\Oracle\Inventory
删除临时文件夹 %TEMP%\deinstall\
、%TEMP%\OraInstall\
和 %TEMP%\CVU*
(例如 %TEMP%\CVU_11.1.0.2.0_domscheit
)(如果存在)。
【讨论】:
要从 GAC 中删除项目,您可能需要使用 Visual Studio 附带的 gacutil.exe。例如'gacutil /u Oracle.DataAccess'。 如果找不到 GAC ,请关注this 同时从“C:\Windows\Microsoft.NET\assembly\GAC_32”和“C:\Windows\Microsoft.NET\assembly”中删除 oracle* 和 policyOracle 文件夹\GAC_64"。 同时从“C:\Users\%TEMP%
中删除,它可以指向不同的文件夹。以上是关于如何卸载/完全删除 Oracle 11g(客户端)?的主要内容,如果未能解决你的问题,请参考以下文章