zoukankan      html  css  js  c++  java
  • 重启、无效Oracle使用raw via lvmby小雨

    废话就不多说了,开始。。。

        早上为另外一个公司的一个产生库理处raw应用的问题,现场员人说要把新的lvm的空间给oracle应用,经已化好lv了,也定绑了映射,但是始终看不到raw;查检了下相干定绑则规参数,而且经已有在应用的则规定绑,他只是copy了新的则规并稍作修改,但是就是不效生。以下是测试过程。

    [root@o564gtser1 ~]# fdisk -l Disk /dev/sdd
    
    Disk /dev/sdd: 524 MB, 524288000 bytes
    255 heads, 63 sectors/track, 63 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
    Disk /dev/sdd doesn't contain a valid partition table
    [root@o564gtser1 ~]# fdisk /dev/sdd
    Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
    Building a new DOS disklabel. Changes will remain in memory only,
    until you decide to write them. After that, of course, the previous
    content won't be recoverable.
    
    Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
    
    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 1
    First cylinder (1-63, default 1): 
    Using default value 1
    Last cylinder or +size or +sizeM or +sizeK (1-63, default 63): 
    Using default value 63
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    [root@o564gtser1 ~]# pvcreate /dev/sdd1
      Physical volume "/dev/sdd1" successfully created     
    [root@o564gtser1 ~]# pvs
      PV         VG   Fmt  Attr PSize   PFree  
      /dev/sdd1       lvm2 a-   494.16M 494.16M
    [root@o564gtser1 ~]# pvdisplay 
      "/dev/sdd1" is a new physical volume of "494.16 MB"
      --- NEW Physical volume ---
      PV Name               /dev/sdd1
      VG Name               
      PV Size               494.16 MB
      Allocatable           NO
      PE Size (KByte)       0
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               bgfuhw-eOve-5n87-gKoV-ApCh-GDuv-0WKzJ3
       
    [root@o564gtser1 ~]# vgcreate oravg /dev/sdd1
      Volume group "oravg" successfully created
    [root@o564gtser1 ~]# vgs
      VG    #PV #LV #SN Attr   VSize   VFree  
      oravg   1   0   0 wz--n- 492.00M 492.00M
    [root@o564gtser1 ~]# vgdisplay 
      --- Volume group ---
      VG Name               oravg
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               492.00 MB
      PE Size               4.00 MB
      Total PE              123
      Alloc PE / Size       0 / 0   
      Free  PE / Size       123 / 492.00 MB
      VG UUID               6KYQkB-3W81-fMAa-vBJ0-9UXk-jaRd-XRMOUQ
       
    [root@o564gtser1 ~]# vgs oravg
      VG    #PV #LV #SN Attr   VSize   VFree  
      oravg   1   0   0 wz--n- 492.00M 492.00M
    [root@o564gtser1 ~]# vgdisplay oravg
      --- Volume group ---
      VG Name               oravg
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               492.00 MB
      PE Size               4.00 MB
      Total PE              123
      Alloc PE / Size       0 / 0   
      Free  PE / Size       123 / 492.00 MB
      VG UUID               6KYQkB-3W81-fMAa-vBJ0-9UXk-jaRd-XRMOUQ
       
    [root@o564gtser1 ~]# pvs
      PV         VG    Fmt  Attr PSize   PFree  
      /dev/sdd1  oravg lvm2 a-   492.00M 492.00M
    [root@o564gtser1 ~]# lvcreate -L200MB -n oralv1 oravg
      Logical volume "oralv1" created
    [root@o564gtser1 ~]# lvcreate -L200MB -n oralv2 oravg
      Logical volume "oralv2" created
    [root@o564gtser1 ~]# vgdisplay -v
        Finding all volume groups
        Finding volume group "oravg"
      --- Volume group ---
      VG Name               oravg
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  3
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                2
      Open LV               0
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               492.00 MB
      PE Size               4.00 MB
      Total PE              123
      Alloc PE / Size       100 / 400.00 MB
      Free  PE / Size       23 / 92.00 MB
      VG UUID               6KYQkB-3W81-fMAa-vBJ0-9UXk-jaRd-XRMOUQ
       
      --- Logical volume ---
      LV Name                /dev/oravg/oralv1
      VG Name                oravg
      LV UUID                p5LNXk-X32Y-hAV7-sZQZ-7SId-OOPp-7QCpFK
      LV Write Access        read/write
      LV Status              available
      # open                 0
      LV Size                200.00 MB
      Current LE             50
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:0
       
      --- Logical volume ---
      LV Name                /dev/oravg/oralv2
      VG Name                oravg
      LV UUID                7gFlM5-miH2-ARpg-1LTc-FQb5-zQX6-Hk0d5u
      LV Write Access        read/write
      LV Status              available
      # open                 0
      LV Size                200.00 MB
      Current LE             50
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:1
       
      --- Physical volumes ---
      PV Name               /dev/sdd1     
      PV UUID               bgfuhw-eOve-5n87-gKoV-ApCh-GDuv-0WKzJ3
      PV Status             allocatable
      Total PE / Free PE    123 / 23
    
    [root@o564gtser1 ~]#  ls -lL /dev/oravg/oralv*
    brw-rw---- 1 root disk 253, 0 04-18 12:27 /dev/oravg/oralv1
    brw-rw---- 1 root disk 253, 1 04-18 12:27 /dev/oravg/oralv2
    [root@o564gtser1 ~]# ls /dev/mapper/* -l
    crw------- 1 root root  10, 62 04-18 12:20 /dev/mapper/control
    brw-rw---- 1 root disk 253,  0 04-18 12:27 /dev/mapper/oravg-oralv1
    brw-rw---- 1 root disk 253,  1 04-18 12:27 /dev/mapper/oravg-oralv2 
    [root@o564gtser1 ~]# vi /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.
    "/etc/udev/rules.d/60-raw.rules" 11L, 472C written
    
    [root@o564gtser1 ~]# 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=="/dev/oravg/oralv1", RUN+="/bin/raw /dev/raw/raw3 %N"
    ACTION=="add", KERNEL=="/dev/oravg/oralv2", RUN+="/bin/raw /dev/raw/raw4 %N"
    KERNEL=="raw[3-4]", OWNER="oracle", GROUP="oinstall", MODE="640"
    [root@o564gtser1 ~]# start_udev
    启动 udev:                                                [肯定]
    [root@o564gtser1 ~]# raw -aq
    /dev/raw/raw1:  bound to major 8, minor 16
    /dev/raw/raw2:  bound to major 8, minor 32
    重启os,还是无效看不到raw3和raw4.
    [root@o564gtser1 ~]# 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=="/dev/oravg/oralv1", RUN+="/bin/raw /dev/raw/raw3 %N"
    ACTION=="add", KERNEL=="/dev/oravg/oralv2", RUN+="/bin/raw /dev/raw/raw4 %N"
    ACTION=="add", ENV{MAJOR}=="253", ENV{MINOR}=="0", RUN+="/bin/raw /dev/raw/raw3 %M %m"
    ACTION=="add", ENV{MAJOR}=="253", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw4 %M %m"
    KERNEL=="raw[3-4]", OWNER="oracle", GROUP="oinstall", MODE="640"
    重启os,还是无效看不到raw3和raw4.
    [root@o564gtser1 ~]# 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=="/dev/mapper/oravg-oralv1", RUN+="/bin/raw /dev/raw/raw3 %N"
    ACTION=="add", KERNEL=="/dev/mapper/oravg-oralv2", RUN+="/bin/raw /dev/raw/raw4 %N"
    #ACTION=="add", ENV{MAJOR}=="253", ENV{MINOR}=="0", RUN+="/bin/raw /dev/raw/raw3 %M %m"
    #ACTION=="add", ENV{MAJOR}=="253", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw4 %M %m"
    KERNEL=="raw[3-4]", OWNER="oracle", GROUP="oinstall", MODE="640"
    重启os,还是无效看不到raw3和raw4.
    应用手工测试了下发现是可以的:
    [root@o564gtser1 ~]# /bin/raw /dev/raw/raw3 /dev/mapper/oravg-oralv1 
    /dev/raw/raw3:  bound to major 253, minor 0
    [root@o564gtser1 ~]# /bin/raw /dev/raw/raw4 /dev/mapper/oravg-oralv2 
    /dev/raw/raw4:  bound to major 253, minor 1
    [root@o564gtser1 ~]# raw -qa      
    /dev/raw/raw1:  bound to major 8, minor 16
    /dev/raw/raw2:  bound to major 8, minor 32
    /dev/raw/raw3:  bound to major 253, minor 0
    /dev/raw/raw4:  bound to major 253, minor 1
    [root@o564gtser1 ~]# ll /dev/raw/*
    crw-r----- 1 oracle oinstall 162, 1 04-18 13:03 /dev/raw/raw1
    crw-r----- 1 oracle oinstall 162, 2 04-18 13:03 /dev/raw/raw2
    crw-r----- 1 oracle oinstall 162, 3 04-18 13:09 /dev/raw/raw3
    crw-r----- 1 oracle oinstall 162, 4 04-18 13:10 /dev/raw/raw4
    只好将上述两行令命写入/etc/rc.d/rc.local :
    #add by gtlions test for lvm used in oracle
    /bin/raw /dev/raw/raw3 /dev/mapper/oravg-oralv1
    /bin/raw /dev/raw/raw4 /dev/mapper/oravg-oralv2
    chown oracle:oinstall /dev/raw/raw3
    chown oracle:oinstall /dev/raw/raw4
    chmod 640 /dev/raw/raw3
    chmod 640 /dev/raw/raw4
    并除删/etc/udev/rules.d/60-raw.rules内的本来置设的内容便可。
    这样就能够在Oracle中应用了:
    [oracle@o564gtser1 ~]$ sqlplus "/as sysdba"
    
    SQL*Plus: Release 10.2.0.5.0 - Production on Thu Apr 18 13:25:48 2013
    
    Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.
    
    Connected to an idle instance.
    
    SQL> startup
    ORACLE instance started.
    
    Total System Global Area  281018368 bytes
    Fixed Size                  2095672 bytes
    Variable Size              96470472 bytes
    Database Buffers          176160768 bytes
    Redo Buffers                6291456 bytes
    Database mounted.
    Database opened.
    SQL> select file_name from dba_data_files;
    
    FILE_NAME
    --------------------------------------------------------------------------------
    +DATA01/gt10g/datafile/system.260.812537713
    +DATA01/gt10g/datafile/undotbs1.261.812537743
    +DATA01/gt10g/datafile/sysaux.262.812537763
    +DATA01/gt10g/datafile/users.264.812537785
    SQL> create tablespace test datafile '/dev/raw/raw3' size 190m autoextend off;
    
    Tablespace created.
    
    SQL> select file_name from dba_data_files;
    
    FILE_NAME
    --------------------------------------------------------------------------------
    +DATA01/gt10g/datafile/system.260.812537713
    +DATA01/gt10g/datafile/undotbs1.261.812537743
    +DATA01/gt10g/datafile/sysaux.262.812537763
    +DATA01/gt10g/datafile/users.264.812537785
    /dev/raw/raw3
    看来是要直接写入到/etc/rc.d/rc.local。

        

        -EOF-

    文章结束给大家分享下程序员的一些笑话语录: 警告
    有一个小伙子在一个办公大楼的门口抽着烟,一个妇女路过他身边,并对他 说, “你知道不知道这个东西会危害你的健康?我是说, 你有没有注意到香烟 盒上的那个警告(Warning)?”
    小伙子说,“没事儿,我是一个程序员”。
    那妇女说,“这又怎样?”
    程序员说,“我们从来不关心 Warning,只关心 Error”

  • 相关阅读:
    小程序 阻止区域冒泡
    全国地址 一级处理
    新项目
    JDK环境变量的配置1
    用DOS命令来运行Java代码
    Myeclipse详细使用教程
    ​'JAVAC' 不是内部或外部命令的解决方法
    怎么检测JDK环境变量是否配置正确
    JDK环境变量的配置
    JDK安装图解
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3028383.html
Copyright © 2011-2022 走看看