在linux上单机模拟Oracle10gRAC集群(OCFS+ASM)作者:danieyMSN:danieyren@hotmail.com申明:请珍惜作者劳动,如需要转载,请注明出处本文是在参考oracle10g双机集群的基础上通过实践并且精简而得,撰写本文的目的是为了方便大家探讨技术,相信本文仍有许多不足之处参考文档::对于与多机多节点集群相同的地方,文中将直接引用参考文档相关部分一、简介熟悉Oracle真正应用集群(RAC)10g技术的最有效方法之一是访问一个实际的OracleRAC10g集群。没有什么方法比直接体验它们能够更好地理解其好处的了—包括容错、安全性、负载均衡和可伸缩性。OracleRAC的核心是共享磁盘子系统。集群中的所有节点必须能够访问集群中所有节点的所有数据、重做日志文件、控制文件和参数文件。数据磁盘必须在全局范围内可用,以便允许所有节点访问数据库。每个节点拥有自己的重做日志和控制文件,但是其他节点必须能够访问这些文件,以便在系统故障时恢复该节点。希望本文能对一些手头上只有一台PC而没有真正的双机环境的朋友提供一个参考。二、本文实践环境1、PC主要配置:Celeron(R)CPU1.80GHzMaxtor6E040L0,ATADISKdrive40GRelTek8139C网卡一块内存DDR333512MB*2显示卡:ATI[Radeon9200SE]操作系统:WhiteBoxEnterpriseLinux3(本文同样适用于RedHat企业版,不同之处是WBEL3目前可以免费运用于商业)远程终端一台,装有windowsXP和远程X-server软件2、服务器分区方案Oracle数据库文件RAC节点名实例名数据库名$ORACLE_BASE文件系统dbracorcl1orcl/home/oracleASMOracleCRS共享文件文件类型文件名分区挂载点文件系统oracle集群注册表/u01/orcl/orcfile/dev/hda8/u01OCFSCRS表决磁盘/u01/orcl/cssfile/dev/hda8/u01OCFS3、所涉及软件1)oracle10g数据库软件ship.db.lnx32.cpio.gz2)oracle10g集群服务软件ship.crs.lnx32.cpio.gz3)OCFS文件系统支持ocfs-2.4.21-EL-1.0.14-1.i686.rpmocfs-support-1.0.10-1.i386.rpmocfs-tools-1.0.10-1.i386.rpm4)ASMlib驱动程序oracleasm-2.4.21-EL-1.0.3-1.i686.rpmoracleasm-support-1.0.3-1.i386.rpmoracleasmlib-1.0.0-1.i386.rpm以上软件包均可以从oracle官方网站下载WBELlinux下载地址:、基础操作1、安装linux安装过程中一些需要注意的地方:1)磁盘分区:swap分区大小建议是内存的2倍,这里是2048MB,划出一些系统必要的分区根分区/,var分区/var,usr分区/usr,home分区/home,临时文件分区/tmp。注意:这里不要把所有的硬盘空间划分进操作系统,留下一半给后面安装oarcle集群磁盘使用,本文示例2)文件系统容量挂载点/dev/hda11012M//dev/hda27.7G/home/dev/hda71012M/tmp/dev/hda35.8G/usr/dev/hda52.0G/var3)组件选取:一定要选上delvelopmenttools和X-windows两项,为了节省空间其他可以不要4)防火墙:最好不要5)网络设置:eth0取消选中[ConfigureusingDHCP]复选项选中[Activateonboot]IP地址:192.168.22.44网络掩码:255.255.255.06)主机名:dbrac2、.安装完成后检查必需的RPM3、必须安装以下程序包(或更高版本):make-3.79.1gcc-3.2.3-34glibc-2.3.2-95.20glibc-devel-2.3.2-95.20glibc-headers-2.3.2-95.20glibc-kernheaders-2.4-8.34cpp-3.2.3-34compat-db-4.0.14-5compat-gcc-7.3-2.96.128compat-gcc-c++-7.3-2.96.128compat-libstdc++-7.3-2.96.128compat-libstdc++-devel-7.3-2.96.128openmotif-2.2.2-16setarch-1.3-1四、设置1、更改/etc/hostsvi/etc/hosts127.0.0.1localhost.localdomainlocalhost192.168.22.44dbracint-dbrac192.168.22.244vip-dbrac确保RAC节点名没有出现在回送地址中。此处设置相当重要,不能跳过,一定按照此设置,IP和主机别名可以自己定oracle10gRAC中使用了虚拟IP(VIP)技术,这是一个令人心动的高可用性、多机无缝切换的解决方案,但在单机模拟环境中仅仅是个形式而已,为了以后的顺利安装,不得不配置它2、调整内核网络设置参数编辑/etc/sysctl.conf,增加下面的设置:vi/etc/sysctl.conf#Defaultsettinginbytesofthesocketreceivebuffernet.core.rmem_default=262144#Defaultsettinginbytesofthesocketsendbuffernet.core.wmem_default=262144#Maximumsocketreceivebuffersizewhichmaybesetbyusing#theSO_RCVBUFsocketoptionnet.core.rmem_max=262144#Maximumsocketsendbuffersizewhichmaybesetbyusing#theSO_SNDBUFsocketoptionnet.core.wmem_max=2621443、添加模块选项:将下列行添加到/etc/modules.conf中:optionssbp2sbp2_exclusive_login=04、创建“oracle”用户和目录$su-#groupadddba#useradd-gdba-moracle#passwdoracle5、编辑.bash_profile文件,增加oracle环境变量$vi.bash_profileexportPATHunsetUSERNAMEexportLANG=zh_CN.EUCORACLE_BASE=/home/oracle;exportORACLE_BASEexportORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1exportORA_CRS_HOME=$ORACLE_BASE/product/10.1.0/crs_1exportORACLE_SID=rac1exportNLS_LANG='SIMPLIFIEDCHINESE_CHINA.ZHS16GBK'PATH=$ORACLE_HOME/bin:/bin:/sbin:/usr/bin:/usr/ccs/bin:/usr/local/bin:/usr/ucb;exportPATHLD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:$ORACLE_HOME/oracm/lib:/usr/local/lib:/usr/lib;exportLD_LIBRARY_PATHexportORACLE_TERM=xtermexportCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlibexportTHREADS_FLAG=nativeexportTEMP=/tmpexportTMPDIR=/tmpexportLD_ASSUME_KERNEL=2.4.16、创建CRS分区和数据文件分区1)先建立CRS分区挂载点mkdir/u01chownoracle:dba/u012)接着创建CRS分区和共享数据文件分区fdisk/dev/hdaCRS分区只要500M就够了,剩下的全部划分给数据文件分区,这里为数据文件只分了1个区/dev/hda9CRS分区为/dev/hda8[root@dbracroot]#fdisk/dev/hdaThenumberofcylindersforthisdiskissetto4997.[root@dbracroot]#fdisk/dev/hdaThenumberofcylindersforthisdiskissetto4997.Thereisnothingwrongwiththat,butthisislargerthan1024,andcouldincertainsetupscauseproblemswith:1)softwarethatrunsatboottime(e.g.,oldversionsofLILO)2)bootingandpartitioningsoftwarefromotherOSs(e.g.,DOSFDISK,OS/2FDISK)Command(mforhelp):pDisk/dev/hda:41.1GB,41109061120bytes255heads,63sectors/track,4997cylindersUnits=cylindersof16065*512=8225280bytesDeviceBootStartEndBlocksIdSystem/dev/hda1*1131105222683Linux/dev/hda21321151819315083Linux/dev/hda3115219166144862+83Linux/dev/hda41917499824756165fWin95Ext'd(LBA)/dev/hda519172177209645183Linux/dev/hda621782438209645182Linuxswap/dev/hda724392569105222683LinuxCommand(mforhelp):nFirstcylinder(2570-4998,default2570):Usingdefaultvalue2570Lastcylinderor+sizeor+sizeMor+sizeK(2570-4998,default4998):+500MCommand(mforhelp):nFirstcylinder(2632-4998,default2632):Usingdefaultvalue2632Lastcylinderor+sizeor+sizeMor+sizeK(2632-4998,default4998):+15000MCommand(mforhelp):pDisk/dev/hda:41.1GB,41109061120bytes255heads,63sectors/track,4997cylindersUnits=cylindersof16065*512=8225280bytesDeviceBootStartEndBlocksIdSystem/d