官方卸载工具deinstall.bat无法彻底卸载,必须手动清理注册表四类键值、环境变量及临时文件,否则重装必报ora-00600、ins-35955或监听失败;停服务、核路径、加-checkonly验证是运行前提。

官方卸载工具 deinstall.bat 不能单独完成彻底卸载,漏掉注册表、环境变量或服务项,重装时必报 ORA-00600、INS-35955 或监听器启动失败。
停服务前必须确认三件事
不光是“停止”,更要防止服务自动重启或残留状态干扰卸载逻辑:
- 在
services.msc中找到所有以OracleService、OracleOraDB19Home1、TNSListener开头的服务,右键 → “属性” → 启动类型改为「手动」或「禁用」 - 打开命令提示符(管理员),执行
cd C:pporacleproduct9.0.0dbhome_1deinstall(路径必须与实际ORACLE_HOME完全一致,错一个字符就识别不到实例) - 首次运行先加
-checkonly参数:deinstall.bat -checkonly,确认输出里包含你的数据库名(如ORCL)和监听器名(如LISTENER),否则后续删除会跳过关键项
注册表必须删的四个位置
只删 HKEY_LOCAL_MACHINESOFTWAREOracle 是最常见错误,Oracle 在注册表中埋了硬依赖,漏一项就可能让新装的 19c 拒绝注册主目录:
-
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices:删所有以Oracle、Ora、Orcl开头的子项(注意避开OracleXETemp这类非官方服务) -
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventLogApplication:删所有Oracle开头的日志源,否则事件查看器持续报旧库错误 -
HKEY_CLASSES_ROOT:搜索Ora、Oracle、EnumOra,删对应 CLSID 键(这类残留常导致 Java 应用连库时报ClassNotFoundException) -
HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INI:删掉Microsoft ODBC for Oracle外所有含Oracle的驱动节,否则 ODBC 数据源里留着灰色不可用项
PATH 和用户目录里的隐藏坑
这些不阻碍卸载动作本身,但会让下一次安装变成“玄学调试”:
- 检查系统环境变量
PATH和CLASSPATH,删掉所有含ORACLE_HOME、ojdbc、sqlplus的路径;残留的PATH项会导致新装的sqlplus加载旧版oci.dll,报错ORA-12154 - 删掉
C:ProgramDataOracle和C:Users\AppDataLocalTemp中与 Oracle 安装时间匹配的临时文件夹(AppData默认隐藏,需在文件资源管理器地址栏直接输入路径) - 别提前删
C:pporacle目录——卸载程序本身就在里面,删早了就进死循环:没卸载程序 → 卸载不干净 → 重装报错 → 找不到原因
真正卡住重装的,往往不是 deinstall.bat 没跑完,而是 HKEY_CLASSES_ROOT 下某个 OraSession CLSID 没删,或是 ODBCINST.INI 里多了一行废弃驱动。这些点既不报错也不提示,但会让新安装进程在“配置网络服务”阶段静默失败。











