Oracle 19c在ARM服务器上安装失败首要排查安装包是否匹配:必须使用官方“Linux for ARM 64”专用包(如linux.arm64_1919000_db_home.zip),uname -m须返回aarch64,file $ORACLE_HOME/bin/oracle须显示ARM aarch64架构;x86_64包会报Exec format error。

确认系统架构与Oracle安装包是否匹配
ARM服务器上装Oracle失败,第一反应不是配置错了,而是包根本没选对。Oracle 19c虽支持aarch64,但官方只提供Linux on ARM 64专用安装包,LINUX.X64_193000_db_home.zip这类x86_64包在ARM上解压后会报cannot execute binary file: Exec format error——这是最典型的架构错配信号。
验证方式很简单:
- 运行
uname -m,输出必须是aarch64(不是arm64或armv8) - 下载页面必须明确标注 “Linux for ARM 64” 或路径含
linux-aarch64 - 解压后检查关键二进制:
file $ORACLE_HOME/bin/oracle应返回ELF 64-bit LSB pie executable, ARM aarch64
检查操作系统是否在Oracle官方认证列表内
不是所有aarch64 Linux都能跑Oracle 19c。官方只对Oracle Linux 8.6+、RHEL 8.6+做完整认证,Ubuntu/Debian/麒麟等发行版即使能启动安装程序,也可能在链接库或内核参数阶段卡死。
实操建议:
- 优先用
cat /etc/os-release确认ID和VERSION,对照Oracle Linux Certification Matrix查“Database 19c + ARM”条目 - 麒麟ARMv10 SP3等国产系统,需额外提交SR(Service Request)确认支持状态,不能仅凭
uname -m就认为可行 - 若用非OL/RHEL,
oracle-database-preinstall-19c包大概率无法安装,得手动配置sysctl.conf、limits.conf、用户资源限制等,漏一项就可能在runInstaller中途退出
识别安装日志里真正的失败点
Oracle安装器runInstaller的图形界面或静默模式常掩盖真实错误。真正的问题往往藏在$ORACLE_BASE/cfgtoollogs下的日志里,尤其是installActions*.log和oraInstall*.err。
重点关注这几类线索:
-
ERROR: Unable to find required library libaio.so.1→ 缺libaio或版本不对,ARM下需装libaio-0.3.112-1.aarch64,而非x86_64版 -
PRVF-7532 : Sufficient swap size check failed→ ARM平台对swap要求更严,16GB内存至少配16GB swap,swapon -s必须看到对应条目 -
ORA-27123: unable to attach to shared memory segment→kernel.shmall/shmmax值未按ARM物理地址空间重新计算,不能照搬x86配置 - 日志末尾出现
INFO: Exiting Oracle Installer但无FINISHED标记 → 很可能是root.sh执行失败,需单独运行并看其输出
绕过图形界面直接走静默安装
ARM服务器常无桌面环境,runInstaller -ignorePrereq -J"-Doracle.installer.disableCache=true"这类强行忽略预检的命令只会让问题延后爆发。正确做法是用静默模式,把兼容性检查前置。
步骤要点:
- 先用
./runInstaller -executePrereqs -responseFile <path></path>验证所有依赖是否就绪 - 响应文件中必须显式指定
oracle.install.db.InstallEdition=EE和oracle.install.db.isCustomInstall=false,ARM版不支持某些自定义选项 -
oracle.install.db.config.starterdb.password必须满足复杂度:至少8位、含大小写字母+数字+特殊字符,ARM版校验更严格 - 静默安装后务必运行
sudo /u01/app/oraInventory/orainstRoot.sh和sudo /u01/app/oracle/product/19c/dbhome_1/root.sh,后者在ARM上常因libnsl缺失而失败,需提前dnf install libnsl
ARM上装Oracle最易被忽略的,是root.sh执行时动态链接库的隐式依赖——它不报错,但数据库实例起不来。每次运行完root.sh,立刻检查tail -n 20 /u01/app/oracle/product/19c/dbhome_1/install/root_*.log,确认没有libnsl.so.1: cannot open shared object file之类提示。


















