裸设备,也叫裸分区(原始分区),是一种没有经过格式化,上被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) |