RedHat Linux 下RAW的应用
裸设备,也叫裸分区(原始分区),是一种没有经过格式化,上被unix通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写操作。上经过文件系统的缓冲。
因为使用裸设备避免了再经过unix操作系统这一层,数据直接从disk到oracle进行传输,所以使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。当然,这是以磁盘的 i/o 非常大,磁盘i/o已经称为系统瓶颈的情况下才成立。如果磁盘读写确实非常频繁,以至于磁盘读写成为系统瓶颈的情况成立,那么采用裸设备确实可以大大提高性能
RedHat EL4 绑定裸设备
两种方式:
1)命令绑定
raw /dev/raw/raw[n] /dev/xxx
其中n的范围是0-8191。raw目录上存在可以创建。
执行这个命令,就会在/dev/raw下生成一个对应的raw[n]文件
用命令方式绑定裸设备在系统重启后会失效。
2)修改raw配置文件
修改/etc/sysconfig/rawdevices文件如下,以开机时自动加载裸设备,如:
/dev/raw/raw1 /dev/sdb1
这种方式是通过启动朊务的方式来绑定裸设备。
也可以把这个命令写在/etc/rc.local上,使每次启动都执行这些命令。
3)改变裸设备属主
两种方法:
把命令卸载/etc/rc.local上:
chown oracle:oinstall /dev/raw/raw1
修改/etc/udev/permissions.d/50-udev.permissions文件 :
从
raw/*:root:disk:0660
修改为
raw/*:oracle:oinstall:0660
这个的意思是修改裸设备的默认属主为oracle:oinstall,默认的mode是0660。
RedHat EL5 绑定裸设备
Redhat 5 以上版本已经取消了对裸设备的支持,所以在安装 Oracle RAC 时所使用的的裸设备,需要通过 Udev 进行设置:
设置重新启动自动挂载裸设备
# vi /etc/udev/rules.d/60-raw.rules
添加以下部分的内容 -----两种方式均可
设备名称:
ACTION=="add", KERNEL="<device name>", RUN+="raw /dev/raw/rawX %N"
主/次号码:
ACTION=="add", ENV{MAJOR}="A", ENV{MINOR}="B", RUN+="raw /dev/raw/rawX %M %m"
用你需要绑定的设备吊称替换 <device name>(如:/dev/sda1)。"A" 和 "B" 是设备的主/次号码,X 是系统使用的 raw 设备号码。
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m"
注意确定raw命令在/bin目录下,有的linux是在/usr/bin目录下
设置自动挂载裸设备的用户属性:
#vi /etc/udev/rules.d/65-raw-permissions.rules
# Set permissions of raw bindings to Oracle Clusterware devices
KERNEL=="raw1", OWNER="root", GROUP="oinstall", MODE="660"
KERNEL=="raw2", OWNER="oracle", GROUP="oinstall", MODE="660"
KERNEL=="raw3", OWNER="oracle", GROUP="oinstall", MODE="660"
[root@node2 ~]# vi /etc/udev/rules.d/65-raw-permissions.rules
# Set permissions of raw bindings to Oracle Clusterware devices
KERNEL=="raw1", OWNER="oracle", GROUP="dba", MODE="660"
KERNEL=="raw2", OWNER="oracle", GROUP="dba", MODE="660"
注意:
使用裸设备作为oracle的数据文件必须注意以下几点:
1)一个裸设备只能放置一个数据文件
2)数据文件的大小上能超过裸设备的大小
如果是日志文件,则裸设备最大可用大小=裸设备对应分区大小 - 1 * 512 (保留一个redo lock)
如果是数据文件,则裸设备最大可用大小=裸设备对应分区大小 - 2 * db_block_size(保留两个block)
为了简单起见,对所有的文件设置称比裸设备小1M即可。
3)数据文件最好上要设置称自动扩展,如果设置称自动扩展,一定要把maxsize设置设置为比裸设备小
本文出自 “天涯客的blog” 博客,请务必保留此出处http://tiany.blog.51cto.com/513694/1389650