第四章. 确定共享磁盘设备 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安装。在安装前,我们需要从
下载最新的安装包,并注意安装包与当前核心是否匹配。如果是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:off 1:off 2:on 3:on 4:on 5:on 6:off
配置/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类似,不再额外描述
第五章. 安装OCM(Oracle Cluster Manager) 5.1生成一个CM管理文件 如果是单节点文件系统,可以用如下命令模拟
su - oracle
$dd if=/dev/zero of=/u01/oracle/oradata/rac/RacQuorumDisk bs=1024 count=1024
如果是多节点ocfs或raw设备,可以同样用dd生成相应的文件,放到准备好的共享磁盘设备上,大小1M即可。
5.2 安装OCM管理软件 1、如果是9201 for linux,先安装9201 OCM,安装选项的最后一项,然后升级到9204
2、如果是9204 for linux,直接选中9204 OCM安装即可
3、如果在AS 3.0上安装,请在安装前进行如下操作
先链接gcc
su - root
mv /usr/bin/gcc /usr/bin/gcc323
ln -s /usr/bin/gcc296 /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++323 # if g++ doesn t exist, then gcc-c++ was not installed
ln -s /usr/bin/g++296 /usr/bin/g++
然后打补丁3006854,可以去下载补丁并参考补丁更多的信息
su - root
# unzip p3006854_9204_LINUX.zip
Archive: p3006854_9204_LINUX.zip
creating: 3006854/
inflating: 3006854/rhel3_pre_install.sh
inflating: 3006854/README.txt
# cd 3006854
# sh rhel3_pre_install.sh
Applying patch...
Patch successfully applied
如果在本地X Win拒绝图形界面,注意设置
$xhost +本机名或IP
在公共节点与私有节点输入机器名称,与/etc/hosts的内容一致,如果不添写也可以,这个可以再配置
在需要我们输入这个磁盘分区的时候, 我们输入我们生成的文件名称,如果不输入也可以再配置
/u01/oracle/oradata/rac/RacQuorumDisk
5.3配置OCM文件 1、cmcfg.ora配置文件 [oracle@appc2 admin]$ cp cmcfg.ora.tmp cmcfg.ora
查看配置文件的内容,可以发现有如下内容
[oracle@appc2 admin]$ more cmcfg.ora
HeartBeat=15000
ClusterName=Oracle Cluster Manager, version 9i
PollInterval=1000
MissCount=210
PrivateNodeNames=dbrac
PublicNodeNames=dbrac
ServicePort=9998
#WatchdogSafetyMargin=5000
#WatchdogTimerMargin=60000
HostName=dbrac
CmDiskFile=/home/oracle/oradata/rac/RacQuorumDisk
因为我们不再用watchdog去检测系统,而是用hangcheck-timer,所以,我们需要注释Watchdog的两行,增加如下一行
KernelModuleName=hangcheck-timer
以上的单节点RAC的一个例子,可以看到,在安装界面要求输入的节点名称,文件名称,都有对应的项目,这个因为是单节点,所有公用节点与私有节点都只有一个。
如果是多节点的RAC,公用节点与私有节点应当类似如下
PrivateNodeNames=dbrac1-eth1 dbrac2-eth1
PublicNodeNames=dbrac1 dbrac2
其中,私有节点是网卡2配置的地址,用于两台节点直接的通信
公用节点是网卡1配置的地址,用于外部访问数据库。
2、ocmargs.ora配置文件 注释$ORACLE_HOME/oracm/admin/ocmargs.ora中包含watchdogd的行
more $ORACLE_HOME/oracm/admin/ocmargs.ora
# Sample configuration file $ORACLE_HOME/oracm/admin/ocmargs.ora
#watchdogd
oracm
norestart 1800
3、ocmstart.sh启动文件 注释$ORACLE_HOME/oracm/bin/ocmstart.sh中的以下行
# watchdogd s default log file
# WATCHDOGD_LOG_FILE=$ORACLE_HOME/oracm/log/wdd.log
# watchdogd s default backup file
# WATCHDOGD_BAK_FILE=$ORACLE_HOME/oracm/log/wdd.log.bak
# Get arguments
# watchdogd_args=`grep ^watchdogd $OCMARGS_FILE |\
# sed -e s+^watchdogd *++ `
# Check watchdogd s existance
# if watchdogd status | grep Watchdog daemon active >/dev/null
# then
# echo ocmstart.sh: Error: watchdogd is already running
# exit 1
# fi
# Backup the old watchdogd log
# if test -r $WATCHDOGD_LOG_FILE
# then
# mv $WATCHDOGD_LOG_FILE $WATCHDOGD_BAK_FILE
# fi
# Startup watchdogd
# echo watchdogd $watchdogd_args
# watchdogd $watchdogd_args
5.4启动ocm $ cd $ORACLE_HOME/oracm/bin
$ su
# ./ocmstart.sh
启动完用ps -ef|grep oracm看一下有没进程,如果没有到$ORACLE_HOME/oracm/log目录下查出错信息
|
阅读(781) | 评论(0) | 转发(0) |