Oracle ACFS 文件系统配置详解

Oracle ACFS 文件系统配置详解

适用版本:Oracle Database 11g R2 / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07


1. 概述

ACFS(ASM Cluster File System)是 ASM 文件系统[1]:

用途

  • 文件系统
  • 共享存储
  • 跨平台
  • 集群

详细见:Oracle ASM 详解


2. ACFS 特性

2.1 优势

  • 集群共享
  • 在线扩展
  • 快照
  • 加密
  • 标签
  • 复制

2.2 限制

  • 不支持 OCR/Voting
  • 不支持 Oracle 数据文件
  • 部分平台

3. ADVM

3.1 ADVM Volume

- ACFS 基于 ADVM
- ASM Dynamic Volume Manager
- 卷设备

3.2 流程

ASM Disk Group → ADVM Volume → ACFS File System

4. 配置

4.1 启用 ADVM/ACFS

# root
$GI_HOME/bin/acfsroot enable
$GI_HOME/bin/acfsroot install
$GI_HOME/bin/acfsroot load

# 验证
$GI_HOME/bin/acfsdriverstate supported
$GI_HOME/bin/acfsdriverstate installed
$GI_HOME/bin/acfsdriverstate loaded

4.2 GI 启动自动加载

# oracleacfs / oracleadvm 模块自动加载
lsmod | grep oracle

5. 创建 Disk Group

5.1 ASMCA

asmca -silent -createDiskGroup \
  -diskGroupName ACFS \
  -diskList /dev/oracleasm/disks/ACFS \
  -redundancy EXTERNAL \
  -au_size 4

5.2 兼容属性

ALTER DISKGROUP ACFS SET ATTRIBUTE 'compatible.advm' = '19.0.0.0';
ALTER DISKGROUP ACFS SET ATTRIBUTE 'compatible.asm' = '19.0.0.0';

6. 创建 Volume

6.1 ASMCMD

asmcmd volcreate -G ACFS -s 50G acfsvol1
asmcmd volinfo -G ACFS acfsvol1

6.2 SQL

ALTER DISKGROUP ACFS ADD VOLUME acfsvol1 SIZE 50G;

SELECT volume_name, volume_device, size_mb FROM v$asm_volume;
-- /dev/asm/acfsvol1-123

7. 创建 ACFS

7.1 mkfs

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

7.2 挂载

mkdir /acfs
mount -t acfs /dev/asm/acfsvol1-123 /acfs

# 验证
df -h /acfs

7.3 fstab

/dev/asm/acfsvol1-123 /acfs acfs defaults 0 0

8. ACFS 注册

8.1 注册(自动挂载)

acfsutil registry -a /dev/asm/acfsvol1-123 /acfs

# 查看
acfsutil registry

8.2 取消注册

acfsutil registry -r /acfs

9. 管理

9.1 扩展

acfsutil size +10G /acfs

9.2 缩小

acfsutil size -5G /acfs

9.3 信息

acfsutil info fs /acfs
acfsutil info file /acfs/test.txt

10. 快照

10.1 创建

acfsutil snap create snap1 /acfs

10.2 查看

acfsutil snap info /acfs
ls /acfs/.ACFS/snaps/snap1

10.3 删除

acfsutil snap delete snap1 /acfs

10.4 恢复

# 从快照复制
cp /acfs/.ACFS/snaps/snap1/file /acfs/file

11. 加密

11.1 启用

acfsutil encr init
acfsutil encr set -k AES256 /acfs
acfsutil encr on /acfs

11.2 钱包

acfsutil encr wallet create
acfsutil encr wallet mount

11.3 状态

acfsutil encr info /acfs

12. 标签

12.1 添加

acfsutil tag set tag_name -f /acfs/file.txt

12.2 查询

acfsutil tag info /acfs/file.txt

12.3 搜索

find /acfs -xattr -user.acfs.* tag_name -print

13. 复制

13.1 ACFS Replication

acfsutil repl init primary ...
acfsutil repl init standby ...

详细见:Oracle Data Guard 架构详解


14. 备份

14.1 备份

acfsutil backup create tag backup1 /acfs

14.2 恢复

acfsutil restore ...

详细见:Oracle 备份策略与最佳实践


15. RAC 集群

15.1 集群挂载

# 所有节点
srvctl add filesystem \
  -device /dev/asm/acfsvol1-123 \
  -path /acfs \
  -volume acfsvol1 \
  -diskgroup ACFS \
  -user oracle

srvctl start filesystem -device /dev/asm/acfsvol1-123

15.2 验证

srvctl config filesystem -device /dev/asm/acfsvol1-123

16. 应用场景

16.1 文件存储

- 应用文件
- 日志
- 上传

16.2 共享

- 多节点共享
- 软件库
- 配置

16.3 备份

- 快照
- 备份文件
- 归档

17. 性能

17.1 缓存

- OS Page Cache
- ACFS Buffer

17.2 调优

# 块大小
acfsutil tune SetAcfsCache ...

18. 常见坑与排错

18.1 模块未加载

acfsroot load
lsmod | grep oracle

18.2 挂载失败

acfsutil info fs
mount -v -t acfs ...

18.3 Volume 不可见

ALTER DISKGROUP ACFS RESIZE VOLUME acfsvol1 SIZE 50G;

19. 最佳实践

  1. ADVM/ACFS 启用:基础
  2. 兼容属性:设置
  3. 注册:自动挂载
  4. 快照:保护
  5. 加密:安全
  6. RAC srvctl:集群
  7. 扩展方便:在线
  8. 不存数据文件:限制
  9. 监控:空间
  10. 文档化:配置

20. 参考资料

[1] Oracle Automatic Storage Management Administrator’s Guide 19c, “Oracle ACFS” https://docs.oracle.com/en/database/oracle/oracle-database/19/ostmg/