> RedHat >

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设置设置为比裸设备小

(责任编辑:IT)