INS-20802本质是netca或dbca的Java进程崩溃,非监听故障;主因包括/etc/hosts解析异常(如主机名未映射真实IP)、ORACLE_HOME路径错误、JDK缺失、Windows下VC++运行库未安装或32位Oracle运行在64位硬件需打补丁p8670579。

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 - 删掉
/etc/hosts里硬写的 SCAN 名(如scan.example.com),让 DNS 负责解析,否则 netca 会跳过 DNS 直接查 hosts 并失败
$ORACLE_HOME 指向错误或 JDK 缺失
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 加载异常,JVMSIGSEGV。
- 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字串) - 避免使用默认的
localhost.localdomain主机名,安装完成后再改主机名会导致后续启动异常
真正卡住人的地方,往往不是某一个配置项写错了,而是多个环境要素同时错位:比如 $ORACLE_HOME 指向不对 + /etc/hosts 少了一行 + VC++ 运行库没装全。排查时别只盯一个点,优先翻 $ORACLE_HOME/cfgtoollogs/netca 或 dbca 对应子目录下的最新日志,找第一处 SIGSEGV 或 UnsatisfiedLinkError 出现的位置——那里就是断点。











