ins-20802 错误本质是 netca 或 dbca 的 java 进程崩溃,主因包括 /etc/hosts 解析异常、oracle_home 路径错误、jdk 不可达、windows 缺失 vc++ 运行库或注册表残留、linux 下 libaio 缺失或架构不匹配。

INS-20802 不是监听没起来,而是 NetCA 或 DBCA 的 Java 进程崩溃了——修复方向必须对准运行时环境,不是改 listener.ora。
/etc/hosts 解析异常(Linux 最常见)
NetCA 启动时会做正向 + 反向主机名解析,若 /etc/hosts 里只有 127.0.0.1 localhost,而 hostname 返回的是 myhost 或 bogon,它就会直接 SIGSEGV 退出,日志里出现 libnnz11.so、SIGSEGV 等关键词。
- 运行
hostname查看当前主机名 - 运行
cat /etc/hosts,确认该主机名是否映射到一个真实、可路由的 IP(不能只写127.0.0.1) - 若主机名是
db01,本机 IP 是192.168.5.10,则必须加一行:192.168.5.10 db01 - RAC 或 SCAN 场景下,不要在
/etc/hosts中硬写 SCAN 名(如scan.example.com),否则 NetCA 会绕过 DNS 直接查 hosts 导致失败;应删掉该行,改用nslookup scan.example.com验证 DNS
$ORACLE_HOME 指向错误或 JDK 不可达
OPatch 报 Java could not be located、NetCA 启动时报 Unable to launch the Java Virtual Machine,基本都是 $ORACLE_HOME 设错了层级——比如实际安装路径是 /u01/app/oracle/product/11.2.0/db_1,但你设成了 /u01/app/oracle,那 $ORACLE_HOME/jdk 就不存在。
- 执行
echo $ORACLE_HOME,再立刻验证:ls -d $ORACLE_HOME/bin $ORACLE_HOME/jdk是否都存在 - 运行
$ORACLE_HOME/OPatch/opatch version—— 若失败,说明环境变量未就位,先修好再继续 - 打补丁(如
p8670579_112010_LINUX.zip)前,务必确认$ORACLE_HOME指向的是完整产品目录(含bin、jdk、OPatch),不是父级安装根目录
Windows 缺失 VC++ 运行库或注册表残留
Oracle 12c/19c 在 Win10/Win11 上报 INS-20802,日志中常带 msvcr100.dll 或 vcruntime140.dll 找不到,本质是 Visual C++ Redistributable 缺失。旧安装残留的注册表项(尤其是 HKEY_LOCAL_MACHINE\SOFTWARE\Oracle)也会干扰新安装。
- 下载并安装对应版本的 Microsoft Visual C++ 2010 Redistributable (x64) 和 2015–2022 Redistributable (x64)
- 以管理员身份运行
regedit,彻底删除HKEY_LOCAL_MACHINE\SOFTWARE\Oracle下所有键值 - 清理系统环境变量中的
ORACLE_HOME、TNS_ADMIN、NLS_LANG和 PATH 中所有 Oracle 路径 - 手动删除
C:\Program Files\Oracle、C:\app\<user></user>、%USERPROFILE%\.oracle,清空回收站后必须重启系统
libaio 缺失或架构不匹配(Linux 特定)
某些 Linux 发行版(如 CentOS/RHEL 7+)默认不装 libaio,或只装了 32 位版而 Oracle 是 64 位,会导致 NetCA 加载失败,报错无明确提示,但 strace -e trace=openat netca 可见 openat(AT_FDCWD, "/lib64/libaio.so.1", ...) 失败。
- 运行
rpm -q libaio,若无输出或显示libaio-0.3.109-13.el7.i686(i686 表示 32 位),需补全: -
yum install -y libaio.x86_64(RHEL/CentOS)或apt-get install -y libaio1(Ubuntu/Debian) - 若为 Oracle 11g R2 在 64 位硬件跑 32 位 OS(如 OEL5.4 + x86_64 CPU),这是已知 Bug(
Bug 8930861),官方建议直接切换为 64 位 OS + 64 位 Oracle,否则必须打补丁p8670579
真正卡住的地方往往不是监听配置本身,而是 NetCA 启动那一刻的本地解析链、JDK 可达性、动态库加载或 Windows 运行时依赖——这些环节任一断裂,都会让整个配置流程静默失败。别急着重装,先看日志里 hs_err_pid*.log 的第一行报错,再对照上面四类检查点逐项排除。











