原作者:Bane Radulovic
译者: 魏兴华
审核: 魏兴华
DBGeeK社区联合出品
原文链接:http://asmsupportguy.blogspot.sg/2014/01/the-asm-passWord-directory.html
本篇介绍ASM的13号文件-密码文件目录,密码文件给Oralce或ASM的本地或远程连接提供访问授权,在Oracle的12C版本,密码文件可以存放在ASM磁盘组中了,ASM的也专门为密码文件的管理设计了元数据结构-ASM Password Directory-ASM密码文件目录 ,元数据文件号为13。
注意,密码文件只有在磁盘组mount以后才能被访问,这意味着如果磁盘组没有被mount,那么远端的客户端将不能连接ASM或DB实例。
对于密码文件的管理涉及到ASMCMD、ORAPWD、SRVCTL命令,密码文件可以使用ORAPWD和ASMCA(在ASM被配置的时候)进行创建。密码文件的其他相关操作是通过ASMCMD和SRVCTL命令来进行的。
如果要使用到上面提到的这一特性,密码文件所在的磁盘组的COMPATIBLE.ASM 属性必须至少设置为12.1,管理ASM密码文件的用户需要具有SYSASM的权限,管理DB的密码文件需要具有SYSDBA权限。
我们在ASM磁盘组DATA中创建一个ASM密码文件:
首先确认磁盘组的COMPATIBLE.ASM属性值是否满足要求:
$ asmcmd lsattr -G DATA -l compatible.asm
Name Value
compatible.asm 12.1.0.0.0
创建ASM的密码文件:
$ orapwd file='+DATA/orapwasm' asm=y
Enter password for SYS: *******
$
通过asmcmd的pwget命令来获取ASM密码文件的名称:
$ asmcmd pwget --asm
+DATA/orapwasm
还可以通过asmcmd的find命令来找到密码文件的全路径和名称:
$ asmcmd find +DATA "*" --type password
+DATA/ASM/PASSWORD/pwdasm.256.837972683
+DATA/orapwasm
其实+DATA/orapwasm是实际文件名(+DATA/ASM/PASSWORD/pwdasm.256.837972683)的一个alias。
ASM用来管理密码文件的元数据结构是ASM的密码文件目录,是ASM元数据结构中的13号文件。但是要注意,ASM的密码文件跟其他文件一样也被ASM文件目录所管理。
我们来定位到ASM的密码文件目录,根据他的文件号为13,我们可以在ASM的文件目录中找到它,我们首先需要定位到ASM的文件目录,它位于ASM 0号磁盘的磁盘头中kfdhdb.f1b1locn所指向的位置。
首先定位到磁盘组DATA的0号磁盘:
$ asmcmd lsdsk -p -G DATA | cut -c12-21,78-88
Disk_Num Path
0 /dev/sdc1
1 /dev/sdd1
2 /dev/sde1
3 /dev/sdf1
然后找到文件目录的起始AU:
$ kfed read /dev/sdc1 | grep f1b1locn
kfdhdb.f1b1locn: 10 ; 0x0d4: 0x0000000a
上面的输出代表文件目录在这个磁盘的AU 10处,只需要定位到AU 10的块13(因为密码文件目录是文件13),就可以通过kfed工具查看ASM密码文件目录的AU分布信息:
$ kfed read /dev/sdc1 aun=10 blkn=13 | egrep "au|disk" | head
kfffde[0].xptr.au: 47 ; 0x4a0: 0x0000002f
kfffde[0].xptr.disk: 2 ; 0x4a4: 0x0002
kfffde[1].xptr.au: 45 ; 0x4a8: 0x0000002d
kfffde[1].xptr.disk: 1 ; 0x4ac: 0x0001
kfffde[2].xptr.au: 46 ; 0x4b0: 0x0000002e
kfffde[2].xptr.disk: 3 ; 0x4b4: 0x0003
kfffde[3].xptr.au: 4294967295 ; 0x4b8: 0xffffffff
kfffde[3].xptr.disk: 65535 ; 0x4bc: 0xffff
...
以上输出显示了,ASM的密码文件目录位于磁盘2的AU 47处,并且同时又复制了2分,分别位于磁盘1的AU 45,磁盘3的AU 46处。注意这是一个normal冗余的磁盘组,ASM的密码文件目录被做了3重镜像。对于元数据的3重镜像我们在本系列文章中已经多次看到。
我们看下2号磁盘的AU 47:
$ kfed read /dev/sde1 aun=47 blkn=1 | more
kfbh.endian: 1 ; 0x000: 0x01
kfbh.hard: 130 ; 0x001: 0x82
kfbh.type: 29 ; 0x002: KFBTYP_PASWDDIR
...
kfzpdb.block.incarn: 3 ; 0x000: A=1 NUMM=0x1
kfzpdb.block.frlist.number: 4294967295 ; 0x004: 0xffffffff
kfzpdb.block.frlist.incarn: 0 ; 0x008: A=0 NUMM=0x0
kfzpdb.next.number: 15 ; 0x00c: 0x0000000f
kfzpdb.next.incarn: 3 ; 0x010: A=1 NUMM=0x1
kfzpdb.flags: 0 ; 0x014: 0x00000000
kfzpdb.file: 256 ; 0x018: 0x00000100
kfzpdb.finc: 837972683 ; 0x01c: 0x31f272cb
kfzpdb.bcount: 15 ; 0x020: 0x0000000f
kfzpdb.size: 512 ; 0x024: 0x00000200
...
上面的输出显示了此ASM元数据块的类型是KFBTYP_PASWDDIR,也就是ASM的密码文件目录:
$ asmcmd ls -l +DATA/ASM/PASSWORD
Type Redund Striped Time Sys Name
PASSWORD HIGH COARSE JAN 27 18:00:00 Y pwdasm.256.837972683
ASM的密码文件是HIGH冗余,做了3副本,但是读者需要注意,这是一个normal冗余的磁盘组。
从12C 版本开始,ASM和数据库的密码文件可以存放在ASM的磁盘组中,ASM的密码文件可以在GI安装时或者使用ORAPWD命令去创建,磁盘组的密码文件可以使用ASMCMD、ORAPWD、SRVCTL命令去管理。
新闻热点
疑难解答
图片精选