重庆思庄Oracle、Redhat认证学习论坛

标题: oracle 60-raw.rules和99-oracle-asmdevices.rules区别 [打印本页]

作者: 郑全    时间: 2015-1-2 13:39
标题: oracle 60-raw.rules和99-oracle-asmdevices.rules区别

     我最近在看很多安装oracle rac环境的文档的时候,发现oracle 10gRac大家普遍的修改60-raw.rules,

     而一些oracle11R2的版本,大家都在用99-oracle-asmdevices.rules这个文件,这个问题困扰了我很久了,

     今天才在一个偶然的环境下,解开了这个谜团。

    我在看这篇文章的时候,才知道为什么了。“Linux平台通过udev的方式将块设备转换为字符设备,并固定设备的权限和所有者,这种需求只在安装11gR1之前的RAC数据库的时候需要这样做,安装11gR2的RAC Database,ASM可以直接使用块设备。

         于是我自己也做了实验来验证这个结论。

    一.创建60-raw.rules类型的

 
        [root@dbserver rules.d]#   

        [root@dbserver rules.d]# cat /etc/udev/rules.d/60-raw.rules  

 

# Enter raw device bindings here.
#
# An example would be:
#   ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"
# to bind /dev/raw/raw1 to /dev/sda, or
#   ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m"
# to bind /dev/raw/raw2 to the device with major 8, minor 1.

 

ACTION=="add",KERNEL=="sdc1",RUN+="/bin/raw /dev/raw/raw1 %N"
KERNEL=="raw1",OWNER="grid",GROUP="asmadmin",MODE="0660"

 

 

[root@dbserver rules.d]# /sbin/start_udev start  

Starting udev: [  OK  ]

[root@dbserver rules.d]# ll /dev/raw/*  

 

crw-r----- 1 oracle asmadmin 1621 Jan 2 13:30 /dev/raw/raw1  

 

看raw1文件类型果然是c字符设备类型啊。

 

  二  99-oracle-asmdevices.rules这类型

     创建脚本:

     获得块设备信息:

 

     [root@dbserver rules.d]# /sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sdc
     36000c296d1933b12e00c2201e98a2e64

  

     创建udev规则文件:99-oracle-asmdevices.rules

     [root@dbserver rules.d]# more 99-oracle-asmdevices.rules
      KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c
      296d1933b12e00c2201e98a2e64", NAME="asm-diskc", OWNER="grid", GROUP="asmdba", MODE="0660"


 

      启动udev

        # start_udev  

        Starting udev: [  OK  ]  

 

        [root@dbserver rules.d]# ls -ltr /dev/asm*
        brw-rw---- 1 grid asmdba 8, 32 1月   2 13:35 /dev/asm-diskc

 

        大家看 asm-disk*这个设备,都是块类型的。

      这样我就明白以后安装什么版本用什么绑定方式了。

 


作者: 郑全    时间: 2015-1-2 13:44

后面这个99-oracle-asmdevices.rules规则文件,是否可以取其他名字,答案是肯定的,可以取任何名字,start_udev去查找时,是按 词法顺序查找的,如果都有相同的设备,最后一个文件为准:

 

 


作者: 郑全    时间: 2015-1-2 13:48

测试过,在 Red Hat Enterprise Linux Server release 6.6,两者都可用

Red Hat Enterprise Linux Server release 6.5,只有后者可用 。

Red Hat Enterprise Linux Server release 6.4及以前的版本,两者都可用


作者: 郑全    时间: 2015-1-2 13:52
快速生成块规则文件的脚本,在6和6之前的版本有一点区别:



RHEL5
for i in b c d e f ;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/sbin/scsi_id -g -u -s /dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done


RHEL6
for i in b c d e f g ;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done

作者: 郑全    时间: 2015-1-2 13:55
关于uuid,如果是在虚拟机上操作,需要修改 vmx配置文件,加上以下一行:



disk.EnableUUID="TRUE"



然后,重启 虚拟机 。



作者: 郑全    时间: 2015-1-2 14:10
要想继续使用 asmlib,也可以 :



http://bbs.cqsztech.com/dispbbs. ... p;page=1&star=1

作者: 郑全    时间: 2015-1-2 23:45

oel7 ,scsi_id位置在 /lib/udev/scsi_id


作者: LuckyYang    时间: 2015-6-22 20:39
感谢郑老师!




欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2