首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ASM 翻译系列第二十四弹:ASM Internal ASM files number 10 and 11

ASM 翻译系列第二十四弹:ASM Internal ASM files number 10 and 11

作者头像
沃趣科技
发布2018-03-23 18:29:54
6030
发布2018-03-23 18:29:54
举报
文章被收录于专栏:沃趣科技沃趣科技
原作者:Bane Radulovic

译者: 郭旭瑞

审核: 魏兴华

DBGeeK社群联合出品

ASM files number 10 and 11

本篇介绍ASM元信息的十号文件和十一号文件,ASM元信息10号文件是ASM用户目录,11号文件是组目录。它们是用来为ASM文件访问控制特性提供支持的元信息结构。

ASM文件访问控制机制用来限制特定的ASM客户端(通常就是数据库实例)对文件的访问,它是基于操作系统层database home的effective user标识号实现的。

这些信息可以通过V$ASM_USER、V$ASM_USERGROUP、$ASM_USERGROUP_MEMBER视图查询到。

ASM users and groups

如果要使用ASM文件访问控制特性,我们需要适当的设置操作系统用户和组。通过ALTER DISKGROUP ADD USERGROUP命令将用户和组添加至ASM磁盘组中。这一步就略过了,我们把关注点集中在ASM 用户和组目录上。

下面是操作系统中我们创建的用户。

$ id grid
uid=1100(grid) gid=1000(oinstall) groups=1000(oinstall),1020(asmadmin),1021(asmdba),1031(dba)
$ id oracle
uid=1101(oracle) gid=1000(oinstall) groups=1000(oinstall),1021(asmdba),1031(dba)
$ id oracle1
uid=1102(oracle1) gid=1033(dba1) groups=1033(dba1)
$ id oracle2
uid=1103(oracle2) gid=1034(dba2) groups=1034(dba2)

接下来就是我在磁盘组中设置的用户和组。

SQL> SELECT u.group_number "Disk group#",
u.os_id "OS ID",
u.os_name "OS user",
u.user_number "ASM user#",
g.usergroup_number "ASM group#",
g.name "ASM user group"
FROM v$asm_user u, v$asm_usergroup g, v$asm_usergroup_member m
WHERE u.group_number=g.group_number and u.group_number=m.group_number
and u.user_number=m.member_number
and g.usergroup_number=m.usergroup_number
ORDER BY 1, 2;

Disk group# OS ID OS user ASM user# ASM group# ASM user group
----------- ----- ------- --------- ---------- --------------
         1 1100  grid            1          3 GRIDTEAM
           1101  oracle          2          1 DBATEAM1
           1102  oracle1         3          2 DBATEAM2
           1103  oracle2         4          2 DBATEAM2
         2 1101  oracle          2          1 DBATEAM1

Look inside

在1号磁盘组中获取ASM 用户和组目录所在的AU。

SQL> SELECT x.number_kffxp "File#",
x.disk_kffxp "Disk#",
x.xnum_kffxp "Extent",
x.au_kffxp "AU",
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 d.group_number=1
and x.number_kffxp in (10, 11)
ORDER BY 1, 2;

    File#      Disk#     Extent         AU Disk name
---------- ---------- ---------- ---------- ------------------------------
       10          0          0       2139 ASMDISK5
                   1          0       2139 ASMDISK6
       11          0          0       2140 ASMDISK5
                   1          0       2140 ASMDISK6

对于每个用户,用户目录元信息中都有一个block相对应,而block号是跟用户号(对应v$asm_user的user_number列)相对应的。如果我们有四个用户,用户号码分别对应1-4,那么他们也分别位于1-4号block中。接下来加以验证。

$ kfed read /dev/oracleasm/disks/ASMDISK5 aun=2139 blkn=1 | more
kfbh.endian:                          1 ; 0x000: 0x01
kfbh.hard:                          130 ; 0x001: 0x82
kfbh.type:                           24 ; 0x002: KFBTYP_USERDIR
...
kfzude.user:                       1100 ; 0x038: length=4
...

所以,1号block对应1100号操作系统用户。这与上文v$asm_user查询结果是匹配的。接下来看其他block。

$ let b=1
$ while (( $b <= 4 ))
do
kfed read /dev/oracleasm/disks/ASMDISK5 aun=2139 blkn=$b | grep kfzude.user
let b=b+1
done

kfzude.user:                       1100 ; 0x038: length=4
kfzude.user:                       1101 ; 0x038: length=4
kfzude.user:                       1102 ; 0x038: length=4
kfzude.user:                       1103 ; 0x038: length=4

正如所想的,以上显示了ASM用户目录中的四个操作系统用户对应的ID。

组目录也是一个条目对应一个block,block号也是跟ASM组号码匹配的。继续验证。

$ let b=1
$ while (( $b <= 3 ))
do
kfed read /dev/oracleasm/disks/ASMDISK5 aun=2140 blkn=$b | grep kfzgde.name
let b=b+1
done

kfzgde.name:                   DBATEAM1 ; 0x03c: length=8
kfzgde.name:                   DBATEAM2 ; 0x03c: length=8
kfzgde.name:                   GRIDTEAM ; 0x03c: length=8

以上显示了该磁盘组中对应的组名称。

Conclusion

ASM用户目录和组目录是用来为ASM文件访问控制特性提供支持的元信息结构,该特性在11.2版本中引入。这些信息可以通过V$ASM_USER、V$ASM_USERGROUP、$ASM_USERGROUP_MEMBER视图查询到。

关于译者

郭旭瑞,沃趣科技产品交付部经理,负责QData Cloud高性能数据库云平台、QBackup数据库秒级备份恢复云平台等产品的整体交付管理与技术支持、维保服务工作。个人网站:www.dbalex.com

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 沃趣科技 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档