Oracle RAC入门和提高_第1页
Oracle RAC入门和提高_第2页
Oracle RAC入门和提高_第3页
Oracle RAC入门和提高_第4页
Oracle RAC入门和提高_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle RAC入门和提高 OrOra数据件存最小故障重配重配故障重启恢复预热总故同时racle?RAOracle Racle的并行据库,节点之存放在共享RAC提供的 (1)多节点 (2)提供高小化,下表障切换操作配置组成员配置分布锁障切换磁盘启动Oracle复Oracle热缓冲区故障切换时 (3)通过并 (4)通过横 (5)节约硬时节约相应6)可扩展OracAC?产品概Real Appli行集群,位于之间通过私享的设备上,的好处包括点负载均衡高可用故表是RAC与传锁盘卷e时间并行执行技横向扩展提硬件成本,应维护成本;展性好,可以le RA概述?cation Se于不同服务器私有网络进能够被集群括衡;故障容错和无传统的双机RAC15秒5秒0秒0秒20秒0秒间-通常用接数;-通服务器代替扩展硬件和提高,简称Ora例同时访问文件、联机读写。 其系统件和软件错的对比传统主备模0秒0秒多则20分钟多则5分钟20秒10+min35分钟用于数据分通常对于联替昂贵的小型件资源;高acle RAC,同一个Ora机日志和数据统架构如下错误造成的影模式切换钟钟分析系统;联机事务系统型机或大型,是acle据文下图影响统;型机,RAC的缺点有相对单机,管理更复杂,要求更高;在系统规划设计较差时性能甚至不如单节点;可能会增加软件成本(如果使用高配置的pc服务器,Oracle一般按照CPU个数收费)在Oracle9i之前,RAC的名称是OPS(Oracle parallelServer)。 RAC与OPS之间的一个较大区别是,RAC采用了Cache Fusion(高速缓存合并)技术。 在OPS中,节点间的数据请求需要先将数据写入磁盘,然后发出请求的节点才可以读取该数据。 使用Cache fusion时,RAC的各个节点的数据缓冲区通过高速、低延迟的内部网络进行数据块的传输。 Oracle RAC在中国各行各业使用都比较广泛,包括通信移动、金融服务、社会保障和电子商务等,据Oracle统计,xx财年中国有500多家企业使用Oracle实时应用集群,考虑到未登记信息,实际数字更高于这一数字。 典型的用户包括中彩在线/OLTP/4节点/10gR2/AIX5. 3、淘宝/DataWarehouse/4节点/10gR2/RHEL 4、北京社保/6节点/HP_Alpha/MA 8000、建行证券系统/2节点/IBM_P595/EMC_DMX 3、上海电力/2节点/Alpha_GS 160、广东移动、山东网通等。 Oracle?RAC/Clusterware的结构和组件 一、RAC主要组件,软硬件两部分 (1)服务器=2 (2)操作系统,推荐使用Oracle认证的系统;版本不要太老,也不要太新 (3)CPU/内存根据业务需要,内存至少1G (4)本地磁盘空间,=30G (5)网卡=2,推荐4个以上千兆网卡 (6)私有以太网络,推荐千兆交换机以上 (7)HBA卡,如果是SAN,推荐2个冗余HBA (8)共享存储设备,推荐SAN设备 (9)存储管理,ASM/Cluster LV/裸分区/CFS,不推荐用OCFS,卷管理软件、多路径软件等 (10)第三方集群软件:可选 (11)Oracle Clusterware软件 (12)Oracle RDBMS软件 二、Clusterware主要进程 (1)crsd负责管理集群的高可用操作。 管理的crs资源包括数据库、实例、监听、虚拟IP,ons,gds或者其他,操作包括启动、关闭、监控及故障切换。 改进程由root用户管理和启动。 crsd如果有故障会导致系统重启。 (2)cssd,管理各节点的关系,用于节点间通信,节点在加入或离开集群时通知集群。 该进程由oracle用户运行管理。 发生故障时cssd也会自动重启系统。 (3)oprocd集群进程管理Process monitorfor thecluster.用于保护共享数据IO fencing。 仅在没有使用vendor的集群软件状态下运行 (4)evmd事件检测进程,由oracle用户运行管理 三、Clusterware使用的共享设备 (1)Oracle ClusterRegistry(OCR)记录集群的配置信息; (2)Voting disk:即投票盘,保存节点的成员信息,当配置多个投票盘的时候个数必须为奇数,每个节点必须同时能够连接半数以上的投票盘才能够存活; 四、安装路径的选择本地文件系统集群文件系统ASM共享裸设备Clusterware软件Y YRDBMS软件Y OCR&vote diskY Y数据文件Y Y Y spfileY Y YY归档日志/密码文件YYY注 (1)在Oracle RAC中,软件不建议安装在共享文件系统上;包括CRS_HOME和ORACLE_HOME,尤其是CRS软件,推荐安装在本地文件系统中,这样在进行软件升级,以及安装patch和patchset的时候可以使用滚动升级(rolling upgrade)的方式,减少计划当机时间。 另外如果软件安装在共享文件系统也会增加单一故障点。 (2)如果使用ASM存储,需要为asm单独安装ORACLE软件,独立的ORACLE_HOME,易于管理和维护,比如当遇到asm的bug需要安装补丁时,就不会影响RDBMS文件和软件。 (3)在Oracle11gR2中将新增存储选项acfs(Oracle ASMCluster FileSystem)第三方集群在Oracle9i中,除了Windows和Linux,在安装RAC之前必须先安装vendor clusterware,即第三方集群,包括IBM的HACMP,HP的ServiceGuard fororacle RAC,Sun cluster,Veritas SFRAC等,这一类的集群软件为Oracle RAC提供了下面的功能 (1)共享的逻辑卷管理或者集群文件系统用于存放数据文件; (2)提供了统一的集群的成员组管理; (3)使用更健壮的SCSI-3PGR机制来防止心跳故障(即裂脑split brain)导致的数据损坏,这种功能一般叫做IO fencing; (4)提供效率更高的、更低延迟的心跳网络用于cache fusion,可以相对减少TCP/IP的开销,包括HP SGeRAC:HMP(Hyper MessagingProtocol),Sun Cluster:RSM(Remote SharedMemory),Veritas SFRAC:LLT(low-latency transport),Compac TrueCluster:RDG(reliable datagrams);通常如果要使用第三方集群的心跳协议,需要将$ORACLE_HOME/lib/libskgxpX.so文件替换为第三方集群是S是olibRAC案,灾级距离性能列,简称的可设备str文件称AIXCRSlib没有说,两套员信软件提供System Keroracle开放skgxp文件 (5)提供扩C;如下图,方案一是级别的实时离更远、超 (6)Verit补充的Or能;标准的多在异构SAN从Oracle称CRS,这个可选项。 同备的管理,还ripe andmi那么Orac在安装完件的作用就CM)。 X/Solaris/当安装C过程中skgxn2.so有第三方集在有第三套集群的成信息。 供的libskgxrnel Gener放的一个应件定义的传输扩展的容灾以Verita是使用Verit时数据保护;超过10km广as SFRACracle ODM,路径软件(N环境中有e10g起,O个软件是安同时提供了还实现了数irror everycle是如何完第三方集群就是上面的第在HPUX/Linux下这CRS的的检生成一个o或pa20_6集群,那么C三方集群存在成员信息保持xpX.so文件ic Interfa应用接口,用输协议是U灾方案,例如as的SFRACtas Volume方案二使用广域网的容灾还提供了以可以使Or(DMP),不需有更好的兼容Oracle提供安装oracle另外一个新数据文件的条ything),何识别第三方群后,会在第二点功能下该文件这个文件是/检查阶段,就软连接文件64文件,这CRS安装过在的情况下持一致和同件(其中X代ace Inter-用于传输GUDP/IP。 如campus C为例,它e Manager用GCO/VVR灾;以下特性racle同时需要再安装容性;供了自己的e rac的前新特性叫做条带化和镜,不再依赖方集群的呢在特定目录下能集群成员是/opt/opt/ORCLc就会检测是,文件这个软连接过程中生成自下,CRS的集同步;没有第代表Oracle-Process CGCS和GES cluster/m它提供两种对底层阵列对数据库进时拥有文件系装其他软件就集群软件,前提,而上述做ASM,可以镜像,以提高赖第三方存储呢?下生成Ora员管理信息/nmapi/nmacluster/l是否有该文件名是ligs的位置在C自己的lib集群成员信第三方集群情e版本号9/ommunicat的数据。 Ometro clusOracleEx列进行镜像进行数据复系统的易管就可支持绝叫Oracle述第三方集以用于RAC高性能和安全储软件来搭cle RAC接(cluster mapi2/lib/pib/libskgx件,如果有kgxn2.so,CRS_HOME/lskgxn2.so信息是于情况时,CR/10/11),skions的缩写Oracle自带ster/extentended RA像,提供同城复制,可以实管理和裸设备绝大多数磁盘e clusterw集群则成了安下的共享磁全性(S.A.搭建RAC系统接口文件,这membershippa20_64,xn2.so。 有的话,在安指向上lib/目录;如文件。 换句于第三方集RS自己管理kgxp写,带的nded AC方城容实现备的盘阵ware安装磁盘M.E:统。 这个p简在安装面的如果句话集群,理成通过查询$CRS_HOME/log/hostname/cssd/ocssd.log可以看到css识别到的第三方集群,下面的例子分别是HACMP、SFRAC、SunCluster、ServiceGuide:CSSDxx-05-2715:09:43.4561029TRACE:clssnm_skgxninit:initialized skgxnversion(2/0/IBM AIXskgxn)CSSDxx-12-3021:44:56.1721029TRACE:clssnm_skgxninit:initialized skgxnversion(2/0/Veritas ClusterServer MMCSSDxx-08-1002:19:39.5723TRACE:clssnm_skgxninit:initialized skgxnversion(2/2/Oracle SolarisUDLM)CSSDxx-09-2918:57:53.3235TRACE:clssnm_skgxninit:initialized skgxnversion(2/0/Hewlett-Packard SKGXN2.0)在9i/8i中没有css/crs,该信息可以在后台进程lmon的trace文件中得到(在bdump中);在安装Oracle9i RAC/8i OPS的过程中,Oracle识别集群方法类似。 在多个平台上,如果两个节点没有正确链接libskgxn2文件,可能会导致第二个实例无法mount或出现ORA-600错误。 Oracle支持的RAC环境因为Oracle RAC本身比较复杂,在安装和管理中可能会遇到各种问题,涉及到OS、RDBMS、Cluster软件和网络、主机、存储等硬件,为了避免不必要的问题发生,在安装之前,我们需要确认安装环境是否满足要求,包括软件和硬件两方面,尤其是Vendor clusterware和OS的版本的兼容性需要注意,可以从metalink中得到最新的Oracle官方认证信息登陆Metalink.oracle.选择Certify,选择by product,选择real applicationserver,选择对应平台就可以得到。 下面列出一些关于硬件和平台支持的常见问题官方不支持的Vmware,Sun LDOM,Solaris LocalContainer/Zones官方支持的IBM LPAR,IBM VIOS(Virtual IOServer),Solaris GlobalContainers,RHEL GFS,ISCSI;私有网络(心跳线)的支持不支持使用交叉线,支持Infiniband RDS(10gR2之后)异构环境支持不同的硬件、但相同的软件(OS/Oracle)组成的集群,不支持32位与64位系统间的集群目前支持的NFS的server包括EMC CelerraFujitsu FilerNR1000Series IBMN SeriesNetApp FAS,F,G SeriesPillar DataSystems Axiom500Sun StorageTek5000Series Oracle?Clusterware的心跳Oracle clusterware使用两种心跳设备来验证成员的状态,保证集群的完整性;一是对voting disk的心跳,ocssd进程每秒向votedisk写入一条心跳信息;二是节点间的私有以太网的心跳,两种心跳机制都有一个对应的超时时间,分别叫做misscount和disktimeout misscount用于定义节点间心跳通信的超时,单位为秒;disktimeout,默认200秒,定义css进程与vote disk连接的超时时间;reboottime,发生裂脑并且一个节点被踢出后,这个节点将在reboottime的时间内重启;默认是3秒;其中misscount默认值见下表OS10g(R1&R2)11gR1使用第三方集群时Linux6030600Unix&Windows3030600用下面的命令查看上述参数的实际值1.#crsctl getcss misscount2.#grep misscount$CRS_HOME/log/hostname/cssd/ocssd.logCSSDxx-11-2722:29:42.3971TRACE:clssnmInitNMInfo:misscount setto600在下面两种情况发生时,css会踢出节点来保证数据的完整, (1)Private NetworkIO timemisscount,会发生split brain即裂脑现象,产生多个“子集群”(subcluster),这些子集群进行投票来选择哪个存活,踢出节点的原则按照下面的原则节点数目不一致的,节点数多的subcluster存活;节点数相同的,node ID小的节点存活。 (2)Vote DiskIO Timedisktimeout,踢出节点原则如下失去半数以上vote disk连接的节点将在reboottime的时间内重启;例如有5个vote disk,当由于网络或者存储原因某个节点与其中=3个vote disk连接超时时,该节点就会重启。 当一个或者两个vote disk损坏时则不会影响集群的运行。 可以手工修改这三个参数的值,单位都是秒(谨慎使用)$CRS_HOME/bin/crsctl setcss misscount$CRS_HOME/bin/crsctl setcss reboottime-force$CRS_HOME/bin/crsctl setcss disktimeout-force或者重新设置成默认值crsctl unsetcss misscountClusterware的私有网络在Oracle10g/11g中,Oracle的私有网络(private work)包括clusterware的私有网络和数据库实例的私有网络clusterware的私有网络主要包括css数据的传送,即用一种特殊的ping命令来检测其他机器的状态;数据库实例的私有网络,包括RDMS和ASM的,用于cache fusion(GCS/GES)数据的传输。 当我们只使用一个私有网卡的时,同时传送上面两类的数据。 如果我们在安装时指定了两个私有网卡,首先使用如下面$CRS_HOME/bin/oifcfg getif命令来得到所有网络接口列表,这些信息保存在ocr中#oifcfg getifen010.200.56.0global publicen3192.168.3.0global cluster_interconnect en5192.168.5.0global cluster_interconnect情况会有所不同,clusterware的私有网络,目前(10g/11g)只能使用一个网络接口,对应于/etc/hosts中定义的private hostname的那个网卡,可以通过查看ocssd的log来确定:当/etc/hosts中定义private hostname为192.168.3.233时看到CSSD1029TRACE:clssgmPeerListener:Listening on(ADDRESS=(PROTOCOL=tcp)(DEV=12)(HOST=192.168.3.233)(PORT=45527)这个是与其他节点css进行通信的信息CSSD1029TRACE:clssgmConnectToNode:node2clsc(ADDRESS=(PROTOCOL=tcp)(DEV=12)(HOST=192.168.3.234)(PORT=37732)-size64ver1当/etc/hosts中定义private hostname为192.168.5.233时,css使用了另外一个网络CSSD1029TRACE:clssgmPeerListener:Listening on(ADDRESS=(PROTOCOL=tcp)(DEV=12)(HOST=192.168.5.233)(PORT=50415)Oracle实例的私有网络Oracle实例的心跳网络使用方式的优先级从高到低如下 (1)如果使用了第三方集群的IPC,替换了对应$ORACLE_HOME/lib/libskgxnX.so文件,那么数据库实例的cache fusion会使用对应的网络协议,而忽略ocr中和数据库初始化参数中cluster_interconnects的配置,下面的例子当中就使用了VCSIPC,可以从对应的alert log中验证db_name=r10g open_cursors=300pga_aggregate_target=1237319680Fri Mar1314:00:35xxOracle instancerunning withODM:Veritas6.0ODM Library,Version1.1cluster interconnectIPC version:VERITAS IPC5.1.0.015:16:24Feb12xxIPC Vendor86proto76Version1.0PMON startedwith pid=2,OS id=4399196DIAG startedwith pid=3,OS id=3936288 (2)如果没有使用第三方IPC,则优先使用数据库初始化参数的cluster_interconnects配置,这个参数的格式为if1:if2:.:ifn,可以不同于crs的私有网络,需要注意的是,该参数不支持多个网卡的故障切换; (3)没有上面两个配置,数据库会使用oifcfg列出的心跳的网络,在对应的告警日志中可以得到Interface type1en6192.168.61.0configured fromOCR foruse asa clusterinterconnect Interfacetype1en010.182.0.0configured fromOCR foruse asa public interface Clustermunication isconfigured touse thefollowing interface(s)for thisinstance192.168.61.0 (4)没有1和2的配置,并且oifcfg也没有配置cluster_interconnect,则数据库会使用共有网络进行心跳信息的传输,这种配置其实是配置失败的情况,数据库虽然能够启动,但急需DBA修正,在告警日志中可以看到WARNING:No clusterinterconnect hasbeen specified.Depending onthe municationdriver configuredOracle clustertraffic maybe directedto thepublicinterfaceof thismachine.Oracle remendsthat RACclustered databasesbe configuredwith aprivate interconnectfor enhancedsecurity andperformance.对于一个已经有的系统,可以用下面几种方法确认数据库实例的心跳配置,包括网卡名称,IP地址,使用的网络协议 (1)最简单的方法可以在数据库的后台报警日志中得到。 具体参见上面列出的告警日志; (2)使用oradebug;SQLoradebug setmypidSQLoradebug ipcSQLoradebug tracefile_name找到对应trace文件的这一行socket no10IP10.0.0.1UDP49197 (3)从数据字典中得到(V$CLUSTER_INTERCONNECTS和V$CONFIGURED_INTERCONNECTS),或查询x$ksxpia SQLSELECT*FROM V$CLUSTER_INTERCONNECTS;-Oracle11g开始支持此试图NAME IP_ADDRESS IS_SOURCE-en3192.168.2.31NO OracleCluster Repositoryen5192.168.3.231NO OracleCluster RepositorySQLSELECT*FROM V$CONFIGURED_INTERCONNECTS;NAME IP_ADDRESS IS_SOURCE-en3192.168.2.31NO OracleCluster Repositoryen5192.168.3.231NO OracleCluster Repositoryen010.200.59.231YES OracleCluster RepositorySQLselect*from x$ksxpia;ADDR INDXINST_ID PUB_KSXPIA PICKED_KSXPIA NAME_KSXPIA IP_KSXPIA-00000001104AAF2801N OCRen6192.168.61.12100000001104AAF2811Y OCRen010.182.6.211为了避免心跳网络成为系统的单一故障点,简单地我们可以使用操作系统绑定的网卡来作为Oracle的心跳网络,以AIX为例,我们可以使用etherchannel技术,假设系统中有ent0/1/2/3四块网卡,我们绑定2和3作为心跳#mkdev-c adapter-s pseudo-t ibm_ech-a adapter_names=ent2,ent3#将生成网卡设备ent4#/usr/lib/methods/defif#lsdev-Cc adapter|grep ent#lsattr-El ent4#ifconfig en4i192.168.3.231mask255.255.255.0up在Solaris上可以使用dladm来创建链路聚合:#dladm create-aggr-d bge2-d bge31#ifconfig aggr1plumb192.168.3.231mask255.255.255.0up#dladm show-aggr#ifconfig-a同样在HPUX和Linux对应的技术分别叫APA和bonding。 UDP私有网络的调优当使用UDP作为数据库实例间cashe fusion的通信协议时,在操作系统上需要调整相关参数,以提高UDP传输效率,并在较大数据时避免出现超出OS限制的错误 (1)UDP数据包发送缓冲区大小通常设置要大于(db_block_size*db_multiblock_read_count)+4k, (2)UDP数据包接收缓冲区大小通常设置10倍发送缓冲区; (3)UDP缓冲区最大值设置尽量大(通常大于2M)并一定要大于前两个值;各个平台对应查看和修改命令如下Solaris查看ndd/dev/udp udp_xmit_hiwat udp_recv_hiwat udp_max_buf;修改ndd-set/dev/udp udp_xmit_hiwat262144ndd-set/dev/udp udp_recv_hiwat262144ndd-set/dev/udp udp_max_buf2621440AIX查看no-a|egrep“udp_|tcp_|sb_max”修改no-p-o udp_sendspace=262144no-p-o udp_recvspace=1310720no-p-o tcp_sendspace=262144no-p-o tcp_recvspace=262144no-p-o sb_max=2621440Linux查看文件/etc/sysctl.conf修改sysctl-w .core.rmem_max=2621440sysctl-w .core.wmem_max=2621440sysctl-w .core.rmem_default=262144sysctl-w .core.wmem_default=262144HP-UX不需要HP TRU64查看/sbin/sysconfig-q udp修改文件/etc/sysconfigtab i:udp_recvspace=65536udp_sendspace=65536Windows不需要常见安装、管理错误1.安装CRS失败,或执行root.sh报错,可能原因 (1)节点间的时间不同步,解决方法使用ntp服务 (2)Linux下启用了默认的防火墙,导致执行root.sh报错Failure atfinal checkof OracleCRS stack.10解决方法禁用iptables,注释/etc/pam.d/other;#service iptables stop;#chkconfig iptablesoff. (3)裸设备的权限问题,可能因为操作系统重新启动后权限发生变化。 (RHEL4)解决方法把chown oracle:dba/dev/raw/raw*命令加入到/etc/rc.local中,每次开机自动执行或者修改文件/etc/udev/permissions.d/50-udev.permissions第113行raw/*:root:disk:0660改成raw/*:oracle:dba:0660 (4)Solaris使用了包括cylinder0的磁盘分区来存储OCR或者vote disk。 解决办法相关分区不应该包括cylinder0,可以从1开始。 (5)使用的公网IP地址不可路由,解决方法添加相关网关 (6)在/etc/hosts中没有loopback地址,即127.0.0.1localhost (7)主机名含有大些字母、减号或者下划线等特殊字符; (8)HPUX中oracle不要使用gnu的bash,修改使用默认shell; (9)检查操作系统、第三方集群是否是oracle官方支持的,是否需要补丁,比如在AIX5.3+HACMP上安装Oracle10g/11g RAC,oslevel就需要06及以上; (10)AIX平台,需要将共享设备的reserve_policy(reserve_lock)属性修改为no_reserve(no); (11)所有节点看到的OCR和vote设备的路径名应该一致,如果不一致,可以用软连接解决; (12)心跳设备问题或者ocr/votedisk访问问题,unix/linux查看有无/tmp/crsctl.*文件,得到错误信息; (13)在CRS旧的安装的环境中重新安装失败解决方法dd清除ocr和vote disk,并使用下面语句清理旧的crs配置文件rm-rf/usr/tmp/.oracle/var/tmp/.oracle/tmp/.oracle/etc/oracle/*/var/opt/oracle/*rm-rf/etc/init.cssd/etc/init.crs*/etc/init.evmd/etc/init.d/init.cssd/etc/init.d/init.crs rm-rf/etc/init.d/init.crsd/etc/init.d/init.evmd/etc/rc3.d/K96init.crs/etc/rc3.d/S96init.crs rm-rf/etc/rc.d/rc2.d/K96init.crs/etc/rc.d/rc2.d/S96init.crs2客户端有时候报错ORA-12545:Connect failedbecause targethost orobject doesnot existORA-12545:因目标主机或对象不存在,连接失败解决方法设置local_listener初始化参数3如果选择节点界面出不来。 (1)HACMP环境中需要检查o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论