aix上安装oracle 19c失败主因是内核参数(vmo/no)、用户限制(ulimit)、存储语义(lvm+jfs2 cio)及aix特有机制(sigusr2、jre兼容性)未对齐,非单纯解压运行即可;必须严格满足aix 7.2 tl5+/7.3、关键补丁、裸设备或cio挂载、v_pinshm=1、display与jre适配等硬性条件。

AIX 上安装 Oracle 19c 不是简单解压运行的事,它依赖内核参数、用户资源限制、存储路径语义、以及 AIX 特有的设备管理机制。直接套用 Linux 的安装脚本或文档,大概率卡在 runInstaller 启动阶段,报错如 ORA-00845: MEMORY_TARGET not supported on this system 或静默失败——根本原因不是 Oracle 软件本身,而是 AIX 的 vmo、no、ulimit 和 lsdev 状态未对齐。
确认 AIX 版本与 Oracle 19c 官方兼容性
Oracle 19c(19.20 及以后 RU)仅支持 AIX 7.2 TL5+ 或 AIX 7.3。低于此版本(如 AIX 7.1 或 7.2 TL4)即使强行运行 runInstaller,也会在链接阶段失败,报 libpthread.a 符号缺失或 ld: 0711-317 ERROR: Undefined symbol: .pthread_getname_np。
- 执行
oslevel -s查看精确版本,例如输出7200-05-01-2145表示 AIX 7.2 TL5 SP1 - 检查是否已安装必要补丁:运行
instfix -i | grep -E "(IV|IZ)[0-9]{6}",重点关注IV98231(修复 AIO 与 ASM 兼容性)、IZ91245(修复 Oracle 19c 在 AIX 7.2 上的 shared memory 映射问题) - Oracle 认证矩阵明确要求 AIX 7.2 TL5+ + Technology Level Fix 7200-05-01-2145 或更高 —— 这不是可选建议,是硬性准入门槛
配置 AIX 内核参数与用户资源限制
AIX 没有 /etc/sysctl.conf,所有内核调优必须通过 vmo、no、chdev 命令持久化生效,且 Oracle 用户的 ulimit 必须显式继承自系统级设置,否则 sqlplus 启动即报 ORA-27123: unable to attach to shared memory segment。
- 共享内存段大小:
vmo -p -o maxperm%=90 -o maxclient%=90 -o lru_file_repage=0 -o strict_maxperm=1 -o strict_maxclient=1 - TCP 缓冲区:
no -p -o rmem_max=134217728 -o wmem_max=134217728 -o sb_max=134217728 - Oracle 用户的 ulimit 必须设为无限制:
chuser fsize=-1 cpu=-1 data=-1 stack=-1 rss=-1 nofiles=65536 oracle,然后 su - oracle 验证ulimit -a输出全为unlimited或数值 ≥65536 - 特别注意:
vmo -o minfree和maxfree不影响 Oracle,但vmo -o v_pinshm=1必须启用,否则 ASM 实例无法锁定共享内存
存储准备:使用 LVM 而非 JFS2 文件系统部署 ORACLE_HOME
Oracle 19c 在 AIX 上不支持将 $ORACLE_HOME 直接部署在 JFS2 文件系统上(尤其启用了 CIFS/NFS 挂载选项时),runInstaller 会跳过磁盘空间校验,但在创建数据库时因文件锁语义不一致而卡死在 CREATE DATABASE 阶段,日志中反复出现 ksfd: error writing block。
- 必须使用裸逻辑卷(raw LV)或 JFS2 +
cio(concurrent I/O)挂载选项:创建 LV 后,用mklv -t raw -y orahome_lv rootvg 4,再mkfs -V jfs2 -o cio /dev/orahome_lv -
/etc/filesystems中对应条目需包含mount = true和options = rw,bg,hard,intr,netuid=0,uid=0,gid=0,cio - ASM 磁盘组若使用裸设备,必须确保
lsdev -Cc disk输出中所有目标磁盘状态为Available,且lspv显示 PVID 已清除(避免 GI 安装时误识别为已有 VG) - 不要用 NFS 挂载
$ORACLE_HOME:AIX 的 NFS client 对 mmap() 支持不完整,会导致 Oracle 可执行文件加载失败
运行 runInstaller 前必须绕过的三个 AIX 特有陷阱
runInstaller 是图形化 Java 程序,在 AIX 上极易因 DISPLAY、字体、JRE 或信号处理机制异常而崩溃。它不会报出真实错误,只弹出空白窗口或直接退出。
- DISPLAY 必须指向本地 X server:
export DISPLAY=localhost:10.0,并确保xhost +已运行;若用 VNC,需确认xauth list包含正确 MIT-MAGIC-COOKIE-1 - 禁用 AIX 默认 JRE:
unset JAVA_HOME,改用 Oracle 自带 JDK:export ORACLE_HOME_JAVA=/usr/java8_64/jre(Oracle 19c 安装器内置 JDK 8u281,不兼容 AIX 自带的 IBM JRE) - 屏蔽 AIX 的 SIGUSR2 信号干扰:
export AIXTHREAD_SCOPE=S,否则多线程安装过程可能被内核信号中断,表现为runInstaller卡在 “Copying files…” 且 CPU 归零 - 最后一步:用
./runInstaller -ignoreSysPrereqs -ignorePrereqFailure -debug -logLevel 2启动,日志默认写入/tmp/OraInstall*,重点查oraInstall<date>.err</date>中是否有java.lang.UnsatisfiedLinkError或SIGSEGV
AIX 上 Oracle 19c 的成败关键不在 SQL 层,而在 lsdev 是否看到磁盘、vmo 是否真正持久生效、ulimit 是否被 shell 继承、以及 runInstaller 启动时是否被 AIX 的信号模型打断。这些点不手动验证,光靠 OUI 图形界面里的勾选和下一步,基本等于在盲装。











