您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 构建高可用性oracle集群
构建高可用性oracle集群随着IT以及IT相关服务在企业里应用的越来越广泛,现代化企业也越来越依赖于他们所采用的IT架构。如果一个关键应用的数据库不可用,不但直接影响到企业业务运行,而且会使企业面临数据丢失的危险。因此,构建一个具有高可用性的数据库平台对于一个现代化企业来讲至关重要。所谓数据库的高可用性是指,提供近乎连续的数据访问,将硬件和软件组件故障产生的中断降低到最少。实现数据库的高可用性需要综合可虑,涉及到IT架构的诸多方面,包括:网络、存储、服务器、数据库软件、备份系统等。Oracle作为被广泛使用的一种数据库系统,在实现数据库高可用方面有很多优点,本文着重讨论oracle数据库高可用性的实现方式。在设计数据库高可用性之前,首先需要分析可能造成数据库系统不可用的原因,这样才能采取相应的办法避免因这些原因导致的数据库故障。数据库系统停机通常包含计划停机和意外停机两种。计划停机通常是在有计划的情况下对数据库系统或相应硬件进行维护升级,只要事先做好详细计划,计划停机通常是可以控制并减少的。在这方面oracle提供了联机修改系统配置、联机升级等功能,可以有效的减少计划停机的时间。我们重点需要考虑的是非计划停机,这类停机通常是由于计算机故障或者数据故障引起的,相对于计划停机,这类故障引起的数据库停机危害更大,影响也最严重,因此需要我们重点关注。运行数据库的服务器意外故障导致服务中断,这是一种最并常见的故障,大多数情况是由于硬件故障造成。OracleRAC(RealApplicationClusters)架构可以有效地防止这类故障的发生。OracleRAC是首要的数据库集群技术,在RAC环境中Oracle运行于两个或者更多的计算机节点上,并可以同时访问一个共享数据库。这使得一个数据库系统可以跨越多个硬件系统平台,同时对应用程序而言仍是一个统一的数据库系统,从而为各中应用程序的可用性提供了极大的优势。下面以AIX操作系统下,讨论OracleRAC的实现方式。对于一个两节点的群集,下面是推荐的最小软硬和操作系统要求。(图一)所示的是实现两节点ORACLERAC集群比较典型的硬件连接方式。图一两节点OracleRAC典型硬件连接方式●IBM服务器–两个可以运行5L64位的IBM服务器●每个服务器必须有至少512M内存,至少1G交换分区或两倍于物理内存或更多。要确定使用的系统内存:$/usr/sbin/lsattr-E-lsys0-arealmem要确定使用的交换分区:$/usr/sbin/lsps-a●需要64位的处理器。●共享的磁盘阵列和2台存储交换机。●IBMHACMP所需要的交换机端口和IP地址。●IBMAIX5.1(5L)和HACMP/ESCRM4.4.x●Oracle服务器企业版9.2.0●HACMP及RAC可能需要的各种补丁在安装IBMAIX操作系统环境和HACMP软件之前,应结合OracleRAC的要求对磁盘阵列做一个规划,下表列出了OracleRAC的基本磁盘空间要求:需求空间要求位置辅助Oracle文件在两个节点上都需要100MB任意的本地系统驱动器临时空间在两个节点上都需要50MB任意的本地系统驱动器集群就绪服务软件在两个节点上都需要500MB任意的本地系统驱动器但在两个节点上名称必须相同数据库软件在两个节点上都需要1GB任意的本地系统驱动器但两个节点上名称必须相同数据库文件7GB共享磁盘阵列图二OracleRAC磁盘配置如果没有使用GPFS,那么RAC需要每个实例可以访问一个共享磁盘系统上的一系列未格式化的设备。这些共享磁盘也被称为裸设备,如果系统平台支持Oracle认证的群集文件系统,那么可以直接保存RAC需要的文件到群集文件系统里。如果使用GPFS,那么也可以直接保存RAC需要的文件到群集文件系统里。RAC配置中的Oracle实例把数据写入到裸设备,更新控制文件,服务器参数文件,每个数据文件和每个重做日志文件,群集中的所有实例共享这些文件。RAC配置中的Oracle实例把信息写到以下定义的裸设备:控制文件spfile.ora每个数据文件每个联机重做日志文件ServerManager(SRVM)配置信息所以有必要为每个文件类别定义裸设备,AIX操作系统和IBMHACMP集群的安装配置可以参考IBM相关手册,在配置时候除了提前做好磁盘规划外,还需要注意网络接口名称的限制:名称是区别大小写的名称不能包含任何多字节语言字符公共和专用网络接口名称必须不同两个节点上的各个接口的名称必须相同公共和专用IP地址必须位于不同的子网实实例例11实实例例22本本地地磁磁盘盘本本地地磁磁盘盘RRAACC数数据据库库OOrraaccllee软软件件存存档档日日志志数数据据文文件件、、控控制制文文件件重重做做日日志志、、存存档档日日志志SSPPFFIILLEE、、SSRRVVCCTTLLOOrraaccllee软软件件存存档档日日志志RAC群集安装过程包括四个主要阶段。配置共享磁盘和UNIX预安装任务。运行OUI安装OracleEnterpriseEdition和RAC软件。创建和配置数据库。管理RAC实例阶段一:配置共享磁盘和UNIX预安装任务在运行OracleUniversalInstaller的节点上,创建一个ASCII文件来标识裸卷对象,DBCA在安装和创建数据库中,需要这些裸卷对象存在。使用如下格式命名裸卷对象:database_object=raw_device_file_path须通过设置下面的环境变量来指定Oracle使用此文件来决定裸设备卷,其中filename就是上面创建的ASCII文件:DBCA_RAW_CONFIG=filename;exportDBCA_RAW_CONFIG在UNIX预安装时,可以运行Note:189256.1里提供的installPrep.sh脚本,处理很多的UNIX环境问题。然后用root用户执行下面的工作:●在集群所有节点上添加Oracle用户和dba组,同时建一个oinstall组,作为软件属主的primary组,使用oinstall是可选的,但推荐使用。查看/etc/groups文件典型的条目看起来如下:dba::101:oracleoinstall::102:root,oracle●在每个节点上创建一个挂载点目录,作为Oracle软件目录的最上层,使得在每个节点上的挂载点名称是唯一的,并和第一个节点相同。oracle账号对此挂载点有读,写和执行权限。●从运行OracleUniversalInstaller的节点上,建立用户信任,通过添加条目到oracle账号的.rhosts或/etc/hosts.equiv文件里。用oracle账号检测信任关系。●建立系统环境变量:●设置至少有20Mb空间的临时目录TMPDIR,并且OUI有写权限。●验证存在/opt/SUNWcluster/bin/lkmgr文件,被OUI使用以指明此安装在一个群集上执行。阶段二:使用OUI安装RAC使用OracleUniversalInstaller来安装Oracle企业版和RealApplicationClusters软件,在光盘加载点,或从磁盘安装时,从Disk1位置,执行rootpre.sh脚本,#//rootpre.sh以oracle用户登录,并运行runInstaller。$//runInstaller根据提示选择需要安装的产品等,当最后选择了Install之后,OUI将安装OracleRAC软件到本地节点,然后拷贝软件到前面选择的其它节点,这将花费一些时间,在安装过程中,OUI不会显示信息,表明组件正被安装到其它节点-I/O活动可能是唯一表明过程正在继续。阶段三:使用ODCA创建一个RAC数据库用DBCA命令创建一个数据库,DBCA使用优化的结构来创建数据库,这意味DBCA创建数据库文件,包括默认的服务器参数文件,使用标准文件命名和文件位置,DBCA的主要步骤为:验证是否为每个表空间正确配置了共享磁盘(针对非群集文件系统)创建数据库配置Oracle网络服务启动数据库实例和监听DBCA可以作为安装过程的一部分自动启动,也可以通过从$ORACLE_HOME/bin目录执行dbca命令来手动运行。在此过程中需要选择需要配置rac的节点,确定GlobalDatabaseName和OracleSystemIdentifier(SID)。SID被用于唯一标识一个实例,在RAC环境里,指定的SID被作用实例号的一个前缀,例如:MYDB,将用MYDB1,MYDB2作为实例1和实例2。在dbca的交互过程中可以确定数据库选项(DatabaseOptions),设定数据库初始化参数,完成数据库存储设定,在数据库存储设定时可以直接导入在阶段一编辑的,由环境变量DBCA_RAW_CONFIG指定配置文件。在确认所有建库的选项正确之后即可点击确定开始创建数据库了。阶段四:管理RAC实例可以使用SRVCTL来管理RAC数据库环境,在使用SRVCTL之前需要启动GlobalServicesDaemon(GSD)进程。首次创建RAC集群后,需要初始化clusterwideSRVM配置。首先,创建或编辑/var/opt/oracle/srvConfig.loc文件,并添加srvconfig_loc=path_name条目,其中path_name是一个小的群集共享的裸卷,需要在配置磁盘阵列时提前创建,例如:$vi/var/opt/oracle/srvConfig.locsrvconfig_loc=/dev/rrac_srvconfig_100m然后,执行如下命令来初始化此裸卷,此时需要停止gsd进程。$srvconfig-init第一次使用SRVCTL工具来创建配置时,在所有节点上启动GlobalServicesDaemon(GSD),使得SRVCTL能够访问的群集信息,然后执行srvctl添加命令,使得RealApplicationClusters知道哪些实例属于群集,语法如下:$gsdctlstartSuccessfullystartedthedaemononthelocalnode.$srvctladddatabase-ddb_name-ooracle_home[-mdomain_name][-sspfile]然后为每个实例输入命令:$srvctladdinstance-ddb_name-isid-nnode完成上述配置后就可以在日常工作中使用svrctl命令来管理RAC集群了。结束语:oracle的高可用性除了完成RAC集群的配置外,还包含很多其它方面的因素,例如网络因素,人外因素造成的数据错误,数据备份等。就oracle本身来说,在实现rac集群后应该继续完成rman的配置,配合可靠的离线备份系统进一步提高数据库的容错能力。参考手册·Note:201019.1-AIX:QuickStartGuide-9.2.0RDBMSInstallation·Note:77346.1-OverviewofHACMPClassicand/orHACMP/ES·Note:137288.1-DatabaseCreationinOracle9iRAC·Note:183408.1-RawDevicesandClusterFilesystemsWithRealApplicationClusters·RAC/IBMAIXcertificationmatrix·Oracle9iRealApplicationClustersInstallationandConfigurationRelease1(9.0.1)·Oracle9iRealApplicationClustersConcepts·Oracle9iRealApplicationClustersAdministration·Oracle9iRealApplicationClustersDeploymentandPerformance·Oracle9iI
本文标题:构建高可用性oracle集群
链接地址:https://www.777doc.com/doc-14119 .html