暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

读书笔记: RAC环境实操Oracle ACFS

黄伟DBCA 2021-04-08
1166

DB君想说3个事儿:

  1. RAC环境下实操ACFS;

  2. RAC环境下ACFS如何自动挂载;

  3. ACFS使用小结


一、RAC环境数据库实操ACFS

在RAC环境下创建、管理、使用ACFS与单实例环境下的的操作流程类似。具体可查看前一篇文章:读书笔记:实操ACFS--Oracle单实例环境


1 RAC数据库环境已部署:

OS版本:RHEL 6.5 X86_64

内核版本:2.6.32-431.el6.x86_64 x86_64

Oracle版本:11.2.0.4.0

磁盘组:FRA「实现已创建好的名为fra的磁盘组」

RAC环境下acfs的正常使用同样需要下述4个OS内核模块:

oracleasm:ASM module;

oracleadvm:ASM Dynamic Volume Manager module;

oracleoks:Oracle kernel services module;

oracleacfs:ASM file system module

只是通常不再需要手工去加载和启动,这项工作由RAC clusterware自动帮我们完成。

[root@node1 ~]# lsmod |grep oracle

oracleacfs 1990406 0

oracleadvm 250040 0

oracleoks 427672 2 oracleacfs,oracleadvm

[root@node1 ~]#

注1该RAC环境的存储是通过udev来实现的,故没有oracleasm内核。


2 创建ASM volume

SQL> select group_number,name,total_mb,free_mb,state from v$asm_diskgroup;


GROUP_NUMBER NAME TOTAL_MB FREE_MB STATE

------------ ---------- ---------- ---------- ---------------------------------

1 DATA 6141 7 MOUNTED

2 FRA 2047 1716 MOUNTED

3 GRID 1019 623 MOUNTED


SQL> select inst_id,group_number,VOLUME_NAME,usage,state,VOLUME_DEVICE,MOUNTPATH from gv$asm_volume;


no rows selected


SQL> alter diskgroup fra add volume v1 size 300m;


Diskgroup altered.


SQL>

创建之后:

SQL> select inst_id,group_number,VOLUME_NAME,usage,state,VOLUME_DEVICE,MOUNTPATH from gv$asm_volume;


INST_ID GROUP_NUMBER VOL USAGE STATE VOLUME_DEVICE MOUNTPATH

---------- ------------ --- ----- -------- -------------------- --------------------

1 2 V1 ENABLED dev/asm/v1-33

2 2 V1 ENABLED dev/asm/v1-33


SQL> !

node1-> ls -l dev/asm/

total 0

brwxrwx---. 1 root asmadmin 252, 16897 May 4 16:52 v1-33

node1->

注2RAC环境下创建ASM卷只需要在任意节点上执行即可,其它节点会自动看到已创建出的卷信息,如上

/dev/asm/v1-33设备是ASM卷v1映射到OS上的设备,且在节点2上同样可以看到该设备信息。

[root@node2 ~]# ls -l dev/asm

total 0

brwxrwx---. 1 root asmadmin 252, 16897 May 4 17:49 v1-33

[root@node2 ~]#


3 创建文件系统

[root@node1 ~]# mkfs.acfs dev/asm/v1-33

mkfs.acfs: version = 11.2.0.4.0

mkfs.acfs: on-disk version = 39.0

mkfs.acfs: volume = dev/asm/v1-33

mkfs.acfs: volume size = 335544320

mkfs.acfs: Format complete.

[root@node1 ~]#

注3上述给ASM卷映射到OS上的设备创建文件系统时,同样只需要在其中一个节点上执行即可。


4 挂载设备

RAC双节点上创建相同的挂载路径:/home/grid/acfs

RAC双节点上依次使用下述命令挂载/dev/asm/v1-33文件系统。

[root@node1 ~]# mount -t acfs dev/asm/v1-33 home/grid/acfs/

RAC双节点挂载之后:

节点1:

[root@node1 ~]# df -Th

Filesystem Type Size Used Avail Use% Mounted on

/dev/sda1 ext4 16G 14G 1.1G 94%

tmpfs tmpfs 939M 483M 457M 52% dev/shm

/dev/asm/v1-33 acfs 320M 40M 281M 13% /home/grid/acfs

[root@node1 ~]#

节点2:

[root@node2 ~]# df -Th

Filesystem Type Size Used Avail Use% Mounted on

/dev/sda1 ext4 16G 15G 511M 97% /

tmpfs tmpfs 939M 614M 326M 66% /dev/shm

/dev/asm/v1-33 acfs 320M 78M 243M 25% /home/grid/acfs

[root@node2 ~]#

ASM实例里看到的信息:

SQL> select inst_id,group_number,VOLUME_NAME,usage,state,VOLUME_DEVICE,MOUNTPATH from gv$asm_volume;


INST_ID GROUP_NUMBER VOL USAGE STATE VOLUME_DEVICE MOUNTPATH

---------- ------------ --- ----- -------- -------------------- --------------------

1 2 V1 ACFS ENABLED /dev/asm/v1-33 /home/grid/acfs/

2 2 V1 ACFS ENABLED /dev/asm/v1-33 /home/grid/acfs/


SQL>

注4上述通过OS级别的mount命令需要在每个RAC节点上分别执行,才可以挂载、使用acfs文件系统;


二、RAC环境下如何自动挂载、使用acfs文件系统

1 向clusterware管理的服务项中添加acfs filesystem服务「root用户在任意节点上执行」

grid用户执行报错:

node1-> srvctl add filesystem -d /dev/asm/v1-33 -v v1 -g fra -m /home/grid/acfs/ -u grid

PRCN-2018 : Current user grid is not a privileged user

node1-> whoami

grid

node1->

root用户执行:

[root@node1 ~]# whoami

root

[root@node1 ~]# /u01/app/11.2.0/grid/bin/srvctl add filesystem -d /dev/asm/v1-33 -v v1 -g fra -m /home/grid/acfs/ -u grid

[root@node1 ~]#

注5上述命令需要root用户执行,且只需在任意节点执行即可。同时,命令中的-u grid选项表示将来以grid用户来自动挂载。


2 启动acfs filesystem

节点1:


node1-> srvctl start filesystem -d /dev/asm/v1-33 -n node1

node1-> df -Th

Filesystem Type Size Used Avail Use% Mounted on

/dev/sda1 ext4 16G 14G 1.1G 94% /

tmpfs tmpfs 939M 484M 456M 52% /dev/shm

/dev/asm/v1-33 acfs 320M 78M 243M 25% /home/grid/acfs

node1->

节点2:

node2-> df -Th

Filesystem Type Size Used Avail Use% Mounted on

/dev/sda1 ext4 16G 15G 511M 97% /

tmpfs tmpfs 939M 614M 326M 66% /dev/shm

node2-> srvctl start filesystem -d /dev/asm/v1-33

node2-> df -Th

Filesystem Type Size Used Avail Use% Mounted on

/dev/sda1 ext4 16G 15G 510M 97% /

tmpfs tmpfs 939M 614M 326M 66% /dev/shm

/dev/asm/v1-33 acfs 320M 78M 243M 25% /home/grid/acfs

node2->


此外,可以通过srvctl enable|disable|start|stop|status filesystem命令来启用、禁用、启动、停止、查看acfs filesystem。如:

node1-> srvctl status filesystem -d /dev/asm/v1-33

ACFS file system is running on node1,node2

node1->

这样,将来RAC节点自动重启之后,ACFS会自动挂载。

注6只有在RAC环境下才支持ACFS的自动挂载,单实例环境下暂不支持该功能。


三、ACFS小结

  1. ACFS的使用场景离不开ASM环境,且多见于RAC架构下的数据库;

  2. ACFS可以支持存放的文件类型:数据库跟踪文件、日志文件、逻辑备份dump文件、及常见的OS可支持的二进制、文本、音视频等文件,但是不建议将oracle数据库文件存在ACFS上;从11.2.0.3.0版本开始,OCFS支持存放RMAN备份集文件;

  3. ACFS可以用来存放oracle数据库软件的ORACLE_HOME目录,但是不可以用来存放grid软件的ORACLE_HOME目录


题图:Unforgettable Hubble Space Telescope Photos


如果不介意为DB君增+1位新读者的话,欢迎把这篇文章分享到你的朋友圈儿。


文章转载自黄伟DBCA,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论