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

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

[python] view plain copy print ?
  1. 1、先对磁盘进行分区,sdd如下面的方法炮制
  2. #下面的示例中使用sdc和sdd来用作裸设备,一块用于ocr,一块用于votingdisk
  3. bo2dbp:~#fdisk/dev/sdc
  4. DevicecontainsneitheravalidDOSpartitiontable,norSun,SGIorOSFdisklabel
  5. BuildinganewDOSdisklabel.Changeswillremaininmemoryonly,
  6. untilyoudecidetowritethem.Afterthat,ofcourse,theprevious
  7. contentwon'tberecoverable.
  8. Warning:invalidflag0x0000ofpartitiontable4willbecorrectedbyw(rite)
  9. Command(mforhelp):n
  10. Commandaction
  11. eextended
  12. pprimarypartition(1-4)
  13. p
  14. Partitionnumber(1-4):
  15. Valueoutofrange.
  16. Partitionnumber(1-4):
  17. Valueoutofrange.
  18. Partitionnumber(1-4):1
  19. Firstcylinder(1-200,default1):
  20. Usingdefaultvalue1
  21. Lastcylinderor+sizeor+sizeMor+sizeK(1-200,default200):
  22. Usingdefaultvalue200
  23. Command(mforhelp):w
  24. Thepartitiontablehasbeenaltered!
  25. Callingioctl()tore-readpartitiontable.
  26. Syncingdisks.
  27. 2、分区后的结果
  28. bo2dbp:~#fdisk-l/dev/sdc
  29. Disk/dev/sdc:209MB,209715200bytes
  30. 64heads,32sectors/track,200cylinders
  31. Units=cylindersof2048*512=1048576bytes
  32. DeviceBootStartEndBlocksIdSystem
  33. /dev/sdc1120020478483Linux
  34. bo2dbp:~#fdisk-l/dev/sdd
  35. Disk/dev/sdd:209MB,209715200bytes
  36. 64heads,32sectors/track,200cylinders
  37. Units=cylindersof2048*512=1048576bytes
  38. DeviceBootStartEndBlocksIdSystem
  39. /dev/sdd1120020478483Linux
  40. 3、配置裸设备
  41. bo2dbp:~#vi/etc/raw
  42. #/etc/raw
  43. #
  44. #sampleconfigurationtobindrawdevices
  45. #toblockdevices
  46. #
  47. #Theformatofthisfileis:
  48. #raw<N>:<blockdev>
  49. #
  50. #example:
  51. #---------
  52. #raw1:hdb1
  53. #
  54. #thismeans:bind/dev/raw/raw1to/dev/hdb1
  55. #
  56. #...
  57. #Addnewrawdevices
  58. raw1:sdc1
  59. raw2:sdd1
  60. 4、启动裸设备
  61. bo2dbp:~#rcrawstart
  62. bind/dev/raw/raw1to/dev/sdc1...done
  63. bind/dev/raw/raw2to/dev/sdd1...done
  64. 5、配置裸设备随系统启动
  65. bo2dbp:~#chkconfigraw
  66. rawon
  67. #修改裸设备的权限与所有者,尽管该操作会修改,但重启之后将失效。永久修改见第7点
  68. bo2dbp:~#chownoracle:dba/dev/raw/raw[1-2]
  69. bo2dbp:~#chmod660/dev/raw/raw[1-2]
  70. 6、测试裸设备
  71. bo2dbp:~#ddif=/dev/zeroof=/dev/raw/raw1bs=1024kcount=200
  72. dd:writing`/dev/raw/raw1':Nospaceleftondevice
  73. 200+0recordsin
  74. 199+0recordsout
  75. 209698816bytes(210MB)copied,2.59567seconds,80.8MB/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:RobinsonChengBlog:http://blog.csdn.net/robinson_0612
  82. bo2dbp:~#ls-hltr/dev/raw
  83. total0
  84. crw-rw----1rootdisk162,0Sep1910:22rawctl
  85. crw-rw----1oracledba162,1Sep1910:22raw1
  86. crw-rw----1oracledba162,2Sep1910:22raw2
  87. bo2dbs:~#/usr/sbin/raw-qa
  88. /dev/raw/raw1:boundtomajor8,minor33
  89. /dev/raw/raw2:boundtomajor8,minor49

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

你可能感兴趣的:(device)