如何不使用图形来创建ACFS文件系统

如何,使用,图形,创建,acfs,文件系统 · 浏览次数 : 170

小编点评

1.创建Oracle ADVM volume: $ asmca -silent \\-createVolume \\-volumeName volume1 \\-volumeDiskGroup archdg \\-volumeSizeGB 1 --实际执行效果:[grid@db01rac1 ~]$ asmca -silent \\> -createVolume \\> -volumeName volume1 \\> -volumeDiskGroup archdg \\> -volumeSizeGB 1[INFO] [DBT-30079] Volume volume1 created successfully.此时对应资源正确显示:--------------------------------------------------------------------------------Name Target State Server State details--------------------------------------------------------------------------------Local Resources--------------------------------------------------------------------------------ora.ARCHDG.VOLUME1.advm ONLINE ONLINE db01rac1 STABLE ONLINE ONLINE db01rac2 STABLE2. 2.创建Oracle ACFS文件系统: 先查询下volume的名字:ASMCMD> volinfo --allDiskgroup Name: ARCHDG\t Volume Name: VOLUME1\t Volume Device: /dev/asm/volume1-346\t State: ENABLED\t Size (MB): 1024\t Resize Unit (MB): 64\t Redundancy: UNPROT\t Stripe Columns: 8\t Stripe Width (K): 1024\t Usage: ACFS\t Mountpath: /xtts 然后确认是/dev/asm/volume1-346后,执行:$ asmca -silent \\ -createACFS \\ -acfsVolumeDevice /dev/asm/volume1-346 \\ -acfsMountPoint /ggs--实际执行效果:[grid@db01rac1 ~]$ asmca -silent \\> -createACFS \\> -acfsVolumeDevice /dev/asm/volume1-346 \\> -acfsMountPoint /ggs[INFO] [DBT-30092] ASM Cluster File System created on /dev/asm/volume1-346 successfully.[INFO] Run the generated ACFS registration script /u01/app/grid/cfgtoollogs/asmca/scripts/acfs_script.sh as privileged user to register the ACFS with Grid Infrastructure and to mount the ACFS. 3.使用root用户执行提示的这个脚本,注意只需在节点1执行一次即可:[root@db01rac1 xtts]# sh /u01/app/grid/cfgtoollogs/asmca/scripts/acfs_script.sh

正文

客户需求,提供在19c环境下,ACFS的命令行操作的具体步骤,便于在图形界面不可用场景使用。
当然,如果有图形可操作,还是推荐首选图形,避免复杂度以及不必要的错误。

其实之前有测试过11g环境下的ACFS命令创建,如下:

但考虑到版本可能会有变化,为避免不必要的试错过程,我们建议依据官方19c最新的方式来创建。

在正式开始之前,首先我们要了解下相关概念,嗯,又要来看官方文档说明了,主要看“Automatic Storage Management Administrator's Guide”这个文档。

Oracle ASM Cluster File System (Oracle ACFS) and Oracle ASM Dynamic Volume Manager (Oracle ADVM) provide key components of storage management.

其实存储管理的功能本身由存储软件商来cover,但是Oracle的ASM一出,就抢占了这个市场。尤其是现在去装Oracle集群数据库,基本不会再用到存储软件的存储管理,都是首选ASM。
但ASM磁盘组只能存放Oracle相关数据,而ACFS就是进一步扩展应用场景,在ASM的基础上,提供了集群文件系统,可以用于存放任意数据。官方原话是:

Oracle Automatic Storage Management Cluster File System (Oracle ACFS) is a multi-platform, scalable file system, and storage management technology that extends Oracle Automatic Storage Management (Oracle ASM) functionality to support all customer files.

创建ACFS,参考官方文档:

  • Creating an Oracle ACFS File System

https://docs.oracle.com/en/database/oracle/oracle-database/19/ostmg/steps-manage-acfs.html#GUID-4C98CF06-8CCC-45F1-9316-C40FB3EFF268

官方文档写的非常清楚,只需要按文档做一个具体测试验证,供客户操作参考:
我这里用于XTTS测试,就将挂载目录创建简单明了的/xtts吧。

[root@db01rac1 ~]# mkdir /xtts
[root@db01rac2 ~]# mkdir /xtts

之后步骤按文档验证如下:

1.在DATADG磁盘组中创建ADVM volume

ASMCMD> volcreate -G datadg -s 5G volume1

实验空间有限,就以5G大小为例,如果你的空间需要更大,按实际调整即可,ACFS支持大空间创建,只要你的ASM磁盘组剩余空间足够。

2.确认已经成功创建ADVM volume

ASMCMD> volinfo -G datadg volume1
Diskgroup Name: DATADG

	 Volume Name: VOLUME1
	 Volume Device: /dev/asm/volume1-290
	 State: ENABLED
	 Size (MB): 5120
	 Resize Unit (MB): 64
	 Redundancy: UNPROT
	 Stripe Columns: 8
	 Stripe Width (K): 1024
	 Usage:
	 Mountpath:

[grid@db01rac1 ~]$ sqlplus / as sysasm

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jun 1 14:02:48 2023
Version 19.16.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.16.0.0.0

SQL> SELECT volume_name, volume_device FROM V$ASM_VOLUME
     WHERE volume_name ='VOLUME1';  2

VOLUME_NAME
------------------------------
VOLUME_DEVICE
--------------------------------------------------------------------------------
VOLUME1
/dev/asm/volume1-290

3.使用mkfs命令创建acfs文件系统

[grid@db01rac1 ~]$ ls -l /dev/asm/volume1-290
brwxrwx--- 1 root asmadmin 250, 148481 Jun  1 13:19 /dev/asm/volume1-290

[grid@db01rac1 ~]$ /sbin/mkfs -t acfs /dev/asm/volume1-290
mkfs.acfs: version                   = 19.0.0.0.0
mkfs.acfs: on-disk version           = 46.0
mkfs.acfs: volume                    = /dev/asm/volume1-290
mkfs.acfs: volume size               = 5368709120  (   5.00 GB )
mkfs.acfs: Format complete.

注意:这里其实并不需要root用户执行mkfs命令,只要是volume的所有者即可执行此命令,比如这里就是grid用户执行成功的。

4.注册文件系统

使用 srvctl 命令注册并自动挂载文件系统,举例来说:

[root@db01rac1 ~]# /u01/app/19.3.0/grid/bin/srvctl add filesystem -device /dev/asm/volume1-290 -path /xtts -user grid,oracle

使用acfsutil命令来注册文件系统,举例如下:

[root@db01rac1 ~]# /sbin/acfsutil registry -a /dev/asm/volume1-290 /xtts
acfsutil registry: mount point /xtts successfully added to Oracle Registry

此时已经可以查到两边节点正常看到这个acfs的文件系统正常挂载:

--node1:
[root@db01rac1 xtts]# df -h /xtts
文件系统              容量  已用  可用 已用% 挂载点
/dev/asm/volume1-290  5.0G  559M  4.5G   11% /xtts
[root@db01rac1 xtts]# ls -ld /xtts
drwxr-xr-x 4 oracle oinstall 32768 6月   1 14:31 /xtts
[root@db01rac1 xtts]# ls -lrth /xtts
总用量 64K
drwx------ 2 root root 64K 6月   1 14:31 lost+found

--node2:
[root@db01rac2 xtts]# df -h /xtts
文件系统              容量  已用  可用 已用% 挂载点
/dev/asm/volume1-290  5.0G  559M  4.5G   11% /xtts
[root@db01rac2 xtts]# df -h /xtts
文件系统              容量  已用  可用 已用% 挂载点
/dev/asm/volume1-290  5.0G  559M  4.5G   11% /xtts
[root@db01rac2 xtts]# ls -ld /xtts
drwxr-xr-x 4 oracle oinstall 32768 6月   1 14:31 /xtts
[root@db01rac2 xtts]# ls -lrth /xtts
总用量 64K
drwx------ 2 root root 64K 6月   1 14:31 lost+found

5.挂载并启动文件系统

之前已经注册了文件系统,直接使用SRVCTL命令启动文件系统,举例如下:

[grid@db01rac1 ~]$ srvctl start filesystem -device /dev/asm/volume1-290
PRCR-1120 : Resources are already running.
CRS-5702: Resource 'ora.datadg.volume1.acfs' is already running on 'db01rac1'

实际发现这一步不需要执行了,因为资源都已经正常启动啦:

[grid@db01rac1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATADG.VOLUME1.advm
               ONLINE  ONLINE       db01rac1                 STABLE
               ONLINE  ONLINE       db01rac2                 STABLE
...
ora.datadg.volume1.acfs
               ONLINE  ONLINE       db01rac1                 mounted on /xtts,STA
                                                             BLE
               ONLINE  ONLINE       db01rac2                 mounted on /xtts,STA
                                                             BLE
...

你根据实际情况判断即可,如果要启动,是这个命令没错。

如果你之前没有注册文件系统,那么使用oracle acfs的mount命令挂载文件系统,举例如下(这里上面已完成注册、启动并挂载,未做这种情况的验证):

# /bin/mount -t acfs /dev/asm/volume1-290 /xtts

这一步也不需要执行。

6.方法二:使用asmca静默模式来创建ACFS

下面看下另外一种封装的方法,其实就是直接使用asmca,只不过用它的静默模式,来创建ACFS:
对应文档:
https://docs.oracle.com/en/database/oracle/oracle-database/19/ostmg/manage-acfs-advm-asmca.html#GUID-5DD43A64-2D00-469A-8035-88F10D79F5E4

首先创建ADVM,然后创建ACFS,两步都可以使用asmca静默模式来创建:

这里另外创建一个测试挂载点 /ggs,使用另外一个ASM磁盘组:ARCHDG。

1. 创建一个Oracle ADVM volume:

$ asmca -silent \
-createVolume \
-volumeName volume1 \
-volumeDiskGroup archdg \
-volumeSizeGB 1 

--实际执行效果:
[grid@db01rac1 ~]$ asmca -silent \
> -createVolume \
> -volumeName volume1 \
> -volumeDiskGroup archdg \
> -volumeSizeGB 1

[INFO] [DBT-30079] Volume volume1 created successfully.

此时对应资源正确显示:

--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ARCHDG.VOLUME1.advm
               ONLINE  ONLINE       db01rac1                 STABLE
               ONLINE  ONLINE       db01rac2                 STABLE

2. 创建一个Oracle ACFS文件系统:

先查询下volume的名字:

ASMCMD> volinfo --all
Diskgroup Name: ARCHDG

	 Volume Name: VOLUME1
	 Volume Device: /dev/asm/volume1-346
	 State: ENABLED
	 Size (MB): 1024
	 Resize Unit (MB): 64
	 Redundancy: UNPROT
	 Stripe Columns: 8
	 Stripe Width (K): 1024
	 Usage:
	 Mountpath:

Diskgroup Name: DATADG

	 Volume Name: VOLUME1
	 Volume Device: /dev/asm/volume1-290
	 State: ENABLED
	 Size (MB): 5120
	 Resize Unit (MB): 64
	 Redundancy: UNPROT
	 Stripe Columns: 8
	 Stripe Width (K): 1024
	 Usage: ACFS
	 Mountpath: /xtts

然后确认是/dev/asm/volume1-346后,执行:

$ asmca -silent \
        -createACFS \
           -acfsVolumeDevice /dev/asm/volume1-346 \
           -acfsMountPoint /ggs

--实际执行效果:
[grid@db01rac1 ~]$ asmca -silent \
>         -createACFS \
>            -acfsVolumeDevice /dev/asm/volume1-346 \
>            -acfsMountPoint /ggs

[INFO] [DBT-30092] ASM Cluster File System created on /dev/asm/volume1-346 successfully.
[INFO] Run the generated ACFS registration script /u01/app/grid/cfgtoollogs/asmca/scripts/acfs_script.sh as privileged user to register the ACFS with Grid Infrastructure and to mount the ACFS. The ACFS registration script needs to be run only on this node: db01rac1.

使用root用户执行提示的这个脚本,
注意只需在节点1执行一次即可:

[root@db01rac1 xtts]# sh /u01/app/grid/cfgtoollogs/asmca/scripts/acfs_script.sh
已在节点 db01rac1,db01rac2 上装载 ACFS 文件系统/ggs

最后有个小细节稍微提下,这里挂载的/ggs目录默认权限是root用户哈,而上面方法一,因为有指定用户权限,挂载的目录/xtts是oracle用户。

与如何不使用图形来创建ACFS文件系统相似的内容:

如何不使用图形来创建ACFS文件系统

客户需求,提供在19c环境下,ACFS的命令行操作的具体步骤,便于在图形界面不可用场景使用。 当然,如果有图形可操作,还是推荐首选图形,避免复杂度以及不必要的错误。 其实之前有测试过11g环境下的ACFS命令创建,如下: - [通过命令行创建ACFS文件系统](https://www.cnblogs

如何在.NET电子表格应用程序中创建流程图

前言 流程图是一种常用的图形化工具,用于展示过程中事件、决策和操作的顺序和关系。它通过使用不同形状的图标和箭头线条,将任务和步骤按照特定的顺序连接起来,以便清晰地表示一个过程的执行流程。 在企业环境中,高管和经理利用流程图来规划业务流程,使他们能够识别瓶颈、优化生产力并增强决策能力……用例列表不胜枚

Java NIO 图解 Netty 服务端启动的过程

本文在了解netty核心组件的前提下,进一步了解组件如何在整个服务器启动过程如何被创建,如何组件之间配合来使用。首先也是先了解下大概服务端的启动过程,并且在了解过程中我们带着自己的问题去在学习过程中探寻答案

VGA显示图片

VGA显示图片 1. VGA显示图片的原理 图片比之前显示的色块和字符的数据量大,所以使用rom来存储图片。用到ROM IP。可以存放mif和hex格式,需要先把图片转换成mif格式。 2. 如何制作mif文件 先用windows自带的画图工具打开图片,调整大小。步骤:点击重新调整大小,不勾选“保持

[转帖]jmeter之foreach循环控制器-03篇

上篇我们通过正则表达式获取到了一组数据,那么怎么来用呢?下面就用foreach控制器来使用结果,如下图所示 然后再foreach控制器里添加要循环的请求,我们模拟百度搜索,value填入${id} 然后运行测试,会发现请求循环执行了10次,每次的值都不一样

[转帖]jmeter实现不写代码把测试结果存入execl

这里使用数据库作为中间件来实现不写代码就把测试结果存入execl,下面是步骤 1.新建一个setup线程组用来设置数据库连接信息和新建数据库,如下图所示,我们使用sqlite数据库来存储信息,因为不需要自己再去安装数据库,Database URL填写jdbc:sqlite:mytest.db,这是标

可视化学习:使用极坐标参数方程和SDF绘制有趣的图案

本文将介绍如何使用极坐标参数方程和上一篇文章提到的距离场SDF来绘制有趣的图案。有些曲线比起直角坐标系来说,更方便使用极坐标来表示,这个时候我们可以选择通过极坐标和直角坐标的相互转换,来实现图形的绘制

【matplotlib基础】--手绘风格

Matplotlib 中有一个很有趣的手绘风格。如果不是特别严肃的分析报告,使用这个风格能给枯燥的数据分析图表带来一些活泼的感觉。 使用手绘风格非常简单,本篇主要手绘风格的效果以及如何配置中文的支持。 1. 中文支持 Matplotlib 的手绘风格默认是不支持中文的,中文在图形中会显示成方格子。如

如何更好的分析潜在人脉?聊聊华为云图引擎GES的Cypher子查询

摘要:本文以华为云图引擎 GES 为例,来介绍如何使用图查询语言 Cypher 表达一些需要做数据局部遍历的场景。 本文分享自华为云社区《使用 Cypher 子查询进行图探索 -- 以华为云图引擎 GES 为例》,作者:蜉蝣与海。 在图数据库/图计算领域,很多查询可以使用图查询语言Cypher、Gr

[转帖]性能优化必备——火焰图

引言 本文主要介绍火焰图及使用技巧,学习如何使用火焰图快速定位软件的性能卡点。结合最佳实践实战案例,帮助读者加深刻的理解火焰图构造及原理,理解 CPU 耗时,定位性能瓶颈。 背景 当前现状 假设没有火焰图,你是怎么调优程序代码的呢?让我们来捋一下。 1. 功能开关法 想当年我刚工作,还是一个技术小白