在Redhat 5.4 上安装oracle 10g的RAC。 在安装Clusterware 的时候,出现错误:
Raw 设备的大小肯定是没有问题,因为我分配的raw 是200M一个,但是它只识别了16M。 配置文件就那么几步,看了几遍都没有发现问题。 google 百度也没有什么有价值的信息。
磁盘分区大小:
[root@rac1 raw]# fdisk -l
Disk /dev/sdb: 419 MB, 419430400 bytes
64 heads, 32 sectors/track, 400 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 199 203760 83 Linux
/dev/sdb2 200 400 205824 83 Linux
Disk /dev/sdc: 629 MB, 629145600 bytes
64 heads, 32 sectors/track, 600 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 201 205808 83 Linux
/dev/sdc2 202 402 205824 83 Linux
/dev/sdc3 403 600 202752 83 Linux
裸设备信息:
[root@rac1 raw]# ls -lrt /dev/raw/raw*
crw-rw---- 1 oracle oinstall 162, 3 Sep 8 05:14 /dev/raw/raw3
crw-rw---- 1 oracle oinstall 162, 2 Sep 8 05:14 /dev/raw/raw2
crw-rw---- 1 oracle oinstall 162, 5 Sep 8 05:14 /dev/raw/raw5
crw-rw---- 1 oracle oinstall 162, 4 Sep 8 05:14 /dev/raw/raw4
crw-rw---- 1 oracle oinstall 162, 1 Sep 8 05:14 /dev/raw/raw1
报这种错,肯定出在raw的配置上,后来在看 /etc/udev/rules.d/60-raw.rules 配置的时候发现和 提示中的有点出入,尝试的修改了一下成如下格式:
[root@rac2 /]# more /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=="sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2",RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdc1",RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sdc2",RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="sdc3",RUN+="/bin/raw /dev/raw/raw5 %N"
ACTION=="add", KERNEL=="raw[1-5]", OWNER="oracle", GROUP="oinstall", MODE="660"
再次尝试安装clusterware,居然没有报错了,悲壮啊。
在这贴一下原来的信息(这种配置是错误的):
ACTION=="add", KERNEL=="/dev/sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="/dev/sdb2",RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="/dev/sdc1",RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="/dev/sdc2",RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="/dev/sdc3",RUN+="/bin/raw /dev/raw/raw5 %N"
ACTION=="add", KERNEL=="raw[1-5]", OWNER="oracle", GROUP="oinstall", MODE="660"
这两段的不同在于KERNEL 参数上,之前我写成/dev/sdb1 这种格式,这种会报开始时的错误,正确的写法是直接写sdb1就可以了。 这个东西搞了半天的时间,太杯具了。 不过问题解决了,也吸取教训了。
------------------------------------------------------------------------------