SUSE Linux 10 配置裸设备(raw devices)

SUSE Linux 10

裸设备,是没有经过格式化的分区或磁盘,也叫裸分区(原始分区),不被Unix通过文件系统来读取的特殊字符设备。它由应用程序负责对
它进行读写操作。不经过文件系统的缓冲,是不被操作系统直接管理的设备。由于跨过操作系统管理,使得I/O效率更高。在基于SUSE Linux
10上安装Oracle 10g RAC的话,由于Oracle 10g 不支持将ocr与votingdisk 存放在ASM 磁盘中,因此,依然需要为其使用裸设备方式。SUSE
Linux裸设备的配置与其他的Linux稍有差异,下面将具体描述。

[python] view plain copy
  1. 1、先对磁盘进行分区,sdd如下面的方法炮制  

  2. #下面的示例中使用sdc和sdd来用作裸设备,一块用于ocr,一块用于votingdisk

  3. bo2dbp:~ # fdisk /dev/sdc

  4. Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel  

  5. Building a new DOS disklabel. Changes will remain in memory only,  

  6. until you decide to write them. After that, of course, the previous  

  7. content won't be recoverable.  

  8. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)  

  9. Command (m for help): n  

  10. Command action  

  11.   e   extended  

  12.   p   primary partition (1-4)  

  13. p  

  14. Partition number (1-4):  

  15. Value out of range.  

  16. Partition number (1-4):  

  17. Value out of range.  

  18. Partition number (1-4): 1

  19. First cylinder (1-200, default 1):  

  20. Using default value 1

  21. Last cylinder or +size or +sizeM or +sizeK (1-200, default 200):  

  22. Using default value 200

  23. Command (m for help): w  

  24. The partition table has been altered!  

  25. Calling ioctl() to re-read partition table.  

  26. Syncing disks.  

  27. 2、分区后的结果  

  28. bo2dbp:~ # fdisk -l /dev/sdc

  29. Disk /dev/sdc: 209 MB, 209715200 bytes  

  30. 64 heads, 32 sectors/track, 200 cylinders  

  31. Units = cylinders of 2048 * 512 = 1048576 bytes  

  32.   Device Boot      Start         End      Blocks   Id  System  

  33. /dev/sdc1               120020478483  Linux  

  34. bo2dbp:~ # fdisk -l /dev/sdd

  35. Disk /dev/sdd: 209 MB, 209715200 bytes  

  36. 64 heads, 32 sectors/track, 200 cylinders  

  37. Units = cylinders of 2048 * 512 = 1048576 bytes  

  38.   Device Boot      Start         End      Blocks   Id  System  

  39. /dev/sdd1               120020478483  Linux  

  40. 3、配置裸设备  

  41. bo2dbp:~ # vi /etc/raw

  42. # /etc/raw

  43. #

  44. # sample configuration to bind raw devices

  45. # to block devices

  46. #

  47. # The format of this file is:

  48. # raw<N>:<blockdev>

  49. #

  50. # example:

  51. # ---------

  52. # raw1:hdb1

  53. #

  54. # this means: bind /dev/raw/raw1 to /dev/hdb1

  55. #

  56. # ...

  57. #Add new raw devices

  58. raw1:sdc1  

  59. raw2:sdd1  

  60. 4、启动裸设备  

  61. bo2dbp:~ # rcraw start

  62. bind /dev/raw/raw1 to /dev/sdc1...                                    done  

  63. bind /dev/raw/raw2 to /dev/sdd1...                                    done  

  64. 5、配置裸设备随系统启动  

  65. bo2dbp:~ # chkconfig raw

  66. raw  on  

  67. #修改裸设备的权限与所有者,尽管该操作会修改,但重启之后将失效。永久修改见第7点

  68. bo2dbp:~ # chown oracle:dba /dev/raw/raw[1-2]

  69. bo2dbp:~ # chmod 660 /dev/raw/raw[1-2]

  70. 6、测试裸设备  

  71. bo2dbp:~ # dd if=/dev/zero of=/dev/raw/raw1 bs=1024k count=200

  72. dd: writing `/dev/raw/raw1': No space left on device  

  73. 200+0 records in

  74. 199+0 records out  

  75. 209698816 bytes (210 MB) copied, 2.59567 seconds, 80.8 MB/s  

  76. 7、修改裸设备启动后权限及所有者  

  77. #使用root用户修改/etc/udev/rules.d/50-udev-default.rules,确保raw设备的权限GROUP="dba", MODE="660", OWNER="oracle"

  78. #将其中包含KENREL=="raw"的记录修改为如下

  79. KERNEL=="raw[0-9]*", SUBSYSTEM=="raw", NAME="raw/%k", GROUP="dba", MODE="640", OWNER="oracle"

  80. 8、确认配置成功  

  81. #重启之后的状态     #Author :Robinson Cheng  Blog:http://blog.csdn.net/robinson_0612

  82. bo2dbp:~ # ls -hltr /dev/raw

  83. total 0

  84. crw-rw---- 1 root   disk 162, 0 Sep 1910:22 rawctl  

  85. crw-rw---- 1 oracle dba  162, 1 Sep 1910:22 raw1  

  86. crw-rw---- 1 oracle dba  162, 2 Sep 1910:22 raw2  

  87. bo2dbs:~ # /usr/sbin/raw -qa

  88. /dev/raw/raw1:  bound to major 8, minor 33

  89. /dev/raw/raw2:  bound to major 8, minor 49

更多参考
Linux/Unix shell sql 之间传递变量
Linux/Unix shell 脚本中调用SQL,RMAN脚本

配置裸设备(raw devices)

你可能感兴趣的:(linux,SuSE,10,配置裸设备(raw,devices))