废话就不多说了,开始。。。
早上为另外一个公司的一个产生库理处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”