第四章. 确定共享磁盘设备
4.1 单机文件系统上安装RAC
文件系统如ext2,ext3等,可以在单机上模拟RAC。
假定我们划分/u01分区为ext3文件系统,首先,我们创建新的分区
#fdisk /dev/sda
假定化出的新分区是/dev/sda6,那我们格式化该分区,如果是As 2.1
#mkfs.ext2 -j /dev/sda6
其中的-j参数是以ext3格式化文件系统,如果是3.0系统,则直接可以调用mkfs.ext3命令。
#mkfs.ext3 /dev/sda6
然后我们创建一个挂装点
#mkdir /u01;chmod 777 /u01
授予用户权限
#chown oracle:dba /u01
可以用mount挂装上
#mount -t ext3 /dev/sda6 /u01
如果想在启动的时候自动挂装,修改/etc/fstab
/dev/sda6 /u01 ext3 defaults 1 1
那么我们用df就可以发现类似如下的信息
/dev/sda6 17820972 2860164 14055548 17% /u01
4.2 Ocfs文件系统上单机模拟与多节点共享安装
OCFS是Oracle cluster file system,适合单节点与多节点的RAC安装。在安装前,我们需要从
http://oss.oracle.com
下载最新的安装包,并注意安装包与当前核心是否匹配。如果是AS 2.1 enterprise核心下载的版本为。
ocfs-2.4.9-e-enterprise-1.0.10-1.i686.rpm
ocfs-support-1.0.10-1.i386.rpm
ocfs-tools-1.0.10-1.i386.rpm
所要求的核心版本为2.4.9-e.12或者以上
如果是AS3.0 smp核心下载的版本为
ocfs-2.4.21-EL-smp-1.0.10-1.i686.rpm
ocfs-support-1.0.10-1.i386.rpm
ocfs-tools-1.0.10-1.i386.rpm
我们可以用rpm来安装软件,如
#rpm -ivh ocfs*
可以用如下的命令查看安装是否成功
# rpm -qa | grep -i ocfs
检查服务是否安装成功
# chkconfig --list |grep ocfs
ocfs 0

ff 1

ff 2

n 3

n 4

n 5

n 6

ff
配置/etc/ocfs.conf文件,结果大致如下
# Ensure this file exists in /etc directory #
node_name = dbrac
ip_address = 10.0.29.162
ip_port = 7000
comm_voting = 1
然后运行ocfs_uid_gen -c获得gid,之后,文件变得如下所示
[root@dbrac root]# more /etc/ocfs.conf
node_name = dbrac
ip_address = 10.0.29.162
ip_port = 7000
comm_voting = 1
guid = 7F2311E5DABE42FBCD86000D56BAC410
如果换过网卡之后,需要重新运行ocfs_uid_gen -c获得gid
最后,加载ocfs启动Oracle Cluster Manager,这个命令在一个节点上,安装后只需要运行一次,在以后系统启动的时候,将由ocfs服务自动从/etc/fstab中加载。
su - root
# /sbin/load_ocfs
注意:所有以上步骤,需要在所有节点上进行,如果是单节点,就在一个节点上运行即可。以下的操作,在一个节点上进行即可。
为了利用ocfs文件系统,我们先划分两个分区来,一个用于CM的检查文件(quorum file),一个用于存放共享的数据库包括控制文件,数据文件,日志文件,归档文件,服务器配置文件(srvm configuration file)等。
# fdisk /dev/sdb
划分一个/dev/sdb1与/dev/sdb5
然后创建一个挂装点
mkdir /shared;chmod 777 /shared
mkdir /ocfs01;chmod 777 /ocfs01
现在,我们格式化该分区。
# mkfs.ocfs -b 128 -C -g 500 -u 500 -L ocfs01 -m /ocfs01 -p 0775 /dev/sdb5
其中的-g -u分别是组与用户编号
各个参数意义如下
-F强制格式化现有的ocfs分区
-b 块的大小(KB),必须是多个ORACLE块大小,Oracle建议128K
-L 卷的标签
-m 挂装点 (本文 "/ocfs01"

-u根路径的所有者的UID (本文是"oracle"

-g 根路径所有者组的GID (本文是 "dba"

-p 根路径的权限许可
现在,我们可以挂装该分区
#services ocfs start #如果已经启动,就不必了
#mount -t ocfs /dev/sdb1 /shared
#mount -t ocfs /dev/sdb5 /ocfs01
也可以在/etc/fstab中增加如下条目,在系统启动的时候,会自动加载
/dev/sda1 /shared ocfs _netdev 0 0
/dev/sda5 /cfs01 ocfs _netdev 0 0
我们用df就可以看到类似如下的信息
/dev/sdb1 1026144 24288 1001856 3% /shared
/dev/sdb5 34529760 1153120 33376640 4% /ocfs01
以上所有步骤做完,建议重新启动一次,让多个节点确认到共享设备。
4.3 Raw裸设备
首先需要划分一系列的分区,需要注意的是,每个设备不能多于15个分区,Linux总共不能超过255个裸设备。
裸设备一般用于共享磁盘系统。可以用如下的方法挂装
#su - root
raw /dev/raw/raw1 /dev/sda2 # Used for the Cluster Manager Quorum File
raw /dev/raw/raw2 /dev/sda3 # Used for the Shared Configuration file for srvctl
# /dev/sda4: Used for creating the Extended Partition which starts as /dev/sda5.
raw /dev/raw/raw3 /dev/sda5 # spfileorcl.ora
raw /dev/raw/raw4 /dev/sda6 # control01.ctl
raw /dev/raw/raw5 /dev/sda7 # control02.ctl
raw /dev/raw/raw6 /dev/sda8 # indx01.dbf
raw /dev/raw/raw7 /dev/sda9 # system01.dbf
raw /dev/raw/raw8 /dev/sda10 # temp01.dbf
raw /dev/raw/raw9 /dev/sda11 # tools01.dbf
raw /dev/raw/raw10 /dev/sda12 # undotbs01.dbf
raw /dev/raw/raw11 /dev/sda13 # undotbs02.dbf
raw /dev/raw/raw12 /dev/sda14 # undotbs03.dbf
raw /dev/raw/raw13 /dev/sda15 # users01.dbf
raw /dev/raw/raw14 /dev/sdb5 # redo01.log (Group# 1 Thread# 1)
raw /dev/raw/raw15 /dev/sdb6 # redo02.log (Group# 2 Thread# 1)
raw /dev/raw/raw16 /dev/sdb7 # redo03.log (Group# 3 Thread# 2)
raw /dev/raw/raw17 /dev/sdb8 # orcl_redo2_2.log (Group# 4 Thread# 2)
raw /dev/raw/raw18 /dev/sdb9 # orcl_redo3_1.log (Group# 5 Thread# 3)
raw /dev/raw/raw19 /dev/sdb10 # orcl_redo3_2.log (Group# 6 Thread# 3)
如果检查连接,用如下命令
su - root
raw -qa
或者
more /dev/raw/raw1类似的方法检查。
如果想在启动的时候,自动挂载,请把以上的命令写到/etc/rc.local中,或者编写/etc/sysconfig下的rawdevices文件,如
# more rawdevices
/dev/raw/raw1 /dev/sda2
/dev/raw/raw2 /dev/sda3
……
如果需要对裸设备授权,可以运行如下脚本,其中n表示裸设备分区数目
su - root
for i in `seq 1 n`
do
chmod 660 /dev/raw/raw$i
chown oracle.dba /dev/raw/raw$i
done
再用如下的方法建立软联结,那么就可以和文件系统一样使用裸设备了。
su - oracle
ln -s /dev/raw/raw1 /var/opt/oracle/oradata/orcl/CMQuorumFile
ln -s /dev/raw/raw2 /var/opt/oracle/oradata/orcl/SharedSrvctlConfigFile
ln -s /dev/raw/raw3 /var/opt/oracle/oradata/orcl/spfileorcl.ora
……
注意:以上操作除了分区外,需要在每个节点完成
4.4 其它,如nfs文件系统
注意启动nfs,nfslock服务
Mount该文件系统的方法如下
mount 10.0.29.152:/vol/vol1/fas250 /netapp nfs
rw,hard,nointr,tcp,noac,vers=3,timeo=600,rsize=32768,wsize=32768
也可以放到fstab中,与以上类似
其它的地方与ocfs类似,不再额外描述