Oracle ACFS文件系统怎么创建和挂载?详细步骤解析

来源:C语言教程作者:沙月恵奈‌头衔:网络博主
导读:本期聚焦于沙月恵奈‌创作的《Oracle ACFS文件系统怎么创建和挂载?详细步骤解析》,敬请观看详情。ACFS是Oracle提供的一种基于ASM磁盘组构建的可扩展集群文件系统,能够存放数据库软件、归档日志、备份文件等非数据库数据。本文围绕ACFS文件系统的创建与挂载展开讲解,先介绍ACFS的架构原理和适用场景,再通过命令行方式详细演示创建卷组、生成ACFS文件系统、注册挂载点的完整流程,同时补充图形化工具和开机自动挂载的配置方法,最后列出常见报错的处理思路,帮助读者在生产环境中顺利落地ACFS。

ACFS(Oracle Automatic Storage Management Cluster File System)是Oracle 11gR2开始引入的集群文件系统,它构建在ASM磁盘组之上,既能享受ASM带来的条带化、镜像等存储管理能力,又能像普通文件系统一样被操作系统直接访问。相比裸设备只能存放数据库文件,ACFS可以存放Oracle软件安装目录、归档日志、RMAN备份、GoldenGate trail文件甚至普通的业务文本文件,实用性大大增强。本文将从原理、环境准备、命令行创建、挂载注册、常见问题几个方面,完整梳理ACFS文件系统的创建与挂载过程。

Oracle ACFS文件系统怎么创建和挂载?详细步骤解析

一、ACFS的架构原理与适用场景

ACFS并不是一个独立于ASM的新存储层,而是在ASM磁盘组上先创建ADVM(ASM Dynamic Volume Manager)动态卷,再在这个卷上格式化出的文件系统。整个层次结构自下而上依次是:物理磁盘、ASM磁盘组、ADVM卷、ACFS文件系统、挂载点目录。也就是说,使用ACFS的前提是已经拥有一个正常的ASM实例和磁盘组。

当ASM实例加载ACFS相关内核模块后,操作系统中会出现一个名为oracleacfs的模块以及/dev/asm/目录,ADVM卷设备会以卷名-卷编号的形式出现在这个目录下,例如/dev/asm/volume1-123。对RAC环境而言,ACFS的最大价值是所有节点看到的是同一份共享数据,非常适合存放需要多节点共同访问的文件。

典型应用场景包括:集中存放归档日志和备份文件、存放Grid Infrastructure和Database的安装介质、作为GoldenGate或DataGuard的文件交换区。需要注意,11g版本中ACFS不支持直接存放数据库数据文件、控制文件等核心文件,12c之后部分平台才逐步放开,使用前应结合版本确认。

二、创建前的环境准备

首先确认Oracle版本和操作系统平台支持ACFS。可以通过acfsutil version命令查看ACFS工具的版本,也可以用acfsutil driver version确认驱动是否已经加载。如果没有加载,需要执行acfsutil load,部分平台还需要手动运行$GRID_HOME/bin/acfsroot installacfsroot enable完成驱动安装。

其次是磁盘组的规划。建议专门创建一个EXTERNAL冗余的磁盘组用于ACFS,因为卷的空间来自磁盘组,而NORMAL冗余会带来镜像开销。创建磁盘组时可以指定AU大小,对于大容量文件系统,将AU设置为8M或更大可以提升性能。示例命令如下:

SQL> CREATE DISKGROUP ACFS_DG EXTERNAL REDUNDANCY
  2  DISK '/dev/asm-diskb'
  3  ATTRIBUTE 'au_size'='8M',
  4            'compatible.asm'='19.0.0.0.0',
  5            'compatible.advm'='19.0.0.0.0';

这里的compatible.advm参数非常关键,只有设置了该参数,磁盘组才允许创建ADVM卷。创建完成后,在所有节点上确认磁盘组已被挂载,可以用sqlplus连接ASM实例执行SELECT name, state FROM v$asm_diskgroup;查看。

三、命令行创建ACFS卷和文件系统

创建卷之前,先以grid用户检查集群状态正常,然后使用ASMCMD工具进入卷管理。用asmcmd volcreate命令在磁盘组中创建一个指定大小的卷,例如创建一个100G的卷:

asmcmd volcreate -G ACFS_DG -s 100G acfsvol1

-- 查看卷信息,确认设备路径
asmcmd volinfo -G ACFS_DG acfsvol1

volinfo的输出中会显示卷对应的设备名,类似/dev/asm/acfsvol1-352,记下这个路径。也可以在SQLPlus中通过v$asm_volume视图查询。接下来用mkfs格式化文件系统,这里使用Oracle自带的acfsutil而不再是操作系统原生的格式化工具:

mkfs -t acfs /dev/asm/acfsvol1-352

-- 或者使用acfsutil的方式
acfsutil create /dev/asm/acfsvol1-352

格式化完成后,卷上就已经存在一个空的ACFS文件系统,但此时还不能直接访问,必须先挂载到某个目录。挂载本身很简单,执行mount -t acfs即可,但真正需要关注的是如何让挂载动作在集群范围内生效并且开机自动完成,这正是下一节的内容。

四、挂载ACFS与开机自动挂载配置

先创建挂载点目录,例如/acfs_data,然后执行挂载。挂载操作必须在每一个需要访问该文件系统的节点上执行:

mkdir -p /acfs_data
mount -t acfs /dev/asm/acfsvol1-352 /acfs_data

-- 查看挂载结果
acfsutil info fs /acfs_data

手动挂载在重启后会失效,生产环境必须注册到集群中。注册有两种方式,第一种是使用srvctl命令:

srvctl add filesystem -device /dev/asm/acfsvol1-352 \
  -path /acfs_data -user oracle -autostart ALWAYS

其中-user参数指定允许挂载和访问的操作系统用户,-autostart ALWAYS表示集群启动时自动挂载。第二种是使用Oracle注册表方式,执行acfsutil registry -a /dev/asm/acfsvol1-352 /acfs_data,系统会把挂载信息写入ACFS注册表,配合ohasd服务同样能实现自动挂载。两种方式不要混用,建议在RAC环境中优先使用srvctl,便于集群统一管理。

注册完成后可以验证:执行srvctl start filesystem -device /dev/asm/acfsvol1-352让集群接管挂载,再重启一个节点观察文件系统是否自动出现。同时执行df -h /acfs_data确认容量和挂载状态正常。如果需要扩容,可以先用asmcmd volresize扩大卷,再用acfsutil size +50G /acfs_data在线扩展文件系统,全程不影响业务读写。

五、常见问题与排查思路

最常见的问题是挂载时报错ACFS-02017ACFS-03036,通常原因是ACFS驱动没有加载或内核版本不匹配。可以先执行lsmod | grep acfs确认模块状态,必要时重新运行acfsroot install安装驱动。升级数据库补丁后也经常出现驱动版本不匹配,此时需要重新运行root脚本编译模块。

另一个典型问题是注册了自动挂载但重启后没有生效。排查方向包括:集群的ohasd守护进程是否正常、注册表信息是否完整(用acfsutil registry -l查看)、挂载点目录权限是否正确。如果某个节点挂载失败但其他节点正常,重点检查该节点的oracleasm服务状态以及磁盘组是否被该节点挂载。

最后提醒两点:一是删除ACFS前务必先在所有节点卸载并移除注册信息,顺序是先acfsutil registry -d,再umount,最后asmcmd voldelete;二是ACFS的快照功能非常实用,用acfsutil snap create可以在几秒内创建文件系统快照,常用于升级前的保护,掌握它能显著降低运维风险。

Oracle ACFSACFS文件系统Oracle ASM修改时间:2026-09-02 17:13:06

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/20260902/49061.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。