文章标题 柔光的暖阳◎ 2022-07-12 11:26 48阅读 0赞 > **原文:** [ASM file number 7][] > **作者:** Bane Radulovic > **译者:**郭旭瑞,沃趣科技产品交付部经理,负责QData Cloud高性能数据库云平台、QBackup数据库秒级备份恢复云平台等产品的整体交付管理与技术支持、维保服务工作。 > **审校:**魏兴华 > **责编:**仲培艺 ASM元信息7号文件,是ASM的逻辑卷目录,用于跟踪与ADVM有关的文件。 ASM动态逻辑卷设备是由ASM动态逻辑卷构建的。一个磁盘组中可以配置一个或多个ASM动态逻辑卷设备。ASM集群文件系统通过ADVM接口构建在ASM磁盘组之上。ADVM像数据库一样,也是ASM的一个客户端。当一个逻辑卷被访问时,相应的ASM文件会被打开并且ASM extent的信息会被发送到ADVM驱动。 有两种与ADVM逻辑卷相关的文件类型: * ASMVOL:逻辑卷文件,作为逻辑卷存储的容器 * ASMVDRL:包含脏数据记录区域信息的文件。重新同步镜像数据时会用到此文件。 ### Turn up the ADVM volume ### 为ADVM创建一个单独的磁盘组并不是必须的,但这样做确实是有意义的,通过这种方式,可以把数据库文件与ACFS文件隔离开。看几个例子。 SQL> create diskgroup ACFS disk 'ORCL:ASMDISK5', 'ORCL:ASMDISK6' attribute 'COMPATIBLE.ASM' = '11.2', 'COMPATIBLE.ADVM' = '11.2'; Diskgroup created. 要创建逻辑卷,首先需要有一个磁盘组,上面创建了一个名称为acfs的磁盘组。为了能在磁盘组中创建逻辑卷,磁盘组的COMPATIBLE.ASM与COMPATIBLE.ADVM必须设置为11.2或以上,同时ADVM/ACFS驱动要被加载(在集群环境中,已经默认加载,而在单实例环境中,需要手动加载)。 做到以上要求后,就可以在磁盘组中创建逻辑卷了。 $ asmcmd volcreate -G ACFS -s 2G ACFS_VOL1 $ asmcmd volcreate -G ACFS -s 2G ACFS_VOL2 $ asmcmd volinfo -a Diskgroup Name: ACFS Volume Name: ACFS_VOL1 Volume Device: /dev/asm/acfs_vol1-159 State: ENABLED Size (MB): 2048 Resize Unit (MB): 32 Redundancy: MIRROR Stripe Columns: 4 Stripe Width (K): 128 Usage: Mountpath: Volume Name: ACFS_VOL2 Volume Device: /dev/asm/acfs_vol2-159 State: ENABLED Size (MB): 2048 Resize Unit (MB): 32 Redundancy: MIRROR Stripe Columns: 4 Stripe Width (K): 128 Usage: Mountpath: $ 到现在,还没有相应的挂载目录与逻辑卷相关联,所以还不能使用它们。这时,我们可以先看看ADVM逻辑卷元信息,我们先从逻辑卷目录获取其所在的分配单元。 SQL> SELECT x.xnum_kffxp "Extent", x.au_kffxp "AU", x.disk_kffxp "Disk #", d.name "Disk name" FROM x$kffxp x, v$asm_disk_stat d WHERE x.group_kffxp=d.group_number and x.disk_kffxp=d.disk_number and x.group_kffxp=2 and x.number_kffxp=7 ORDER BY 1, 2; Extent AU Disk # Disk name ---------- ---------- ---------- ------------------------------ 0 53 1 ASMDISK6 0 53 0 ASMDISK5 接下来,使用kfed工具查看真实的元信息。 $ kfed read /dev/oracleasm/disks/ASMDISK5 aun=53 | more kfbh.endian: 1 ; 0x000: 0x01 kfbh.hard: 130 ; 0x001: 0x82 kfbh.type: 22 ; 0x002: KFBTYP_VOLUMEDIR ... kfvvde.entry.incarn: 1 ; 0x024: A=1 NUMM=0x0 kfvvde.entry.hash: 0 ; 0x028: 0x00000000 kfvvde.entry.refer.number: 4294967295 ; 0x02c: 0xffffffff kfvvde.entry.refer.incarn: 0 ; 0x030: A=0 NUMM=0x0 kfvvde.volnm: ++AVD_DG_NUMBER ; 0x034: length=15 kfvvde.usage: ; 0x054: length=0 kfvvde.dgname: ; 0x074: length=0 kfvvde.clname: ; 0x094: length=0 kfvvde.mountpath: ; 0x0b4: length=0 kfvvde.drlinit: 0 ; 0x4b5: 0x00 kfvvde.pad1: 0 ; 0x4b6: 0x0000 kfvvde.volfnum.number: 0 ; 0x4b8: 0x00000000 kfvvde.volfnum.incarn: 0 ; 0x4bc: 0x00000000 kfvvde.drlfnum.number: 0 ; 0x4c0: 0x00000000 kfvvde.drlfnum.incarn: 0 ; 0x4c4: 0x00000000 kfvvde.volnum: 0 ; 0x4c8: 0x0000 kfvvde.avddgnum: 159 ; 0x4ca: 0x009f kfvvde.extentsz: 0 ; 0x4cc: 0x00000000 kfvvde.volstate: 4 ; 0x4d0: D=0 C=0 R=1 ... 上面的输出信息显示了53号AU的block 0。它只包含了ADVM逻辑卷的标记(++AVD\_DG\_NUMBER),而真正的逻辑卷的信息其实位于block 1及以后。 $ kfed read /dev/oracleasm/disks/ASMDISK5 aun=53 blkn=1 | more kfbh.endian: 1 ; 0x000: 0x01 kfbh.hard: 130 ; 0x001: 0x82 kfbh.type: 22 ; 0x002: KFBTYP_VOLUMEDIR ... kfvvde.entry.incarn: 1 ; 0x024: A=1 NUMM=0x0 kfvvde.entry.hash: 0 ; 0x028: 0x00000000 kfvvde.entry.refer.number: 4294967295 ; 0x02c: 0xffffffff kfvvde.entry.refer.incarn: 0 ; 0x030: A=0 NUMM=0x0 kfvvde.volnm: ACFS_VOL1 ; 0x034: length=9 kfvvde.usage: ; 0x054: length=0 kfvvde.dgname: ; 0x074: length=0 kfvvde.clname: ; 0x094: length=0 kfvvde.mountpath: ; 0x0b4: length=0 kfvvde.drlinit: 0 ; 0x4b5: 0x00 kfvvde.pad1: 0 ; 0x4b6: 0x0000 kfvvde.volfnum.number: 257 ; 0x4b8: 0x00000101 kfvvde.volfnum.incarn: 771971291 ; 0x4bc: 0x2e0358db kfvvde.drlfnum.number: 256 ; 0x4c0: 0x00000100 kfvvde.drlfnum.incarn: 771971289 ; 0x4c4: 0x2e0358d9 kfvvde.volnum: 1 ; 0x4c8: 0x0001 kfvvde.avddgnum: 159 ; 0x4ca: 0x009f kfvvde.extentsz: 8 ; 0x4cc: 0x00000008 kfvvde.volstate: 2 ; 0x4d0: D=0 C=1 R=0 ... $ kfed read /dev/oracleasm/disks/ASMDISK5 aun=53 blkn=2 | more kfbh.endian: 1 ; 0x000: 0x01 kfbh.hard: 130 ; 0x001: 0x82 kfbh.type: 22 ; 0x002: KFBTYP_VOLUMEDIR ... kfvvde.entry.incarn: 1 ; 0x024: A=1 NUMM=0x0 kfvvde.entry.hash: 0 ; 0x028: 0x00000000 kfvvde.entry.refer.number: 4294967295 ; 0x02c: 0xffffffff kfvvde.entry.refer.incarn: 0 ; 0x030: A=0 NUMM=0x0 kfvvde.volnm: ACFS_VOL2 ; 0x034: length=9 kfvvde.usage: ; 0x054: length=0 kfvvde.dgname: ; 0x074: length=0 kfvvde.clname: ; 0x094: length=0 kfvvde.mountpath: ; 0x0b4: length=0 kfvvde.drlinit: 0 ; 0x4b5: 0x00 kfvvde.pad1: 0 ; 0x4b6: 0x0000 kfvvde.volfnum.number: 259 ; 0x4b8: 0x00000103 kfvvde.volfnum.incarn: 771971303 ; 0x4bc: 0x2e0358e7 kfvvde.drlfnum.number: 258 ; 0x4c0: 0x00000102 kfvvde.drlfnum.incarn: 771971301 ; 0x4c4: 0x2e0358e5 kfvvde.volnum: 2 ; 0x4c8: 0x0002 kfvvde.avddgnum: 159 ; 0x4ca: 0x009f kfvvde.extentsz: 8 ; 0x4cc: 0x00000008 kfvvde.volstate: 2 ; 0x4d0: D=0 C=1 R=0 ... ASM元信息7号文件block 1包含的是第一个逻辑卷的信息(kfvvde.volnm: ACFS\_VOL1),并且有两个文件关联到这个逻辑卷。 * DRL脏数据记录区域文件(kfvvde.drlfnum.number: 256) * 逻辑卷文件(kfvvde.volfnum.number: 257) block 2包含第二个逻辑卷的信息(kfvvde.volnm: ACFS\_VOL2),并且有两个文件关联到这个逻辑卷。 * DRL脏数据记录区域文件(kfvvde.drlfnum.number: 258) * 逻辑卷文件(kfvvde.volfnum.number: 259) 这些都是特殊文件,所以不会显示在`asmcmd ls`命令的输出和`v$asm_alias`视图中。但是,你可以到`v$asm_file`中找到他们。 SQL> SELECT file_number "File #", bytes/1024/1024 "Size (MB)", type FROM v$asm_file WHERE group_number=2; File # Size (MB) TYPE ---------- ---------- ---------- 256 17 ASMVDRL 257 2048 ASMVOL 258 17 ASMVDRL 259 2048 ASMVOL ### Create ASM cluster file system ### 这时,可以在逻辑卷设备上创建ASM集群文件系统(ACFS)。 # /sbin/mkfs -t acfs /dev/asm/acfs_vol1-159 mkfs.acfs: version = 11.2.0.3.0 mkfs.acfs: on-disk version = 39.0 mkfs.acfs: volume = /dev/asm/acfs_vol1-159 mkfs.acfs: volume size = 2147483648 mkfs.acfs: Format complete. # mkdir /acfs1 # mount -t acfs /dev/asm/acfs_vol1-159 /acfs1 # mount /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) ... oracleasmfs on /dev/oracleasm type oracleasmfs (rw) /dev/asm/acfs_vol1-159 on /acfs1 type acfs (rw) $ asmcmd volinfo -G ACFS ACFS_VOL1 Diskgroup Name: ACFS Volume Name: ACFS_VOL1 Volume Device: /dev/asm/acfs_vol1-159 State: ENABLED Size (MB): 2048 Resize Unit (MB): 32 Redundancy: MIRROR Stripe Columns: 4 Stripe Width (K): 128 Usage: ACFS Mountpath: /acfs1 $ 这时候再看看逻辑卷目录中是否包含挂载目录: $ kfed read /dev/oracleasm/disks/ASMDISK6 aun=53 blkn=1 | grep mountpath kfvvde.mountpath: /acfs1 ; 0x0b4: length=6 确实如此。 ### Conclusion ### 一个磁盘组中可以配置一个或多个ASM动态逻辑卷设备。ASM集群文件系统通过ADVM接口构建于ASM磁盘组之上。ADVM跟数据库一样,也是ASM的一个客户端。 有两种与ADVM逻辑卷相关的文件类型: * ASMVOL:逻辑卷文件,作为逻辑卷存储设备的容器 * ASMVDRL:包含脏数据记录区域信息的文件。恢复镜像数据时会用到此文件。 [ASM file number 7]: http://asmsupportguy.blogspot.sg/2012/01/asm-file-number-7.html
相关 文章标题 \[数据库\]关于 Oracle 11g r2 Enterprise Manager (EM) 在windows环境无法启动的解决办法 在环境变量中添加以下三个变量: O 梦里梦外;/ 2022年07月21日 00:04/ 0 赞/ 32 阅读
相关 文章标题 应用层open,write,read根据打开文件的属性找到对应的硬件或者存储设备驱动。 驱动框架 一、LED驱动框架 (1)、写出len\_open,len\_re ╰+哭是因爲堅強的太久メ/ 2022年07月14日 20:29/ 0 赞/ 27 阅读
相关 文章标题 > 原文: [ASM file number 7][] > 作者: Bane Radulovic > 译者:郭旭瑞,沃趣科技产品交付部经理,负责QData Cloud高 柔光的暖阳◎/ 2022年07月12日 11:26/ 0 赞/ 49 阅读
相关 文章标题 CSDN MarkDown语法写博客 二级标题 介绍内容 分隔线:空行,再加上三个横杠— 三级标题 无序列表项一 (横杠 加空格) 无序列表项一 不念不忘少年蓝@/ 2022年06月15日 09:23/ 0 赞/ 225 阅读
相关 文章标题 html部分 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> 小咪咪/ 2022年06月09日 13:39/ 0 赞/ 75 阅读
相关 文章标题 售票厅 【问题描述】 售票厅出售关于音乐会的票,取代原来的卖一张票的形式,而是一组座号连续的票。售票室已经收到很多预订。每个预订包含指定最小座号的一组连续的票。 售 ╰半夏微凉°/ 2022年06月09日 03:49/ 0 赞/ 258 阅读
相关 文章标题 用AJAX简单实现注册页面的用户名检测 js代码: <script> // 原生的方式使用AJAX // function getXMLHttpRequest( 旧城等待,/ 2022年06月09日 02:49/ 0 赞/ 289 阅读
相关 文章标题 状态模式 状态模式定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 状态模式主要解决的问题是:当控制一个对象状态转换的条件表达式过于复杂时的情 末蓝、/ 2022年06月05日 07:59/ 0 赞/ 294 阅读
相关 文章标题 apache端口被异常占用导致无法启动的解决方法 最近遇到LNMPA一键安装包的Apache无法启动的问题,Apache提示以下信息: (98)Address alre 红太狼/ 2022年06月03日 01:54/ 0 赞/ 277 阅读
相关 文章标题 coding:utf-8 author = “xshengjing” from Tkinter import \ class App: def init(se Myth丶恋晨/ 2021年09月13日 22:56/ 0 赞/ 381 阅读
还没有评论,来说两句吧...