From: http://www.linuxsir.org/bbs/thread198024.html By daniey
Word 文档下载:
linux_srac.doc
在linux上单机模拟Oracle 10g RAC集群(OCFS+ASM)
作者:daniey MSN:danieyren@hotmail.com
申明:请珍惜作者劳动,如需要转载,请注明出处
本文是在参考oracle 10g 双机集群的基础上通过实践并且精简而得,撰写本文的目的是为了方便大家探讨技术,相信本文仍有许多不足之处
参考文档:http://www.oracle.com/technology/global/cn/pub/articles/hunter_rac10g.html
注:对于与多机多节点集群相同的地方,文中将直接引用参考文档相关部分
一、简介
熟悉 Oracle 真正应用集群 (RAC) 10g 技术的最有效方法之一是访问一个实际的 Oracle RAC 10g 集群。没有什么方法比直接体验它们能够更好地理解其好处的了 -- 包括容错、安全性、负载均衡和可伸缩性。
Oracle RAC 的核心是共享磁盘子系统。集群中的所有节点必须能够访问集群中所有节点的所有数据、重做日志文件、控制文件和参数文件。数据磁盘必须在全局范围内可用,以便允许所有节点访问数据库。每个节点拥有自己的重做日志和控制文件,但是其他节点必须能够访问这些文件,以便在系统故障时恢复该节点。
希望本文能对一些手头上只有一台PC而没有真正的双机环境的朋友提供一个参考。
二、本文实践环境
1、PC主要配置:
Celeron(R) CPU 1.80GHz
Maxtor 6E040L0, ATA DISK drive 40G
RelTek 8139C 网卡 一块
内存DDR333 512MB * 2
显示卡:ATI [Radeon 9200 SE]
操作系统:White Box Enterprise Linux 3 (本文同样适用于RedHat企业版,不同之处是WBEL3目前可以免费运用于商业)
远程终端一台,装有windowsXP和远程X-server软件
2、服务器分区方案
Oracle 数据库文件
|
RAC节点名 |
实例名 |
数据库名 |
$ORACLE_BASE |
文件系统 |
|
dbrac |
orcl1 |
orcl |
/home/oracle |
ASM |
Oracle CRS 共享文件
|
文件类型 |
文件名 |
分区 |
挂载点 |
文件系统 |
|
oracle集群注册表 |
/u01/orcl/orcfile |
/dev/hda8 |
/u01 |
OCFS |
|
CRS表决磁盘 |
/u01/orcl/cssfile |
/dev/hda8 |
/u01 |
OCFS |
3、所涉及软件
1) oracle 10g 数据库软件
ship.db.lnx32.cpio.gz
2) oracle 10g 集群服务软件
ship.crs.lnx32.cpio.gz
3) OCFS文件系统支持
ocfs-2.4.21-EL-1.0.14-1.i686.rpm
ocfs-support-1.0.10-1.i386.rpm
ocfs-tools-1.0.10-1.i386.rpm
4) ASMlib驱动程序
oracleasm-2.4.21-EL-1.0.3-1.i686.rpm
oracleasm-support-1.0.3-1.i386.rpm
oracleasmlib-1.0.0-1.i386.rpm
以上软件包均可以从oracle官方网站下载
WBEL linux下载地址:http://www.whiteboxlinux.org/download.html
三、基础操作
1、安装linux
安装过程中一些需要注意的地方:
1) 磁盘分区:swap分区大小建议是内存的2倍,这里是2048MB,划出一些系统必要的分区根分区/,var分区/var,usr分区/usr,home分区/home,临时文件分区/tmp。注意:这里不要把所有的硬盘空间划分进操作系统,留下一半给后面安装oarcle集群磁盘使用,本文示例
2) 文件系统 容量 挂载点
/dev/hda1 1012M /
/dev/hda2 7.7G /home
/dev/hda7 1012M /tmp
/dev/hda3 5.8G /usr
/dev/hda5 2.0G /var
3) 组件选取:一定要选上delvelopment tools和X-windows两项,为了节省空间其他可以不要
4) 防火墙:最好不要
5) 网络设置:eth0
取消选中 [Configure using DHCP] 复选项
选中 [Activate on boot]
IP 地址:192.168.22.44
网络掩码: 255.255.255.0
6) 主机名:dbrac
2、.安装完成后检查必需的 RPM
3、必须安装以下程序包(或更高版本):
make-3.79.1
gcc-3.2.3-34
glibc-2.3.2-95.20
glibc-devel-2.3.2-95.20
glibc-headers-2.3.2-95.20
glibc-kernheaders-2.4-8.34
cpp-3.2.3-34
compat-db-4.0.14-5
compat-gcc-7.3-2.96.128
compat-gcc-c++-7.3-2.96.128
compat-libstdc++-7.3-2.96.128
compat-libstdc++-devel-7.3-2.96.128
openmotif-2.2.2-16
setarch-1.3-1
四、设置
1、更改/etc/hosts
vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.22.44 dbrac int-dbrac
192.168.22.244 vip-dbrac
确保RAC节点名没有出现在回送地址中。
此处设置相当重要,不能跳过,一定按照此设置,IP和主机别名可以自己定
oracle 10g RAC中 使用了虚拟IP(VIP)技术,这是一个令人心动的高可用性、多机无缝切换的解决方案,但在单机模拟环境中仅仅是个形式而已,为了以后的顺利安装,不得不配置它
2、调整内核网络设置参数
编辑/etc/sysctl.conf,增加下面的设置:
vi /etc/sysctl.conf
# Default setting in bytes of the socket receive buffer
net.core.rmem_default=262144
# Default setting in bytes of the socket send buffer
net.core.wmem_default=262144
# Maximum socket receive buffer size which may be set by using
# the SO_RCVBUF socket option
net.core.rmem_max=262144
# Maximum socket send buffer size which may be set by using
# the SO_SNDBUF socket option
net.core.wmem_max=262144
3、添加模块选项:
将下列行添加到 /etc/modules.conf 中:
options sbp2 sbp2_exclusive_login=0
4、创建"oracle"用户和目录
$su -
#groupadd dba
#useradd -g dba -m oracle
#passwd oracle
5、编辑.bash_profile文件,增加oracle环境变量
$vi .bash_profile
export PATH
unset USERNAME
export LANG=zh_CN.EUC
ORACLE_BASE=/home/oracle;export ORACLE_BASE
export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/10.1.0/crs_1
export ORACLE_SID=rac1
export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
PATH=$ORACLE_HOME/bin:/bin:/sbin:/usr/bin:/usr/ccs/bin:/usr/local/bin:/usr/ucb;export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:$ORACLE_HOME/oracm/lib:/usr/local/lib:/usr/lib;export LD_LIBRARY_PATH
export ORACLE_TERM=xterm
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export LD_ASSUME_KERNEL=2.4.1
6、创建CRS分区和数据文件分区
1) 先建立CRS分区挂载点
mkdir /u01
chown oracle:dba /u01
2) 接着创建CRS