文章目录
- 一、场景切入
- [二、INS-08101 意外错误](#二、[INS-08101] 意外错误)
- [三、INS-13013 环境不满足](#三、[INS-13013] 环境不满足)
- [四、INS-32014 目录问题](#四、[INS-32014] 目录问题)
- [五、libaio.so 缺失](#五、libaio.so 缺失)
- [六、PRVF-9802 主机名解析失败](#六、PRVF-9802 主机名解析失败)
- 七、交换空间不足
- [八、DISPLAY 变量问题](#八、DISPLAY 变量问题)
- 九、安装日志去哪找
- 十、要点总结
一、场景切入
生产服务器多数没有图形界面,Xshell 里敲一条命令装完 Oracle,是静默安装的意义。但静默安装报错时没有界面提示,只能靠日志和报错码排查。这篇把安装期出现频率最高的几个报错逐个拆开:报错原文、原因、解决命令、验证方式、预防措施。环境以 RHEL/CentOS 7 + 19c 为主,报错码在 11g/19c 上通用。
二、INS-08101 意外错误
报错现象
[INS-08101] Unexpected error occurred while executing the action
'installHomeAndInventoryAction'
原因分析
这是"包装型"报错,真正原因在日志里,常见有四类:/tmp 空间不足或权限异常(OUI 临时目录 /tmp/OraInstall* 无法展开);安装介质解压不完整或下载损坏;用 root 执行了 runInstaller;Central Inventory 目录权限或属组不对。
解决步骤
先看日志尾部真实异常:
bash
tail -100 /u01/app/oraInventory/logs/installActions*.log
逐项排查与处理:
bash
df -h /tmp # 可用空间不足 1G 时清理,或换临时目录
whoami # 必须是 oracle
cat /etc/oraInst.loc # 确认 inventory 位置
chown -R oracle:oinstall /u01/app/oraInventory
unzip -t /tmp/LINUX.X64_193000_db_home.zip | tail -3
/tmp 不够时换目录后重跑安装:
bash
mkdir -p /u01/tmp && chmod 777 /u01/tmp; export TMP=/u01/tmp; export TMPDIR=/u01/tmp
介质校验必须输出 No errors detected,否则重新下载解压。
验证
bash
grep -i "severe" /u01/app/oraInventory/logs/installActions*.log | tail -5
预防
介质下载后先校验再解压;严格用 oracle 用户执行;保持 /tmp 有 2G 以上可用空间。
三、INS-13013 环境不满足
报错现象
[INS-13013] Target environment does not meet some mandatory requirements.
[INS-13013] 目标环境不满足某些强制要求。
原因分析
先决条件检查有失败项:缺依赖包、内核参数不达标、swap 不足、主机名解析失败等。INS-13013 只是汇总结论,必须展开看具体哪项 Failed。
解决步骤
图形界面点开失败项的"查看日志";静默安装直接搜会话日志:
bash
grep -A3 -i "failed" /tmp/OraInstall*/installActions*.log | head -40
常见对应:缺包 → yum install -y libaio libaio-devel ksh sysstat;内核参数 → 改 /etc/sysctl.conf 后 sysctl -p;swap → 见第七节;主机名 → 见第六节。急于安装时可用 -ignorePrereq 跳过检查应急,生产环境不建议。
验证
bash
./runInstaller -executePrereqs
无 Failed 项再正式安装。
预防
按环境准备清单逐项做完再启动安装;Oracle Linux 用 oracle-database-preinstall-19c 一步到位。
四、INS-32014 目录问题
报错现象
[INS-32014] The specified location is already in use by another product.
原因分析
ORACLE_HOME 目录有残留文件(上次失败安装、解压后又换目录);该路径已注册在 Central Inventory 的 inventory.xml 里;或 ORACLE_BASE 与 ORACLE_HOME 层级配置错误(如 HOME 等于 BASE)。
解决步骤
bash
echo $ORACLE_BASE $ORACLE_HOME
cat /u01/app/oraInventory/ContentsXML/inventory.xml | grep "HOME NAME"
旧注册记录已无用处时按卸载篇彻底清理;仅目录残留则清空重装:
bash
rm -rf /u01/app/oracle/product/19.3.0/dbhome_1/*
或者换一个全新的 home 路径(如 dbhome_2)。
验证
重跑 runInstaller 路径检查通过;inventory.xml 中该 HOME 只有一条记录。
预防
安装失败先清理再重装,不在脏目录上叠加;大版本重装使用新的版本化目录。
五、libaio.so 缺失
报错现象
先决检查提示缺包,或 link 阶段后 sqlplus 启动报:
error while loading shared libraries: libaio.so.1:
cannot open shared object file: No such file or directory
原因分析
libaio 是 Linux 异步 IO 库,Oracle 的文件 IO 依赖它,最小化安装的系统经常没带。
解决步骤
bash
yum install -y libaio libaio-devel
ldconfig
ls -l /lib64/libaio.so.1
验证
bash
ldd $ORACLE_HOME/bin/oracle | grep aio
有输出且不是 "not found";sqlplus 能进入 SQL> 提示符。
预防
安装前用官方依赖清单 rpm -q 逐项核对,不等 OUI 报错。
六、PRVF-9802 主机名解析失败
报错现象
PRVF-9802 : Check of host name resolution failed
原因分析
/etc/hosts 没有"本机 IP + 主机名"映射,DNS 也解析不了。OUI 要求能通过主机名解析到本机真实 IP;映射到 127.0.0.1 很多场景同样判失败。
解决步骤
bash
hostname # 假设输出 oradb
echo "192.168.56.50 oradb" >> /etc/hosts
IP 换成本机网卡真实地址。
验证
bash
ping -c 2 oradb
hostname -i # 返回 192.168.56.50 即通过
预防
系统初始化模板写好 hosts;克隆虚拟机后第一时间改主机名与映射。
七、交换空间不足
报错现象
PRVF-7530 : 节点上交换空间不足
[物理内存 = 8192MB; 可用交换空间 = 2047MB; 需要的交换空间 = 4095MB]
原因分析
官方要求:内存 1~2G 时 swap 为 1.5 倍;2G~16G 时等于内存;大于 16G 时 16G。云主机常默认不带或只给 2G。
解决步骤
用 swapfile 补足(以补 4G 为例):
bash
dd if=/dev/zero of=/swapfile bs=1M count=4096
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile swap swap defaults 0 0' >> /etc/fstab
验证
bash
free -m
swapon -s
swap 总量达标后重跑安装检查,该项 Passed。
预防
装机按内存规划 swap;云主机模板统一预置 swapfile。
八、DISPLAY 变量问题
报错现象
Could not execute auto check for display colors using command
/usr/bin/xdpyinfo. Check if the DISPLAY variable is set.
或:
No protocol specified
Error: Can't open display: localhost:10.0
原因分析
图形安装需要把界面投到 X Server。服务器无桌面时,要么从 Windows 的 Xserver(VcXsrv/Xming/MobaXterm)转发,要么用 VNC。DISPLAY 没设、设错、或 X Server 拒绝连接,都会报上述错。
解决步骤
Windows 侧启动 VcXsrv,假设 Windows IP 为 192.168.56.1:
bash
su - oracle
export DISPLAY=192.168.56.1:0.0
xdpyinfo | head -3
xdpyinfo 能打出版本信息说明通路正常。仍报 "No protocol specified" 时,在运行 X Server 的本地图形会话执行 xhost +。VNC 场景则 export DISPLAY=localhost:1。
验证
bash
xclock
Windows 上弹出时钟窗口即通,再启动 runInstaller。
预防
直接用 -silent 静默安装不依赖 X;确需图形统一走 VNC。
九、安装日志去哪找
静默排错的核心是会找日志:
- OUI 会话日志(安装中):
/tmp/OraInstall*/installActions*.log - 归档日志(安装结束):
/u01/app/oraInventory/logs/installActions<时间戳>.log - DBCA 建库日志:
$ORACLE_BASE/cfgtoollogs/dbca/<SID>/trace.log - 数据库告警日志:
$ORACLE_BASE/diag/rdbms/<db_name>/<sid>/trace/alert_<sid>.log
快速定位:
bash
find /u01 /tmp -name "installActions*.log" 2>/dev/null
grep -iE "severe|fatal" /u01/app/oraInventory/logs/installActions*.log | tail -20
先看日志结尾,再倒着搜 SEVERE,定位到真实异常行后对照本文各节处理。
十、要点总结
- INS-08101 是包装错,真相在日志:查 /tmp 空间、介质完整性、执行用户、inventory 权限
- INS-13013 是检查汇总错,展开看具体 Failed 项对症修,
-ignorePrereq只能应急 - INS-32014 处理目录残留与 inventory 注册冲突,脏目录宁可清空重来
- libaio 缺失 yum 补齐,
ldd验证 - PRVF-9802 补 /etc/hosts 映射真实 IP;PRVF-7530 用 swapfile 补交换空间
- DISPLAY 报错优先改静默,图形用 VNC 更稳;排错次序:找日志 → 看 SEVERE → 对症修复 → 验证