Oracle11GR2RAC安装手册一、基础知识1.RAC是什么RAC,全称realapplicationclusters,译为“实时应用集群”,是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。2.RAC的优缺点优点OracleRAC支持Oracle9i、10g、11g版本,可以支持24x7有效的数据库应用系统,在低成本服务器上构建高可用性数据库系统,并且自由部署应用,无需修改代码。在OracleRAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。(1)多节点负载均衡;(2)提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化;(3)通过并行执行技术提高事务响应时间----通常用于数据分析系统;(4)通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统;(5)节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约相应维护成本;(6)可扩展性好,可以方便添加删除节点,扩展硬件资源。缺点(1)相对单机,管理更复杂,要求更高;(2)可能会增加软件成本3.OracleRAC原理在一个应用环境当中,所有的服务器使用和管理同一个数据库,目的是为了分散每一台服务器的工作量,硬件上至少需要两台以上的服务器,而且还需要一个共享存储设备。同时所有服务器上的OS都应该是同一类OS,根据负载均衡的配置策略,当一个客户端发送请求到某一台服务的listener后,这台服务器根据我们的负载均衡策略,会把请求发送给本机的RAC组件处理也可能会发送给另外一台服务器的RAC组件处理,处理完请求后,RAC会通过集群软件来访问共享存储设备.逻辑结构上看:每一个参加集群的节点有一个独立的instance,这些instance访问同一个数据库。每一个节点的linstance都有自己的SGA。每一个节点的linstance都有自己的backgroundprocess。每一个节点的linstance都有自己的redologs。每一个节点的instance都有自己的undo表空间。所有节点都共享一份datafiles和controlfiles。三类Resource:VIP-虚拟IP地址(VirtualIP)OCR-OracleClusterRegistry(集群注册文件),记录每个节点的相关信息VotingDisk,仲裁机制用于仲裁多个节点向共享节点同时写的行为,这样做是为了避免发生冲突。二、RAC环境设计1.服务器配置操作系统主机名内存网卡RedhatEnterpriseLinux5.4rac12Geth0(Public)eth1(Prive)RedhatEnterpriseLinux5.4rac22Geth0(Public)eth1(Prive)2.用户组规划GroupNameGroupID说明HOSToinstall501Oracle清单和软件所有者rac1,rac2asmadmin504Oracle自动存储管理组rac1,rac2asmdba506ASM数据库管理员组rac1,rac2asmopen507ASM操作员组rac1,rac2dba502数据库管理员rac1,rac23.用户规划UserIDUserNameGroup说明HOST口令501gridoinstalldbaasmadminasmdbaasmoperOracleCluster用户rac1rac2grid123502oracleoinstalldbaasmdbaOracle数据库管理员rac1rac2oracle1234.IP规划主机名公用IP私有IP虚拟IPrac1172.16.1.21110.10.10.211172.16.1.111rac2172.16.1.21210.10.10.212172.16.1.112ScanIP172.16.1.1005.存储规划存储组件BlockDeviceASMlibNameSizeOCR/dev/sdbOCR_VOL11G/dev/sdcOCR_VOL21G/dev/sddOCR_VOL31G数据文件/dev/sdeDATA_VOL110G文件备份/dev/sdfBACK_VOL15G三、OracleRAC搭建1.配置共享存储(ASM依赖)方法一:vmwareworkstation9虚拟共享存储(1)在VM安装目录\VMwareWorkstation下执行命令:#vmware-vdiskmanager.exe-c-s1GB-alsilogic-t2D:\racDisk\db01.vmdk#vmware-vdiskmanager.exe-c-s1GB-alsilogic-t2D:\racDisk\db02.vmdk#vmware-vdiskmanager.exe-c-s1GB-alsilogic-t2D:\racDisk\db03.vmdk#vmware-vdiskmanager.exe-c-s10GB-alsilogic-t2D:\racDisk\db04.vmdk#vmware-vdiskmanager.exe-c-s5GB-alsilogic-t2D:\racDisk\db05.vmdk(2)修改rac1和rac2下的.vmx文件,在最后一行添加如下内容:diskLib.dataCacheMaxSize=0diskLib.dataCacheMaxReadAheadSize=0diskLib.dataCacheMinReadAheadSize=0diskLib.dataCachePageSize=4096diskLib.maxUnsyncedWrites=0disk.locking=FALSEscsi1.sharedBus=virtualscsi1.present=TRUEscsi1.virtualDev=lsilogicscsi1:0.mode=independent-persistentscsi1:0.deviceType=diskscsi1:0.present=TRUEscsi1:0.fileName=D:\racDisk\db01.vmdkscsi1:1.mode=independent-persistentscsi1:1.deviceType=diskscsi1:1.present=TRUEscsi1:1.fileName=D:\racDisk\db02.vmdkscsi1:2.mode=independent-persistentscsi1:2.deviceType=diskscsi1:2.present=TRUEscsi1:2.fileName=D:\racDisk\db03.vmdkscsi1:3.mode=independent-persistentscsi1:3.deviceType=diskscsi1:3.present=TRUEscsi1:3.fileName=D:\racDisk\db04.vmdkscsi1:4.mode=independent-persistentscsi1:4.deviceType=diskscsi1:4.present=TRUEscsi1:4.fileName=D:\racDisk\db05.vmdk(3)重新打开虚拟机,并启动。(4)磁盘分区,在rac1执行#fdisk/dev/sdbDevicecontainsneitheravalidDOSpartitiontable,norSun,SGIorOSFdisklabelBuildinganewDOSdisklabel.Changeswillremaininmemoryonly,untilyoudecidetowritethem.Afterthat,ofcourse,thepreviouscontentwon'tberecoverable.Warning:invalidflag0x0000ofpartitiontable4willbecorrectedbyw(rite)Command(mforhelp):pDisk/dev/sdb:1048MB,1048576000bytes64heads,32sectors/track,1000cylindersUnits=cylindersof2048*512=1048576bytesDeviceBootStartEndBlocksIdSystemCommand(mforhelp):nCommandactioneextendedpprimarypartition(1-4)pPartitionnumber(1-4):1Firstcylinder(1-1000,default1):Usingdefaultvalue1Lastcylinderor+sizeor+sizeMor+sizeK(1-1000,default1000):Usingdefaultvalue1000Command(mforhelp):wThepartitiontablehasbeenaltered!Callingioctl()tore-readpartitiontable.Syncingdisks.#fdisk/dev/sdc…重复上面操作#fdisk/dev/sdd…重复上面操作#fdisk/dev/sde…重复上面操作#fdisk/dev/sdf…重复上面操作方法二:Linuxmount挂载(待解决)2.安装依赖包#yuminstall-yexpect*iscsi*binutils*compat-libstdc++*expat*elfutils-libelf*gcc*glibc*ksh*libgcc*#yuminstall-ypdksh*libgomp*compat-db*libXp*libaio*cpp*setarch*sysstat*libstdc++*make-3*#yuminstall-yunixODBC#yuminstall-yunixODBC-devel3.查看依赖包安装状况#rpm-q--qf'%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n'binutils\elfutils-libelf\elfutils-libelf\expat\gcc\gcc-c++\glibc\glibc-common\glibc-devel\glibc-headers\ksh\libaio\libaio-devel\libgcc\libstdc++\libstdc++-devel\make\pdksh\sysstat\unixODBC\unixODBC-devel执行结果…binutils-2.17.50.0.6-26.el5(x86_64)elfutils-libelf-0.137-3.el5(x86_64)elfutils-libelf-0.137-3.el5(i386)elfutils-libelf-0.137-3.el5(x86_64)elfutils-libelf-0.137-3.el5(i386)expat-1.95.8-11.el5_8(x86_64)expat-1.95.8-11.el5_8(i386)gcc-4.1.2-54.el5(x86_64)gcc-c++-4.1.2-54.el5(x86_64)glibc-2.5-118.el5_10.2(i686)glibc-2.5-118.el5_10.2(x86_64)glibc-common-2.5-118.el5_10.2(x86_64)glibc-devel-2.5-118.el5_10.2(x86_64)glibc-devel-2.5-118.el5_10.2(i386)glibc-headers-2.5-118.el5_10.2(x86_64)ksh-20100621-18.el5(x86_64)libaio-0.3