• Oracle Linux 配置 UDEV SCSI Rules 说明



    Oracle RAC中ASM 的配置可以有2种方式实现:raw和asmlib。 在实际的维护中,更推荐使用raw。

           使用raw又有两种方法:使用multipath和UDEV。在Redhat 平台下参考:

    Redhat 5.4 +ASM + RAW+ Oracle 10g RAC 安装文档

    http://blog.csdn.net/tianlesoftware/article/details/5872593

    Redhat 5.4Oracle 10g RAC Openfiler+Multipath + RAW+ ASM 安装文档

    http://blog.csdn.net/tianlesoftware/article/details/6048792

    对于ASMLIB,参考:

    RAW+ASM 的RAC 安装文档

    http://blog.csdn.net/tianlesoftware/article/details/5332909

    这篇看一下OracleLinux 系统下UDEV的配置。

    参考文档:

    http://www.oracle-base.com/articles/linux/UdevScsiRulesConfigurationInOracleLinux5and6.php

    http://www.oracle-base.com/articles/11g/OracleDB11gR2RACInstallationOnOracleLinux6UsingVirtualBox.php

    我这里的实验平台是OracleLinux 6.1+Virtual Box。

    OracleVirtual Box 安装使用 说明

    http://blog.csdn.net/tianlesoftware/article/details/6826389

    一.准备工作

    1.1   创建共享磁盘

    这里直接使用VirtualBox命令来创建。 创建之前需要先关闭虚拟机。

    1.1.1 创建共享目录sharedisk

    F:\VBox\sharedisk

    1.1.2 创建虚拟介质

    C:\Users\Administrator.DavidDai>cd F:\VBox\sharedisk

    C:\Users\Administrator.DavidDai>F:

    F:\VBox\sharedisk>VBoxManage createhd --filename asm01.vdi --size 5120 --format VDI --variant Fixed

    0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

    Disk image created. UUID:83552343-5254-4fe0-8f4d-949389a4d528

    F:\VBox\sharedisk>VBoxManage createhd --filename asm02.vdi --size 5120 --format VDI --variant Fixed

    0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

    Disk image created. UUID:b96d5ecb-168a-4eaf-851e-0f21961dae4e

    F:\VBox\sharedisk>VBoxManage createhd --filename asm03.vdi --size 5120 --format VDI --variant Fixed

    0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

    Disk image created. UUID:fd7bba6c-9530-433f-a7e0-24d470ba1fb9

    F:\VBox\sharedisk>VBoxManage createhd --filename asm04.vdi --size 5120 --format VDI --variant Fixed

    0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

    Disk image created. UUID:3239ed0d-bd0b-4124-a389-db21ecbb15db

    1.1.3 将虚拟介质匹配到虚拟机上

    F:\VBox\sharedisk>VBoxManage storageattach OraLinuxRAC1 --storagectl "SATA 控制器" --port 1 --device 0 --type hdd --medium asm01.vdi --mtype shareable

    F:\VBox\sharedisk>VBoxManage storageattach OraLinuxRAC1 --storagectl "SATA 控制器" --port 2 --device 0 --type hdd --medium asm02.vdi --mtype shareable

    F:\VBox\sharedisk>VBoxManage storageattach OraLinuxRAC1 --storagectl "SATA 控制器" --port 3 --device 0 --type hdd --medium asm03.vdi --mtype shareable

    F:\VBox\sharedisk>VBoxManage storageattach OraLinuxRAC1 --storagectl "SATA 控制器" --port 4 --device 0 --type hdd --medium asm04.vdi --mtype shareable

    几点注意的地方:

    (1)    控制器名称

    我这里写的是:"SATA控制器",因为我的虚拟机是中文显示的,如下图:

     


    如果是英语的,这里名称就要写成:"SATA Controller",如:

    F:\VBox\sharedisk>VBoxManagestorageattach OraLinuxRAC1 --storagectl "SATA Controller" --port 1--device 0 --type hdd --medium asm04.vdi --mtype shareable

    (2)storageattach 对应的是VM中显示的虚拟机的名称,我这里OraLinuxRAC1.

    (3)如果要将磁盘加到其他的节点上,只需要更改这里的虚拟机名称即可。如:

    F:\VBox\sharedisk>VBoxManage storageattach OraLinuxRAC2 --storagectl "SATA 控制器" --port 4 --device 0 --typehdd --medium asm04.vdi --mtype shareable

    1.1.4  配置虚拟介质共享,这个在VBOX界面也可以操作,这里使用命令

    此信息将被记入到每个虚拟磁盘文件的文件头中,故其他其他再使用的时候就无需再设置成共享了。

    F:\VBox\sharedisk>VBoxManage modifyhd asm01.vdi --type shareable

    F:\VBox\sharedisk>VBoxManage modifyhd asm02.vdi --type shareable

    F:\VBox\sharedisk>VBoxManage modifyhd asm03.vdi --type shareable

    F:\VBox\sharedisk>VBoxManage modifyhd asm04.vdi --type shareable

    1.2 格式化共享介质

    启动虚拟机,进行格式化操作

    [root@rac1 ~]# cd /dev

    [root@rac1 dev]# ls sd*

    sda sda1  sda2  sda3 sdb  sdc  sdd sde

    --这里的sdb,sdc,sdd,sde就是我们添加的虚拟介质。

    [root@rac1 dev]# fdisk -l

    Disk /dev/sda: 16.1 GB, 16106127360 bytes

    255 heads, 63 sectors/track, 1958 cylinders

    Units = cylinders of 16065 * 512 = 8225280bytes

    Sector size (logical/physical): 512 bytes /512 bytes

    I/O size (minimum/optimal): 512 bytes / 512bytes

    Disk identifier: 0x0008dd19

      Device Boot      Start         End      Blocks  Id  System

    /dev/sda1  *           1          26      204800  83  Linux

    Partition 1 does not end on cylinderboundary.

    /dev/sda2              26         154    1024000   82  Linux swap / Solaris

    Partition 2 does not end on cylinderboundary.

    /dev/sda3             154        1959   14498816   83  Linux

    Disk /dev/sdb: 5368 MB, 5368709120 bytes

    255 heads, 63 sectors/track, 652 cylinders

    Units = cylinders of 16065 * 512 = 8225280bytes

    Sector size (logical/physical): 512 bytes /512 bytes

    I/O size (minimum/optimal): 512 bytes / 512bytes

    Disk identifier: 0x00000000

    Disk /dev/sdb doesn't contain a validpartition table

    Disk /dev/sdc: 5368 MB, 5368709120 bytes

    255 heads, 63 sectors/track, 652 cylinders

    Units = cylinders of 16065 * 512 = 8225280bytes

    Sector size (logical/physical): 512 bytes /512 bytes

    I/O size (minimum/optimal): 512 bytes / 512bytes

    Disk identifier: 0x00000000

    Disk /dev/sdc doesn't contain a validpartition table

    Disk /dev/sdd: 5368 MB, 5368709120 bytes

    255 heads, 63 sectors/track, 652 cylinders

    Units = cylinders of 16065 * 512 = 8225280bytes

    Sector size (logical/physical): 512 bytes /512 bytes

    I/O size (minimum/optimal): 512 bytes / 512bytes

    Disk identifier: 0x00000000

    Disk /dev/sdd doesn't contain a validpartition table

    Disk /dev/sde: 5368 MB, 5368709120 bytes

    255 heads, 63 sectors/track, 652 cylinders

    Units = cylinders of 16065 * 512 = 8225280bytes

    Sector size (logical/physical): 512 bytes /512 bytes

    I/O size (minimum/optimal): 512 bytes / 512bytes

    Disk identifier: 0x00000000

    Disk /dev/sde doesn't contain a validpartition table

    [root@rac1 dev]#

    开始格式化介质:

    [root@rac1 dev]# fdisk /dev/sdb

    Device contains neither a valid DOSpartition table, nor Sun, SGI or OSF disklabel

    Building a new DOS disklabel with diskidentifier 0xbe1b86b0.

    Changes will remain in memory only, untilyou decide to write them.

    After that, of course, the previous contentwon't be recoverable.

    Warning: invalid flag 0x0000 of partitiontable 4 will be corrected by w(rite)

    WARNING: DOS-compatible mode is deprecated.It's strongly recommended to

            switch off the mode (command 'c') and change display units to

            sectors (command 'u').

    Command (m for help): n

    Command action

      e   extended

      p   primary partition (1-4)

    p

    Partition number (1-4): 1

    First cylinder (1-652, default 1):

    Using default value 1

    Last cylinder, +cylinders or +size{K,M,G}(1-652, default 652):

    Using default value 652

    Command (m for help): w

    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    Syncing disks.

    [root@rac1 dev]#

    重复以上操作,格式化剩下的3个介质。

    验证:

    [root@rac1 dev]# ls sd*

    sda sda1  sda2  sda3 sdb  sdb1  sdc sdc1  sdd  sdd1 sde  sde1

    [root@rac1 dev]# fdisk -l

    Disk /dev/sda: 16.1 GB, 16106127360 bytes

    255 heads, 63 sectors/track, 1958 cylinders

    Units = cylinders of 16065 * 512 = 8225280bytes

    Sector size (logical/physical): 512 bytes /512 bytes

    I/O size (minimum/optimal): 512 bytes / 512bytes

    Disk identifier: 0x0008dd19

      Device Boot      Start         End      Blocks  Id  System

    /dev/sda1  *           1          26      204800  83  Linux

    Partition 1 does not end on cylinderboundary.

    /dev/sda2              26         154    1024000   82  Linux swap / Solaris

    Partition 2 does not end on cylinderboundary.

    /dev/sda3             154        1959   14498816   83  Linux

    Disk /dev/sdb: 5368 MB, 5368709120 bytes

    255 heads, 63 sectors/track, 652 cylinders

    Units = cylinders of 16065 * 512 = 8225280bytes

    Sector size (logical/physical): 512 bytes /512 bytes

    I/O size (minimum/optimal): 512 bytes / 512bytes

    Disk identifier: 0xbe1b86b0

      Device Boot      Start         End      Blocks  Id  System

    /dev/sdb1               1         652    5237158+  83  Linux

    Disk /dev/sdc: 5368 MB, 5368709120 bytes

    255 heads, 63 sectors/track, 652 cylinders

    Units = cylinders of 16065 * 512 = 8225280bytes

    Sector size (logical/physical): 512 bytes /512 bytes

    I/O size (minimum/optimal): 512 bytes / 512bytes

    Disk identifier: 0x52c60017

      Device Boot      Start         End      Blocks  Id  System

    /dev/sdc1               1         652    5237158+  83  Linux

    Disk /dev/sdd: 5368 MB, 5368709120 bytes

    255 heads, 63 sectors/track, 652 cylinders

    Units = cylinders of 16065 * 512 = 8225280bytes

    Sector size (logical/physical): 512 bytes /512 bytes

    I/O size (minimum/optimal): 512 bytes / 512bytes

    Disk identifier: 0xb3564300

      Device Boot      Start         End      Blocks  Id  System

    /dev/sdd1               1         652    5237158+  83  Linux

    Disk /dev/sde: 5368 MB, 5368709120 bytes

    255 heads, 63 sectors/track, 652 cylinders

    Units = cylinders of 16065 * 512 = 8225280bytes

    Sector size (logical/physical): 512 bytes /512 bytes

    I/O size (minimum/optimal): 512 bytes / 512bytes

    Disk identifier: 0x688384a0

      Device Boot      Start         End      Blocks  Id  System

    /dev/sde1               1         652    5237158+  83  Linux

    You have new mail in /var/spool/mail/root

    [root@rac1 dev]#

    二. 配置UDEV

    2.1 确定SCSI ID

    Oracle Linux 5下,可以使用如下命令:

    # /sbin/scsi_id -g -u -s /block/sdb/sdb1

    SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_

    # /sbin/scsi_id -g -u -s /block/sdc/sdc1

    SATA_VBOX_HARDDISK_VB46dec7e0-192e8000_

    # /sbin/scsi_id -g -u -s /block/sdd/sdd1

    SATA_VBOX_HARDDISK_VBce8c63bb-ac67a172_

    # /sbin/scsi_id -g -u -s /block/sde/sde1

    SATA_VBOX_HARDDISK_VB7437a3b7-95b199cd_

    #

    这里的-s 选项,在Oracle Linux 6 中已经不可用了,我这里的环境也是OracleLinux 6的,所以使用命令如下:

     

    [root@rac1 dev]# /sbin/scsi_id -g -u /dev/sdb1

    1ATA_VBOX_HARDDISK_VB83552343-28d5a489

    [root@rac1 dev]# /sbin/scsi_id -g -u /dev/sdc1

    1ATA_VBOX_HARDDISK_VBb96d5ecb-4eae1d96

    [root@rac1 dev]# /sbin/scsi_id -g -u /dev/sdd1

    1ATA_VBOX_HARDDISK_VBfd7bba6c-b91fba70

    [root@rac1 dev]# /sbin/scsi_id -g -u /dev/sde1

    1ATA_VBOX_HARDDISK_VB3239ed0d-db15bbec

    2.2 创建并配置UDEVRules 文件

    [root@rac1 rules.d]# touch /etc/udev/rules.d/99-oracle-asmdevices.rules

    添加如下内容:

    KERNEL=="sd?1",BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u /dev/$name",RESULT=="1ATA_VBOX_HARDDISK_VB83552343-28d5a489",NAME="asm-disk1", OWNER="oracle", GROUP="dba",MODE="0660"

    KERNEL=="sd?1",BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBb96d5ecb-4eae1d96",NAME="asm-disk2", OWNER="oracle", GROUP="dba",MODE="0660"

    KERNEL=="sd?1",BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u /dev/$name",RESULT=="1ATA_VBOX_HARDDISK_VBfd7bba6c-b91fba70",NAME="asm-disk3", OWNER="oracle", GROUP="dba",MODE="0660"

    KERNEL=="sd?1",BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u /dev/$name",RESULT=="1ATA_VBOX_HARDDISK_VB3239ed0d-db15bbec",NAME="asm-disk4", OWNER="oracle", GROUP="dba",MODE="0660"

    2.3 Load updated block device partition tables.

     

    # /sbin/partprobe /dev/sdb1

    # /sbin/partprobe /dev/sdc1

    # /sbin/partprobe /dev/sdd1

    # /sbin/partprobe /dev/sde1

    2.4 重启UDEV

    [root@rac1 dev]# start_udev

    Starting udev:                                            [  OK  ]

    2.5 检查共享设备的所属关系和权限

    [root@rac1 rules.d]# cd /dev

    [root@rac1 dev]# ls -al asm-disk*

    brw-rw----. 1 oracle dba 8, 17 Apr  6 18:04 asm-disk1

    brw-rw----. 1 oracle dba 8, 33 Apr  6 18:04 asm-disk2

    brw-rw----. 1 oracle dba 8, 49 Apr  6 18:04 asm-disk3

    brw-rw----. 1 oracle dba 8, 65 Apr  6 18:04 asm-disk4

    至此配置结束,在ASM的配置中,ASM_DISKSTRING参数指向'/dev/asm-disk*'就可以了。

    -------------------------------------------------------------------------------------------------------

    版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

    Skype: tianlesoftware

    Email:   tianlesoftware@gmail.com

    Blog:     http://www.tianlesoftware.com

    Weibo: http://weibo.com/tianlesoftware

    Twitter: http://twitter.com/tianlesoftware

    Facebook: http://www.facebook.com/tianlesoftware

    Linkedin: http://cn.linkedin.com/in/tianlesoftware

    -------加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请----

    DBA1 群:62697716(满);   DBA2 群:62697977(满)  DBA3 群:62697850(满)  

    DBA 超级群:63306533(满);  DBA4 群:83829929   DBA5群: 142216823

    DBA6 群:158654907    DBA7 群:172855474   DBA总群:104207940

  • 相关阅读:
    服务器电源管理(Power Management States)
    MSSQLSERVER数据库- 杂记
    MSSQLSERVER数据库- 判断全局临时表是否存在
    MSSQLSERVER数据库- 获取月份的第一天和最后一天
    JQuery- 解析JSON数据
    恼人的Visual Studio 2010崩溃重启问题
    MSSQLSERVER数据库- 游标
    Js/Jquery- Base64和UrlEncode编码解码
    MSSQLSERVER数据库- 解决不允许保存更改表结构
    Java- Jdbc学习
  • 原文地址:https://www.cnblogs.com/tianlesoftware/p/3609304.html
Copyright © 2020-2023  润新知