重庆思庄Oracle论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 64972|回复: 7

oracle 60-raw.rules和99-oracle-asmdevices.rules区别

[复制链接]
发表于 2015-1-2 13:39:33 | 显示全部楼层 |阅读模式

     我最近在看很多安装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:35 | 显示全部楼层

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

 

 

回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-2 13:48:57 | 显示全部楼层

测试过,在 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:43 | 显示全部楼层
快速生成块规则文件的脚本,在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:45 | 显示全部楼层
关于uuid,如果是在虚拟机上操作,需要修改 vmx配置文件,加上以下一行:



disk.EnableUUID="TRUE"



然后,重启 虚拟机 。


回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-2 14:10:21 | 显示全部楼层
要想继续使用 asmlib,也可以 :



http://bbs.cqsztech.com/dispbbs. ... p;page=1&star=1
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-2 23:45:35 | 显示全部楼层

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

回复 支持 反对

使用道具 举报

发表于 2015-6-22 20:39:17 | 显示全部楼层
感谢郑老师!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄IT论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2019-11-19 12:55 , Processed in 0.146050 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表