INS-20802错误本质是NetCA或DBCA调用Java插件时崩溃,非监听本身故障;主因包括/etc/hosts解析异常(如主机名未映射真实IP)、ORACLE_HOME路径错误、JDK缺失、Windows下VC++运行库未安装或注册表残留等系统级环境问题。

INS-20802 不是监听没起来,而是 netca 或 dbca 的 Java 进程崩溃了——直接查日志里有没有 SIGSEGV、libnnz11.so、Java HotSpot 这类关键词,有就说明环境链断了,不是配置问题。
/etc/hosts 解析失败(Linux 最常见)
netca 启动前会做主机名正向+反向解析,失败就直接退出,不报具体原因。
- 运行
hostname查当前主机名(比如ora19c) - 运行
cat /etc/hosts,确认该主机名映射到一个真实 IP(不能只写127.0.0.1 ora19c) - 如果本机 IP 是
192.168.56.10,就得加一行:192.168.56.10 ora19c - 删掉 hosts 里硬写的 SCAN 名(如
scan.example.com),让 DNS 负责解析,否则 netca 会跳过 DNS 直接查 hosts 并失败
$ORACLE_HOME 指向错误或 JDK 缺失(Linux/Windows 通用)
opatch apply 报 Java could not be located,或者 netca 启动时闪退,大概率是 $ORACLE_HOME 没指向 Oracle 安装根目录。
- 检查
echo $ORACLE_HOME输出是否和ls -d $ORACLE_HOME/bin $ORACLE_HOME/jdk都存在 - 典型错误:把
/u01/app/oracle当成$ORACLE_HOME,实际应为/u01/app/oracle/product/19.0.0/dbhome_1 - Windows 上,确保
%ORACLE_HOME%\jdk\bin\java.exe可执行;若提示msvcr100.dll或vcruntime140.dll找不到,装 Microsoft Visual C++ 2010 和 2015–2022 Redistributable(x64 + x86)
补丁缺失导致 JVM 崩溃(Oracle 11g/12c/19c 旧版本)
32 位 Oracle 装在 64 位硬件上、或某些 Linux 发行版默认 glibc 版本偏高,会导致 libnnz11.so 加载异常,JVM SIGSEGV。
- Oracle 11g R2(11.2.0.1)必须打补丁
p8670579_112010_LINUX.zip - 解压后进
8670579目录,运行:$ORACLE_HOME/OPatch/opatch apply -invPtrLoc $ORACLE_HOME/oraInst.loc - 执行前先验证:
$ORACLE_HOME/OPatch/opatch version能输出版本号,再打补丁 - 打完别关安装界面,点
Retry;若已退出,手动运行$ORACLE_HOME/bin/netca或$ORACLE_HOME/bin/dbca
Windows 用户密码策略冲突(Oracle 19c 家庭版高频)
Win10/Win11 家庭版对本地账户策略限制更严,DBCA 启动时校验用户口令失败会静默退出,日志里只留一句 [DBT-10304] Oracle 主目录用户口令不正确。
- 安装前,用管理员账户重设一次 Windows 登录密码,确保不含特殊字符(如
@、?、oracle字串) - 安装时设置的 SYS/SYSTEM 密码、Oracle 主目录用户密码、Windows 登录密码三者保持一致且符合复杂度要求(大写+小写+数字+8位以上)
- 若已失败,彻底卸载:删注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Oracle下所有项 + 清空C:\Program Files\Oracle和C:\app
真正卡住的地方往往不是监听配置本身,而是 netca/dbca 启动前那几毫秒的环境校验——/etc/hosts、$ORACLE_HOME、JDK 可达性、VC++ 运行库、Windows 用户策略,任何一个断点都会让整个流程在没报错的情况下静默失败。


















