CentOS 上 Oracle 安装失败的定位与修复
一、先定位问题
export ORACLE_BASE=/u01/app/oracle。xdpyinfo是否能运行;若报“Unable to verify the graphical display setup”,以 oracle 用户设置显示变量:export DISPLAY=:0.0,必要时使用xhost +授权,或改用静默安装。runInstaller -ignoreSysPrereqs(仅用于排查,不建议生产环境长期使用)。二、最常见的三类故障与修复
libXp.so.6: cannot open shared object file、libawt.so 相关、INS-20802(常见于缺少 libaio)。yum install -y libXp libXt libXtst libXp.so.6(或系统对应包名)。yum install -y libaio libaio-devel。glibc-devel.i686、libstdc++-devel.i686、libXtst.i686 等),否则会出现链接或运行期库缺失。-ignoreSysPrereqs 临时通过,或按教程将 /etc/redhat-release 临时伪装为受支持的 RHEL 版本(安装完成后务必改回)。kernel.shmmax/shmall/sem、fs.file-max、aio-max-nr 等,并配置 /etc/security/limits.conf 的 oracle 用户 nofile、nproc、stack 等限制。echo <dba_gid> > /proc/sys/vm/hugetlb_shm_group,然后重试建库。三、准备与配置核对清单
groupadd -g 54321 oinstall、groupadd -g 54322 dba(可按需添加 oper)。useradd -u 54321 -g oinstall -G dba,oper oracle;设置密码。mkdir -p /u01/app/oracle/product/19.3/dbhome_1;chown -R oracle:oinstall /u01;chmod -R 775 /u01。binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel ksh(部分旧版可能还需 pdksh、compat-libstdc++ 等)。export DISPLAY=:0.0,必要时 xhost +;若仍异常,改用静默安装。systemctl stop firewalld && systemctl disable firewalld;setenforce 0;/etc/selinux/config 中 SELINUX=permissive/disabled(安装完成后再按安全策略恢复)。四、静默安装与常见后续问题
./runInstaller -silent -responseFile /path/db_install.rsp -ignorePrereq。$ORACLE_BASE/oraInventory/orainstRoot.sh 与 $ORACLE_HOME/root.sh。lsnrctl start;启动数据库:dbstart $ORACLE_HOME(若提示监听未就绪,先确保监听已起)。dbstart/dbshut 无效,检查 $ORACLE_HOME/bin/dbstart 中 ORACLE_HOME_LISTNER=$ORACLE_HOME;并在 /etc/oratab 将实例行尾的 N 改为 Y。/etc/hosts 添加“本机IP 本机主机名”,避免安装或监听异常。crt1.o: No such file),需补齐 glibc-devel 的 32 位 包后再重试。