Вопрос:
Как удалить/полностью удалить Oracle 11g (клиент)?
deinstall.bat не работает.
Изменить: Дальнейшее обсуждение связано с тем, почему этот вопрос был закрыт и удален: https://meta.stackexchange.com/questions/190441/why-was-this-question-related-to-uninstalling-the-oracle-database-client-deleted
Ответ №1
Предполагая установку Windows, пожалуйста, обратитесь к этому:
http://www.oracle-base.com/articles/misc/ManualOracleUninstall.php
- Удалите все компоненты Oracle с помощью Oracle Universal Installer (OUI).
- Запустите regedit.exe и удалите ключ HKEY_LOCAL_MACHINESOFTWAREORACLE. Это содержит реестр для всех продуктов Oracle.
- Удалите любые ссылки на службы Oracle, оставленные в следующей части реестра: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesOra* Он должен достаточно очевидны, какие из них относятся к Oracle.
- Перезагрузите компьютер.
- Удалите каталог “C:Oracle”, или любой другой каталог – ваш ORACLE_BASE.
- Удалите каталог “C:Program FilesOracle”.
- Очистить содержимое вашего каталога “C:temp”.
- Очистите корзину.
Призывая дополнительное внимание к замечательным комментариям, которые остались здесь:
- Будьте осторожны, следуя приведенным здесь указаниям (выше или ниже), так как это может удалить или повредить любые другие продукты, установленные Oracle.
- Для 64-разрядной Windows (x64) вам также необходимо удалить ключ HKEY_LOCAL_MACHINESOFTWAREWow6432NodeORACLE из реестра.
- Очистка путем удаления любых связанных ярлыков, которые были установлены в меню “Пуск”.
- Переменные среды очистки:
- Рассмотрим удаление %ORACLE_HOME%.
- Удалите все пути, которые больше не нужны от %PATH%.
Этот набор инструкций соответствует почти идентичному процессу, который я менял с обратной стороны на протяжении многих лет после того, как несколько испорченных Oracle устанавливались и почти всегда удовлетворяли потребности.
Обратите внимание, что даже если OUI больше не доступен или не работает, просто после оставшихся шагов должно быть достаточно.
(Редакция № 7 вернулась, чтобы не ошибочно считать исходный источник и не удалять кредит на другие комментарии, которые способствовали ответу. (и затем удалите этот комментарий), если можно найти способ сохранить эти соображения.)
Ответ №2
Есть еще несколько действий, которые вы должны рассмотреть:
-
Удалить записи реестра для координатора распределенных транзакций MS (MSDTC)
Примечание: в Интернете я нашел этот шаг только на одной (частной) странице. Я не знаю, требуется ли это/работает или что-то ломается на вашем компьютере.
- Открыть Regedit
- Перейдите к HKEY_LOCAL_MACHINESoftwareMicrosoftMSDTCMTxOCI
- Добавьте x перед каждой строкой для OracleOciLib, OracleSqlLib и OracleXaLib
- Перейдите к HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftMSDTCMTxOCI
- Добавьте x перед каждой строкой для OracleOciLib, OracleSqlLib и OracleXaLib
В противном случае эти файлы, если они существуют, все равно будут использоваться при следующей перезагрузке и не могут быть удалены.
-
Удалите переменную среды ORACLE_HOME, ORACLE_BASE, TNS_ADMIN, NLS_LANG если существуют
Проверьте также документ Oracle, чтобы найти все переменные среды, связанные с Oracle, однако кроме перечисленных выше переменных они очень редко используются в клиенте Windows: переменные среды Oracle
-
Отменить регистрацию oci.dll
- Откройте окно командной строки (меню Пуск → Выполнить… → cmd)
-
Введите regsvr32/u oci.dll, соответственно. %windir%SysWOW64regsvr32/u oci.dll
-
В некоторых случаях файл %ORACLE_HOME%binoci.dll заблокирован, и вы не можете удалить его. В таком случае переименуйте файл (например, в oci.dll.x) и перезагрузите компьютер, после чего вы можете удалить его.
-
Удалите сборки Oracle.NET из глобального кэша сборок (GAC). Обычно вы делаете это с помощью утилиты 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.netmanagedx64OraProvCfg.exe.
-
-
В текстовом редакторе откройте файл XML Config %SYSTEMROOT%Microsoft.NETFramework64v4.0.30319Configmachine.config и удалите ветвь <oracle.manageddataaccess.client>, если она существует.
-
Сделайте то же самое с:
%SYSTEMROOT%Microsoft.NETFramework64v4.0.30319Configmachine.config %SYSTEMROOT%Microsoft.NETFrameworkv4.0.30319Configmachine.config %SYSTEMROOT%Microsoft.NETFramework64v4.0.30319Configweb.config %SYSTEMROOT%Microsoft.NETFrameworkv4.0.30319Configweb.config
Вместо редактирования файла XML Config вручную вы также можете запустить (если OraProvCfg.exe все еще доступен в вашей системе):
%ORACLE_HOME%odp.netmanagedx64OraProvCfg.exe /action:unconfig /product:odpm /frameworkversion:v4.0.30319 %ORACLE_HOME%odp.netmanagedx86OraProvCfg.exe /action:unconfig /product:odpm /frameworkversion:v4.0.30319 %ORACLE_HOME%odp.netmanagedx64OraProvCfg.exe /action:unconfig /product:odp /frameworkversion:v4.0.30319 %ORACLE_HOME%odp.netmanagedx86OraProvCfg.exe /action:unconfig /product:odp /frameworkversion:v4.0.30319
-
-
Проверьте следующие ключи реестра и удалите их, если они существуют
HKLMSOFTWAREWow6432NodeMicrosoft.NETFrameworkv2.0.50727AssemblyFoldersExODP.Net HKLMSOFTWAREWow6432NodeMicrosoft.NETFrameworkv4.0.30319AssemblyFoldersExODP.Net HKLMSOFTWAREWow6432NodeMicrosoft.NETFrameworkv4.0.30319AssemblyFoldersExOracle.ManagedDataAccess HKLMSOFTWAREWow6432NodeMicrosoft.NETFrameworkv4.0.30319AssemblyFoldersExOracle.ManagedDataAccess.EntityFramework6 HKLMSOFTWAREWow6432NodeMicrosoft.NETFrameworkv4.0.30319AssemblyFoldersExodp.net.managed HKLMSOFTWAREWow6432NodeMicrosoft.NETFrameworkv4.0.30319AssemblyFoldersExOracle.DataAccess.EntityFramework6 HKLMSOFTWAREMicrosoft.NETFrameworkv2.0.50727AssemblyFoldersExODP.Net HKLMSOFTWAREMicrosoft.NETFrameworkv4.0.30319AssemblyFoldersExODP.Net HKLMSOFTWAREMicrosoft.NETFrameworkv4.0.30319AssemblyFoldersExOracle.ManagedDataAccess HKLMSOFTWAREMicrosoft.NETFrameworkv4.0.30319AssemblyFoldersExOracle.ManagedDataAccess.EntityFramework6 HKLMSOFTWAREMicrosoft.NETFrameworkv4.0.30319AssemblyFoldersExodp.net.managed HKLMSOFTWAREMicrosoft.NETFrameworkv4.0.30319AssemblyFoldersExOracle.DataAccess.EntityFramework6 HKLMSYSTEMCurrentControlSetServicesEventLogApplicationOracle Data Provider for .NET, Managed Driver HKLMSYSTEMCurrentControlSetServicesEventLogApplicationOracle Data Provider for .NET, Unmanaged Driver HKLMSYSTEMCurrentControlSetServicesEventLogApplicationOracle Provider for OLE DB
-
Удалите папку Inventory, обычно C:Program FilesOracleInventory и C:Program Files (x86)OracleInventory
-
Удалите временные папки %TEMP%deinstall, %TEMP%OraInstall и %TEMP%CVU* (например, %TEMP%CVU_11.1.0.2.0_domscheit), если они существуют.
Ответ №3
Сделайте все, что предлагает ziesemer.
Вы также можете удалить из реестра:
HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INI<any Ora* drivers> keys HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INIODBC Drivers<any Ora* driver> values
Поэтому они больше не отображаются в “Драйверы ODBC, установленные в вашей системе” в ODBC Data Source Administrator
Ответ №4
Сделайте все, что предлагает ziesemer.
Вы также можете:
- Остановите службы, связанные с Oracle (перед удалением их из
реестр). - В реестре посмотрите не только записи с именем “Oracle”,
но также, например, для “ODP”.