ACFS挂载失败应先检查ora.drivers.acfs资源状态,若crsctl stat res -t -init | grep acfs显示为OFFLINE,说明内核模块未加载成功,后续挂载必失败;常见原因是OS内核不兼容,如RHEL 7.3/7.4 + Oracle 12.2.0.1默认不支持ACFS,仅UEK内核原生支持,RHCK需特定RU补丁;lsmod | grep oracle为空表明acfsroot install未成功或被内核更新覆盖,须清理后重装并验证.ko文件存在及modprobe oracleacfs可加载;若模块已加载但acfsutil info fs报“No ACFS file systems found”,则需检查ADVM卷状态、ASM alert日志及磁盘组兼容性,必要时重启ASM实例强制重枚举设备;ACFS-9459是硬拦截错误,表示OS/内核版本不满足白名单要求,应查MOS文档ID 1620630.1确认支持性,不支持时建议改用DBFS或NFS替代。
ACFS挂载失败先看ora.drivers.acfs资源状态
直接查crs层的acfs驱动资源比反复尝试mount -t acfs更高效。如果crsctl stat res -t -init | grep acfs显示ora.drivers.acfs是offline,说明内核模块根本没加载成功,后续所有挂载操作都会静默失败或报acfs-9459。
常见诱因不是配置错,而是OS内核不兼容——比如RHEL 7.3/7.4 + Oracle 12.2.0.1默认不支持ACFS,即使打了RU补丁也无效。
- 检查当前内核:
uname -r,确认是否为UEK(如4.1.12-124.53.2.el7uek.x86_64)或RHCK(如3.10.0-1160.el7.x86_64) - Oracle官方只保证UEK内核对ACFS的原生支持;若用RHCK,必须确认补丁集明确声明支持(例如12.2.0.1.200714 RU才开始有限支持RHCK)
- 别信
modinfo oracleacfs输出存在就代表能用——它可能只是编译过了,但acfsroot install阶段已因内核符号不匹配而静默跳过
lsmod | grep oracle为空?模块压根没进内存
lsmod | grep oracle返回空,说明acfsroot install没成功,或安装后被其他内核更新冲掉。这不是权限问题,是模块加载链断了。
典型路径:安装时/u01/app/12.2.0/grid/bin/acfsroot install执行完,应生成/lib/modules/$(uname -r)/extra/oracle目录并包含oracleacfs.ko、oracleadvm.ko等文件。若该目录不存在或为空,安装已失败。
- 重装前必须清理残留:
acfsroot uninstall,再rm -rf /lib/modules/$(uname -r)/extra/oracle - 执行
acfsroot install后,立刻验证:ls /lib/modules/$(uname -r)/extra/oracle/应有至少4个.ko文件 - 手动尝试加载:
modprobe oracleacfs,若报Invalid argument或Unknown symbol,基本锁定内核版本不兼容
内核模块加载成功但acfsutil info fs报错
模块进了内存,lsmod能看到oracleacfs,但acfsutil info fs提示No ACFS file systems found,说明ACFS驱动虽在,但ADVM卷层没通——oracleadvm模块未正确关联ASM volume。
此时asmcmd volinfo -a可能返回空,或显示volume状态为DISABLED。根源常是ASM实例没真正识别到ADVM设备。
- 检查ASM alert日志:
$ORACLE_HOME/log/$(hostname)/asmalert.log,搜索ADVM或ORA-15238(ADVM not supported) - 确认ASM磁盘组兼容性:
SELECT NAME, COMPATIBILITY, DATABASE_COMPATIBILITY FROM V$ASM_DISKGROUP,COMPATIBILITY必须≥12.1.0.0.0 - 重启ASM实例(非SQL*Plus里的
startup):srvctl stop asm -n $(hostname)→srvctl start asm -n $(hostname),强制重新枚举ADVM设备
为什么acfsroot install总报ACFS-9459
ACFS-9459: ADVM/ACFS is not supported on this OS version不是警告,是硬拦截。Oracle在acfsroot里做了白名单校验,不满足条件直接退出,连日志都不写全。
最容易被忽略的点:同一OS小版本下,不同内核子版本支持状态可能完全不同。例如Oracle Linux 7.6的UEK4(4.1.12-124.*)全支持,但UEK5(4.14.35-1902.*)在12.2.0.1中明确不支持,必须升到19c才能用。
- 查官方支持矩阵比猜更省时间:MOS文档ID 1620630.1(ACFS Supportability on Linux Platforms)
- 临时绕过校验不可取:
acfsroot install -f只会让模块加载失败得更安静 - 若确认环境不支持,别折腾ACFS——改用DBFS或NFS共享OGG参数文件、归档日志等非核心数据,反而更稳











