【问题标题】:How to uninstall / completely remove Oracle 11g (client)?如何卸载/完全删除 Oracle 11g(客户端)?
【发布时间】: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/…

标签: oracle oracle11g


【解决方案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
      • OracleOciLibOracleSqlLibOracleXaLib 的每个字符串前添加一个 x
      • 导航到HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\MSDTC\MTxOCI
      • OracleOciLibOracleSqlLibOracleXaLib 的每个字符串前添加一个 x

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

    • 删除环境变量ORACLE_HOMEORACLE_BASETNS_ADMINNLS_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 并删除分支 &lt;oracle.manageddataaccess.client&gt;(如果存在)。

      • 做同样的事情:

        %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\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'。
    • 如果找不到 GAC ,请关注this
    • 同时从“C:\Windows\Microsoft.NET\assembly\GAC_32”和“C:\Windows\Microsoft.NET\assembly”中删除 oracle* 和 policyOracle 文件夹\GAC_64"。
    • 同时从“C:\Users\\AppData\Local\Temp”中删除 OraInstall* 文件夹
    • @Gokul,最好写:从文件夹 %TEMP% 中删除,它可以指向不同的文件夹。
    猜你喜欢
    • 2015-04-27
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 2020-10-05
    • 2020-09-10
    • 2021-12-08
    • 2018-03-09
    • 1970-01-01
    相关资源
    最近更新 更多