Oracle RAC集群环境中,ACFS(ASM Cluster File System)作为基于ASM动态卷管理的集群文件系统,为多个实例提供了统一的共享文件访问能力。在跨节点共享数据文件、日志或配置文件时,仅依靠传统Linux用户权限往往会出现uid不一致、节点间访问拒绝等问题。Oracle为此在ACFS中引入了ACI(ASM Cluster File System Access Control Rule)规则,将访问控制直接绑定到集群文件系统层,使权限在全体节点上保持一致。

一、ACI规则的基本概念
ACI规则是ACFS用来控制文件和目录访问权限的一种机制,其全称可理解为ACFS访问控制项。它与操作系统层面的ACL有所不同,ACI信息保存在ACFS卷的元数据里,由集群统一管理,而不是分散记录在每个节点的本地文件系统中。这意味着无论用户从RAC的哪一个节点去访问同一个ACFS挂载点,系统都会依据同一套ACI规则做出允许或拒绝的判断。
在结构上,一条ACI规则通常包含主体(用户或组)、权限类型(读、写、执行等)以及作用对象(文件或目录)。Oracle通过acfsutil命令来维护这些规则,管理员不需要修改底层的操作系统权限位,就能实现细粒度的跨节点管控。例如,可以让某个数据库备份用户只在节点一和节点二拥有写入备份目录的权限,而其他节点仅能读取。
二、ACI与传统权限的区别
传统Linux权限依赖每个主机上的uid和gid映射,在RAC多节点场景中,如果各节点的用户id分配不同,就会出现权限错乱。ACI则使用ACFS自身的标识体系,不直接受单机/etc/passwd文件限制,因此可以避免节点间用户映射不一致带来的麻烦。此外,传统权限只能做到属主、属组、其他三类粗略控制,ACI支持针对具体用户或组单独授权。
从管理角度看,操作系统权限需要在每个节点分别设置,而ACI在任一节点配置后自动同步到整个集群。下面用一个简单表格说明二者差异:
| 对比项 | 传统Linux权限 | ACFS ACI规则 |
|---|---|---|
| 存储位置 | 各节点本地文件系统 | ACFS卷集群元数据 |
| 跨节点一致性 | 需手动同步 | 自动全局一致 |
| 控制粒度 | 属主、属组、其他 | 指定用户或组细粒度 |
| 依赖uid映射 | 强依赖 | 不依赖单机uid |
三、ACI规则的配置方法
在RAC环境中配置ACI,通常使用acfsutil命令。假设我们已经挂载了名为/u01/app/acfs的ACFS卷,希望允许用户backupuser对该目录有读写权限,可以在任意节点执行如下命令:acfsutil sec rule add -u backupuser -p rw -d /u01/app/acfs。其中-u指定用户,-p指定权限字符(r读、w写、x执行),-d指定目录。命令成功后,规则立即在集群内生效。
如果需要针对组授权,可将-u换成-g参数,例如acfsutil sec rule add -g dbadmin -p rwx -d /u01/app/acfs/logs。修改已有规则时,可先用acfsutil sec rule list查看当前规则编号,再用acfsutil sec rule modify调整权限。删除规则则使用acfsutil sec rule delete加规则标识。值得注意的是,ACI规则与卷内的目录层级关联,子目录若不单独设置,会继承父目录的规则设定。
四、常见问题与排查思路
实际运维中,最常遇到的是配置了ACI但仍无法访问的情况。此时应优先确认执行acfsutil命令的节点是否已完成ACFS挂载,且Oracle集群件资源状态正常。可通过crsctl stat res -t查看ACFS相关的资源是否在线。另外,若操作系统层对挂载点根目录设置了过于严格的属主权限,也可能在ACI之前就拦截了访问,需要二者配合调整。
另一个易错点是将ACI与Linux ACL混淆。在ACFS上,建议统一使用ACI做集群级管控,避免在本地再用setfacl设置,否则排查时难以分清是哪一层拒绝。可通过acfsutil sec rule list命令导出全部规则,对照业务需求逐条核对主体、路径与权限字符,确保没有冲突或重复授权。
五、管理建议
对于生产环境,建议将ACI规则写入集群部署文档,并在添加新节点后做一次规则复核,防止人为在单节点用传统命令改了权限导致不一致。同时,对关键目录如归档存放区、参数文件区,采用最小权限原则,只给必须的用户和组开放对应操作权。
由于ACI信息随卷走,在卷备份与恢复时也会一并保留,因此在做ACFS快照或复制时,不必额外导出规则。只要保持集群软件版本一致,规则就能在新环境中无缝沿用,这也是ACI相比手工同步本地权限的最大优势。
Oracle_RACACFS文件系统ACI规则修改时间:2026-08-10 11:57:50