如何卸载/完全删除Oracle 11g(客户端)?


78

如何卸载/完全删除Oracle 11g(客户端)?

deinstall.bat不起作用。

编辑: 关于为什么关闭和删除此问题的进一步讨论:https : //meta.stackexchange.com/questions/190441/why-was-this-question-related-to-uninstalling-the-oracle-database-client-已删除


7
令人难以置信的是,这个问题已被mods关闭,下面的帖子非常有帮助。希望他们将社区范围扩大到包括“对开发人员有帮助的所有内容”。
模糊分析

1
@fuzzyanalysis:主持人未关闭此问题。这些名称旁边没有钻石。他们只是用户。
麦芽酒

5
这个问题有13个投票,3个收藏夹,1个重开投票和69,870次查看-尽管是宝贵的资源,但只有1票被删除。如果这被认为是SO的题外话,哪个其他站点最好被认为是题外呢?主持人是否可以将其移至正确的站点-甚至可以保护它,而不是使该知识永久消失?
ziesemer

Answers:


134

假设安装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”目录的内容。
  • 清空回收站。

提请您进一步注意此处留下的一些重要评论:

  • 遵循此处(上面或下面)列出的内容时,请小心,因为这样做可能会删除或损坏任何其他Oracle安装的产品。
  • 对于64位Windows(x64),还需要HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE从注册表中删除密钥。
  • 通过删除“开始”菜单中安装的所有相关快捷方式进行清理。
  • 清理环境变量:
    • 考虑删除%ORACLE_HOME%
    • 从中删除不再需要的所有路径%PATH%

这组说明恰好与我在几年搞乱了Oracle的安装后多年对我自己进行反向工程的过程几乎完全相同,并且几乎始终可以满足需要。

请注意,即使OUI不再可用或不起作用,只需遵循其余步骤就足够了。

修订版#7已还原为不会错误引用原始来源,也不会删除对促成答案的其他评论的信誉。如果可以找到一种方法来维护这些内容,请进一步编辑(然后删除此评论)。注意事项。)


4
对于64位窗口,还需要删除HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ ORACLE密钥
itsho 2013年

3
首先,删除“ C:\ Program Files \ Oracle”时要小心,它可能也包含其他产品。其次,您可能需要手动清洁开始菜单;)
user123444555621

2
不要忘记清理路径设置并删除ORACLE_HOME环境变量。
布拉德·布鲁斯

1
它使用/而不是\
有点烦人

1
@gbtimmon-我假设您是指注册表路径。我只是在原始文章中引用了“原样”。无论如何,它们现在已修复。:-)
ziesemer 2014年

10

您还应该考虑其他一些操作:

  • 删除MS分布式事务处理协调器(MSDTC)的注册表项

    注意:在Internet上,我仅在单个(私有)页面上找到了此步骤。我不知道它是否是必需的/是否正常工作,或者它是否破坏了PC上的任何内容。

    • 打开注册表编辑器
    • 导航 HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC\MTxOCI
    • 每个字符串前加一个X OracleOciLibOracleSqlLibOracleXaLib
    • 导航 HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\MSDTC\MTxOCI
    • 每个字符串前加一个X OracleOciLibOracleSqlLibOracleXaLib

    否则,这些文件(如果存在)将在您下次重新引导时仍在使用中,并且无法删除。

  • 删除环境变量ORACLE_HOMEORACLE_BASETNS_ADMINNLS_LANG如果存在

    另请查阅Oracle文档以查找所有与Oracle相关的环境变量,但是除了上面列出的变量之外,它们很少在Windows客户端上使用:Oracle环境变量

  • 注销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组件!

    • 如果您的系统上仍然可以gacutil /u ...使用OraProvCfg /action:ungac /providerpath:...OraProvCfg ,也可以使用。您可以在找到它%ORACLE_HOME%\odp.net\managed\x64\OraProvCfg.exe

  • 使用文本编辑器打开XML Config文件%SYSTEMROOT%\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config并删除branch <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 Config文件(如果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
    
  • 通常,删除库存文件夹 C:\Program Files\Oracle\InventoryC:\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”。
scott-pascoe

如果您找不到GAC,请遵循
Gokul

还要从“ C:\ Windows \ Microsoft.NET \ assembly \ GAC_32”和“ C:\ Windows \ Microsoft.NET \ assembly \ GAC_64”中删除oracle *和策略Oracle文件夹。
Gokul

还要从“ C:\ Users \ <用户> \ AppData \ Local \ Temp”中删除OraInstall *文件夹
Gokul

@Gokul,更好的写法:从文件夹%TEMP%中删除,它可以指向其他文件夹。
Wernfried Domscheit

8

尽一切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\...
Wernfried Domscheit,2015年

4
请注意HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\Microsoft ODBC for Oracle。此驱动程序由Microsoft提供,即Windows安装的一部分。删除它后,在安装新的Oracle Client时将不会找回它。
Wernfried Domscheit 2015年

3

尽一切ziesemer建议。

您可能还想:

  • 停止与Oracle相关的服务(在从注册表中删除它们之前)。
  • 在注册表中,不仅要查找名为“ Oracle”的条目,还要查找例如“ ODP”的条目。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.