ORACLE RAC资料收集.doc_第1页
ORACLE RAC资料收集.doc_第2页
ORACLE RAC资料收集.doc_第3页
ORACLE RAC资料收集.doc_第4页
ORACLE RAC资料收集.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

Oracle RAC 资料收集http:/www.D数据库吧oracle rac日常基本维护命令2Oracle RAC性能调整12详解Oracle RAC入门和提高27ORACLE RAC数据库配置Dataguard环境49老白对于RAC应用调优的建议51oracle rac日常基本维护命令所有实例和服务的状态$ srvctl status database -d orclInstance orcl1 is running on node linux1Instance orcl2 is running on node linux2单个实例的状态$ srvctl status instance -d orcl -i orcl2Instance orcl2 is running on node linux2在数据库全局命名服务的状态$ srvctl status service -d orcl -s orcltestService orcltest is running on instance(s) orcl2, orcl1特定节点上节点应用程序的状态$ srvctl status nodeapps -n linux1VIP is running on node: linux1GSD is running on node: linux1Listener is running on node: linux1ONS daemon is running on node: linux1ASM 实例的状态$ srvctl status asm -n linux1ASM instance +ASM1 is running on node linux1.列出配置的所有数据库$ srvctl config databaseorcl显示 RAC 数据库的配置$ srvctl config database -d orcllinux1 orcl1 /u01/app/oracle/product/10.2.0/db_1linux2 orcl2 /u01/app/oracle/product/10.2.0/db_1显示指定集群数据库的所有服务$ srvctl config service -d orclorcltest PREF: orcl2 orcl1 AVAIL:显示节点应用程序的配置 (VIP、GSD、ONS、监听器)$ srvctl config nodeapps -n linux1 -a -g -s -lVIP exists.: /linux1-vip/00//eth0:eth1GSD exists.ONS daemon exists.Listener exists.显示 ASM 实例的配置$ srvctl config asm -n linux1+ASM1 /u01/app/oracle/product/10.2.0/db_1集群中所有正在运行的实例SELECTinst_id, instance_number inst_no, instance_name inst_name, parallel, status, database_status db_status, active_state state, host_name hostFROM gv$instanceORDER BY inst_id;INST_ID INST_NO INST_NAME PAR STATUS DB_STATUS STATE HOST- - - - - - - -1 1 orcl1 YES OPEN ACTIVE NORMAL rac12 2 orcl2 YES OPEN ACTIVE NORMAL rac2位于磁盘组中的所有数据文件select name from v$datafileunionselect member from v$logfileunionselect name from v$controlfileunionselect name from v$tempfile;NAME-+FLASH_RECOVERY_AREA/orcl/controlfile/current.258.570913191+FLASH_RECOVERY_AREA/orcl/onlinelog/group_1.257.570913201+FLASH_RECOVERY_AREA/orcl/onlinelog/group_2.256.570913211+FLASH_RECOVERY_AREA/orcl/onlinelog/group_3.259.570918285+FLASH_RECOVERY_AREA/orcl/onlinelog/group_4.260.570918295+ORCL_DATA1/orcl/controlfile/current.259.570913189+ORCL_DATA1/orcl/datafile/example.257.570913311+ORCL_DATA1/orcl/datafile/indx.270.570920045+ORCL_DATA1/orcl/datafile/sysaux.260.570913287+ORCL_DATA1/orcl/datafile/system.262.570913215+ORCL_DATA1/orcl/datafile/undotbs1.261.570913263+ORCL_DATA1/orcl/datafile/undotbs1.271.570920865+ORCL_DATA1/orcl/datafile/undotbs2.265.570913331+ORCL_DATA1/orcl/datafile/undotbs2.272.570921065+ORCL_DATA1/orcl/datafile/users.264.570913355+ORCL_DATA1/orcl/datafile/users.269.570919829+ORCL_DATA1/orcl/onlinelog/group_1.256.570913195+ORCL_DATA1/orcl/onlinelog/group_2.263.570913205+ORCL_DATA1/orcl/onlinelog/group_3.266.570918279+ORCL_DATA1/orcl/onlinelog/group_4.267.570918289+ORCL_DATA1/orcl/tempfile/temp.258.570913303 21 rows selected.属于“ORCL_DATA1”磁盘组的所有 ASM 磁盘SELECT pathFROM v$asm_diskWHERE group_number IN (select group_numberfrom v$asm_diskgroupwhere name = ORCL_DATA1);PATH-ORCL:VOL1ORCL:VOL2二: 启动/停止RAC集群 确保是以 oracle UNIX 用户登录的。我们将从rac1节点运行所有命令: # su oracle$ hostname Rac1停止 Oracle RAC 10g 环境 第一步是停止 Oracle 实例。当此实例(和相关服务)关闭后,关闭 ASM 实例。最后,关闭节点应用程序(虚拟IP、GSD、TNS 监听器和 ONS)。 $ export ORACLE_SID=orcl1$ emctl stop dbconsole$ srvctl stop instance -d orcl -i orcl1$ srvctl stop asm -n rac1$ srvctl stop nodeapps n rac1启动 Oracle RAC 10g 环境 第一步是启动节点应用程序(虚拟 IP、GSD、TNS 监听器和 ONS)。当成功启动节点应用程序后,启动 ASM 实例。最后,启动 Oracle 实例(和相关服务)以及企业管理器数据库控制台。 $ export ORACLE_SID=orcl1$ srvctl start nodeapps -n rac1$ srvctl start asm -n rac1$ srvctl start instance -d orcl -i orcl1$ emctl start dbconsole使用 SRVCTL 启动/停止所有实例 启动/停止所有实例及其启用的服务。我只是觉得有意思就把此步骤作为关闭所有实例的一种方法加进来了! $ srvctl start database -d orcl$ srvctl stop database -d orcl Oracle RAC性能调整1、CPU和wait time调节尺寸 当在调节system时,比较系统的CPU time 和wait time是十分重要的,从而确定在相应时间中多少是用于有效的工作时间,多少是在等待由其他进程占用的资源。从一般规律来看,wait time占主要部分的系统比CPU time占主要部分的系统更需要调节。另一方面,CPU的大量使用可能是由不好的SQL写操作造成了。尽管CPU time与wait time的比率总是随着系统装载的增加而趋于减小的,wait time的急剧增加是存在冲突的表现,必须被有效的处理。给node增加更多的CPUs或是给cluster增加nodes,在资源竞争中提供的benefit是非常有限的。相反,当加载系统装载增加时,CPU time的比率没有大幅下降的系统可能规模较好,更可能通过添加CPUs或是RAC Instances获得更多的benefit。note:如果CPU time比率在前五个事件中,则automatic workload repository(AWR)报告在Top 5 Event段中显示了CPU时间和wait 时间。2、RAC特有的调节尽管对于RAC有其特有的调节方法,例如互联的传输,但通过对每个Instance进行像single-Instance 系统那样的调节会带来较大的benefit。至少它应该tuning的第一步。显然,如果在single-Instance环境中存在序列化问题,在RAC中,该问题会更加严重。RAC-reactive调节工具主要有:特定的等待事件、系统和队列统计、database control 性能页面、statspack和AWR 报告RAC-proactive调节工具:AWR snapshots、ADDM(Automatic Database Diagnostic Monitor) 报告如上,RAC的调节工具和single-Instance系统的基本类似。但部分特殊等待事件和统计信息的结合是RAC比较关键的调节情况。3、分析在RAC中cache fusion(缓冲融合)的影响在全局缓冲中访问blocks的影响和维护cache的相融合(coherency)是通过下面来表现的:* 对当前和cr blocks的全局缓冲服务统计:例如,gc当前的blocks received、gc cr blocks received等。* 全局缓冲服务等待事件(对gc 当前 block 3-way、gc cr grant 2-way等)cache fusion传输的响应时间是由物理交换链接组件、IPC协议和GCS协议使用的messaging时间和processing 时间决定的。除了相关的log写操作,它是不受磁盘I/O因素的影响的。cache fusion 协议不需要对data files进行I/O,从而确保缓冲的coherency。并且RAC并不会引起比非clustered Instance更多的I/O操作。4、RAC操作特有的潜在因素在RAC AWR报告中,在RAC统计一章包含了一个表,用于记录一些全局cache services和全局队列services操作的平均时间。该表被称作是Global cache and Enqueue services: workload characteristics。这些潜在因素应该得到定期的监控,并且应该对部分值的重大增加进行调查。基于经验观察,此表显示了一些代表值。引起这些潜在因素变更的因素主要有:* IPC协议的使用。用户模式的IPC协议更快* 当系统在CPU高效使用的情况下,时序安排的延迟* 对当前blocks 服务的log flush其他在AWR报告中,RAC潜在因素多数是从V$GES_STATISTICS中获得的,并可能对调试非常有效。但无需进行频繁的监控。note:处理缓存中一致读(consistent read CR)block的时间与(build time+flush time+send time)一致;处理缓存中当前block请求的时间与(pin time+ flush time+ send time)一致。5、RAC的等待事件分析哪些sessions在等待是一个确定时间开销在哪里的重要方法。在RAC中,等待时间主要归因于影响获得实际请求结果的事件上。例如,当在某Instance上的一个session在Global cache查询某个block,并不知道是否将收到cache在其他Instance中的data或是是否将获得从disk上读取的消息。对于Global cache的等待事件反映了准确信息并等待全局缓冲block或是messages。它们主要是按照下述进行分类的:* 在较广的分类的概括,被称作是cluster wait class* 用占位符代表的临时事件,主要出现在block的等待* 当获得请求结果的精确事件RAC的等待事件对性能分析是非常重要的。它们被应用于ADDM中,从而获得cache fusion方面的精确诊断。1)等待事件视图对于一个事件的总的等待信息V$SYSTEM_EVENT一个session的等待事件分类V$SESSION_WAIT_CLASS一个session等待的事件V$SESSION_EVENT这三个视图汇集了等待时间、timeouts和特定事件等待次数。最近活动的sessions的活动行为V$ACTIVE_SESSION_HISTORY每个活动的session最近10个等待事件V$SESSION_WAIT_HISTORY活动的sessions正在等待的事件V$SESSION_WAIT受到互联因素影响的一致的SQL语句V$SQLAREA这四个视图用于实时监控等待的sessions,包括最近的等待时间历史信息。通过其name和假设的参数,来区分单个事件自己。对于多数Global cache等待事件,参数包括文件号、块号、块的类型和访问模式的配置(如held和request模式)。在这些视图中显示并统计的等待时间在调试相应时间时是非常有用的。注意,等待时间是累积计算的,有最大的该值的不一定就是问题所在。但可用的CPU被占尽或是一个Application的相应时间过长,top 等待事件提供了有效的性能诊断信息。note:在V$SQLAREA中使用CLUSTER_WAIT_TIME字段辨别SQL语句受到互联因素的影响程度,或是在AWR snapshot上执行一个ADDM报告。2)Global cache wait event概览Oracle Database 10g中主要的Global cache等待事件的简要描述如下:* gc current/cr request:当一个进程访问需要一个或者多个块时,oracle会首先检查自己的CACHE是否存在该块,如果发现没有,就会先通过global cache赋予这些块共享访问的权限,然后再访问。假如,通过global cache 发现这些块已经在另一个实例的CACHE里面,那么这些块就会通过CACHE FUSION,在节点之间直接传递,同时出现global cache cr request等待事件。current 和cr的不同,如果是读的话,那就是cr request,如果是更改的话,那就是current request。* gc current/cr 2/3-way:具体解释见后面实例* gc current/cr block busy:一个current 或是 cr block被请求并收到,但LMS并没有立即发送,因为某些特定的推迟发送的情况被发现。* gc current/cr grant 2-way:当请求一个block时,receive了一个message,该message应该是赋予了requester instance可以访问这个block。如果这个block没有在local cache中,则随后的动作就是去磁盘上读该block。(插一点别的,oracle的对数据的访问的控制,是在row级别和object级别,但是实际操作的对象却是block,传递的对象也是block,对于一个block,来说,会有一个master instance,也就是这个block的管理者,然后还有零到多个参与者,比如有的instance为了读一致性,可能会在自己的local cache中存着该block的过去某个时间的image,有的instace为了修改该block,可能会在自己的local cache中存着该block的past image)* gc current grant busy:当请求一个current block时,收到grant message。该busy表示请求被阻塞,主要是其他请求在前面或是该请求不能马上被处理。* gc current/cr block/grant congested :无论是对于current还是cr类型block的请求,block或者grant都获得了,但是在过程中有拥堵。也就是在内部的队列中等待超过1msec(纳秒)。* gc current/cr failure/retry:一个block被请求,却收到失败的状态或是有其他意外事件的发生。* gc buffer busy:对此,我的理解就是gc的内存不足,有大量的block请求,需要等待将刚刚被pin入内存并使用的block unpin后再使用。(好像没理解对,看后面实例吧)3)2-way block request实例上图显示了当一个master Instance请求一个block,该block不在本地cache中时,具体的操作。这里假设master Instance为SGA1,SGA2中包含了请求的block。具体如下:SGA1向SGA2直接发送一个请求,此时,SGA1发生gc current block request等待事件当SGA2接到请求,它的本地LGWR进程需要flush 部分恢复信息到其本地redo log文件中。例如,如果缓冲的block被频繁的修改,该修改尚未被写入log中,LMS就需要在传输block前令LGWR对log进行flush。这可能会增加一个延迟,可能在请求的node上显示一个busy wait。随后,SGA2发送请求的block给SGA1。当该block到达SGA1,等待事件完成,这被反映为gs current block 2-way。note:如果R表示在请求者的time,W为消息传输的time延迟,S为在server的time。则整个来回的总时间为:R(send) + W(small msg) + S(process msg, pocess block, send) + W(block) + R(receive block)4)3-way block request的实例在此,与上一个实例不同的就是block的请求者与block的master、block的缓冲不在同一个node上。所以总体时间为:R(send) + W(small msg) + S(process msg, send) + W(small msg) + S(process msg, process block, send) + W(block) + R(receive block)当远程读被挂起,任何在请求Instance上的尝试读写缓冲在buffer中的data 的进程将等待gc buffer busy事件,直到block到达。5)2-way grant实例6)considered Lost Blocks实例如图,此情况为:在请求的block到达前先收到了side channel message。在普通环境中,这是不会发生的。多数情况下它是转换问题的显示或是缺少私有互联。这常与OS或是网络的配置问题有关。note:可尝试避免此类现象的发生,通过减小参数DB_FILE_MULTIBLOCK_READ_COUNT的值,使其低于16 。7)Global 队列等待overview队列等待并不是RAC特有的,但是在RAC环境中涉及到Global lock的操作。多数对队列的Global请求是同步的,并且有前台进程等待。因此,队列冲突在RAC环境中更明显。多数队列等待发生在下列类型的队列:* TX:transaction 队列,用于事务的划分和追踪* TM:table或是partition队列,用于保护DML执行期间table的定义* HW:高水位线队列,取得用于新的block操作的同步* SQ:sequence队列,用于Oracle sequence number的序列化增加* US:undo segment 队列,主要用于自动undo 管理(AUM)的特性* TA:主要用于事务恢复的队列上述情况下,等待是同时的,可能造成严重的序列化,从而导致RAC环境的恶化。6、session和system 统计使用基于V$SYSSTAT的系统统计使得基于平均的Database描述成为可能。它是很多通过各种工具和方法获得Database的度量和比率的基础,例如AWR、statspack和Database control。为了进一步对sessions进行深化的了解,V$SESSTAT视图是非常有用的。此外,如果使用了MODULE、ACTION模式的统计,将更有效。V$SEGMENT_STATISTICS对于RAC环境也非常重要,因为它跟踪了CR的数量以及object当前获得的blocksRAC相关的统计可以被分为以下几组:* Global cache service 统计:gc cr blocks received, gc cr block recevie time等* Global Enqueue service 统计:global enqueue gets等* messages发送的统计:gcs messages sent和ges messages sent可以通过查询V$ENQUEUE_STATISTICS确定哪个队列对Database service时间和最终的响应时间有最大的影响。V$INSTANCE_CACHE_TRANSFER显示了每个block类中有多少current和CR blocks从Instance中接受,包括多少传输引起延迟。7、RAC tuning的tips首先,在RAC环境中,必须先利用传统的调节技术对每个Instance进行调节,此外,下面的内容也很重要:* 尽量避免较长的全表扫描来缩小GCS的请求。由Global CR请求引起的开支主要是因为当所查询的结果在本地cache中不存在,先尝试在其他cache中尝试找到相应数据。* 自动段空间管理可以给table blocks提供Instance 关联(affinity)* 增加sequences的caches改善Instance关联的通过sequences获得索引关键字的值的性能。* 当把range或是list类型的partitioning和data-dependent routing相结合,可以有效的提高性能。* hash partitioning可有效降低buffer busy的冲突,使得buffer访问分布格局松散,可以使buffers用于更多的并发访问。* 在RAC中,library cache和row cache操作都是全局协调的。所以过度的解析意味着额外的互联传输。当packages或是procedure需要被重新编译时,需要以排他模式获得library cache locks。* 因为transaction locks 是全局协调的,在RAC中,也应的到特殊的对待。例如使用tables代替Oracle sequences产生唯一numbers是不推荐的,可能引起严重的冲突,即使是在single Instance系统中。* 选择性不好的indexes不会提高查询性能,反而会降低DML操作的性能。在RAC环境中,unselective index blocks可能导致Instance间的冲突,增加cache对indexes传输的的频度。8、index block冲突的思考由于index多数是单调递增的,往往造成热块争用的问题;而且对于大量的insert操作,可能引起频繁的splits;所有leaf block的访问都是通过root block的。所以index可能造成性能的降低。对此:* 全局索引hash partitioning* 增加sequence cache,如果必要的话9、undo block 考虑当index blocks包含了从多个Instances发起的事务被频繁的读,过度的undo block传输和undo buffers的争用经常会发生。当一个select语句需要读取一个block,该block正被一个active的事务使用,就不得不用undo来重建一个CR版本。如果block所在的active 事务属于不只一个Instance,则需要结合本地和远程undo information用于一致读,依据被多个Instances修改的index blocks的数量和transaction的并发,undo block的传输可能成为瓶颈。这多发生在频繁读取近期插入的数据但提交不频繁的应用中。对此应:* 使用shorter transaction从而降低这样的可能性:从cache中获得的index block含有未提交的data,从而降低访问undo information用于一致读的可能* 增加sequence cache size,从而减少需要进行远程undo 信息组合的需求。10、高水位线的考虑数据的insert操作是业务领域的主要功能,新的blocks需要频繁的分配给segment。如果data的insert操作比率较高,如果没有找到空闲空间时,需要申请新的blocks。这需要获得相应的high-water mark(HWM)队列。因此,最为普遍的状况为:* 较高比率的队列等待时间 enq: HW contention* 较高比率的等待时间对于 gc current grant events前者是HWM队列序列化的结果,后者是由于当前访问新的data blocks是需要对新的blocks进行操作。在RAC环境中,这个空间管理操作的时间长短是与获得HW队列和获得所有新的blocks的Global locks所用的时间成比例的。这个时间在普通环境中比较小,因为在访问新的blocks时是不存在任何冲突的。然而,这种冲突可能会出现在有大量data load的业务需求中。对此,建议在本地管理及自动空间管理segments中定义一致的较大的extent size,从而适当解决相应的问题。11、automatic workload repository1)overviewAWR是Oracle Database 10g提供的基础服务工具,用于收集、维护和应用统计信息来检测问题并进行自我的调节。AWR主要由两部分组成:* 一个在内存的统计收集设施,由Oracle Database 10g使用并收集统计信息。这些统计被存储在内存中,可以通过动态性能视图查看到(V$)* AWR snapshots 代表了设备的持久部分。可以通过data dictionary视图和Database control来访问。处于以下几个原因,统计需要保存在永久的设备中:* 统计需要用于激活Instance crashes* 一些分析需要历史数据作为基线的比较* 内存的溢出:当由于内存不足,旧的统计数据需要被新的统计数据替换时,可以将旧的统计数据存储在磁盘上以备后用统计的内存版本由新的后台进程manageability monitor(MMON)定期的传输的disk上。通过AWR,Oracle Database提供了自动捕获历史统计data的方法,无需DBA干涉。2)AWR tablesAWR包括两类表:* 元数据表:用于控制、处理、描述AWR 表。例如,Oracle Database 使用元数据表来确定何时执行snapshots,并将什么数据捕获到disk上。此外,元数据包含了snapshots_id和相应通讯时间之间的映射。* 历史统计表:存储了Oracle Database的历史统计信息。每个snapshots就是在特定时间点捕获的内存中的Database 统计数据。AWR表的names都有 一个WRx$前缀,其中x指明了tables的种类:* WRM$ 表存储了AWR中的元数据* WRH$表中存储了历史数据和snapshots可以是使用字典视图来查询AWR数据。在AWR中任何相关的历史信息有DBA_HIST_的前缀AWR使用分区用于有效的查询和数据的清理。snapshots tables是按照以下分类组织的:file 统计、一般系统统计、并发统计、Instance调节统计、SQL 统计、segment 统计、 undo 统计、time-model 统计、恢复统计和RAC统计。3)在RAC中的AWR snapshots在RAC环境中,每个AWR snapshot是从所有的活动的Instances获得data的。从每个活动的Instances获得的每个snapshot数据集合是大致来自相同的时间点的。此外,每个Instance的数据是单独存储的,是以Instance的标识符来区分的。例如,buffer_busy_wait统计显示了在每个Instance上buffer waits的次数。AWR不会存储cluster中的合计数据。换句话说,data是存放在各自的Instance上的。由AWR产生的统计snapshots可以用于评估、产生报告显示data 摘要。12、statspack 和AWR可以通过手工的对statspack操作获得历史统计数据。但是将statspack获得的数据迁移到AWR中是不支持的,也不存在为其创建的视图13、Automatic Database diagnosis monitor默认下,Database每隔60分钟,会自动的从SGA中捕获相应的统计信息,并将其以snapshots的形式存储在AWR中。这些snapshots被存储在disk上,和statspack snapshots是一致的,但比statspack的信息更精确。此外,ADDM是通过在每个Database Instance中的新的MMON进程自动运行相应的计划,来主动找到问题的所在。每次获得一个snapshot。ADDM会被触发执行一个与上一个snapshots进行阶段一致性比较的操作。每个ADDM分析被存储在AWR中(WRI$表)也可通过EM访问。1)ADDM问题分类ADDM使用树形结构代表所有可能需要调节的问题。该tree是基于新的等待和时间统计模式的。树根代表的是Database当前的症状详解Oracle RAC入门和提高本文将详细讲述Oracle RAC入门和提高,希望对广大Oracle数据库管理人员以及致力于学习Oracle数据库的管理人有所帮助。Oracle RAC 产品概述Oracle Real Application Server,真正应用集群,简称Oracle RAC ,是Oracle的并行集群,位于不同服务器系统的Oracle实例同时访问同一个Oracle数据库,节点之间通过私有网络进行通信,所有的控制文件、联机日志和数据文件存放在共享的设备上,能够被集群中的所有节点同时读写。其系统架构如下图:RAC提供的好处包括:(1)多节点负载均衡;(2)提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化,下表是RAC与传统的双机热备方式切换时间的对比:(3)通过并行执行技术提高事务响应时间-通常用于数据分析系统;(4)通过横向扩展提高每秒交易数和连接数 ;-通常对于联机事务系统;(5)节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约相应维护成本;(6)可扩展性好,可以方便添加删除节点,扩展硬件资源;RAC的缺点有:相对单机,管理更复杂,要求更高;在系统规划设计较差时性能甚至不如单节点;可能会增加软件成本(如果使用高配置的pc服务器,Oracle一般按照CPU个数收费)在Oracle9i之前,RAC的名称是OPS (Oracle parallel Server)。RAC 与 OPS 之间的一个较大区别是,RAC采用了Cache Fusion(高速缓存合并)技术。在 OPS 中,节点间的数据请求需要先将数据写入磁盘,然后发出请求的节点才可以读取该数据。使用Cache fusion时,RAC的各个节点的数据缓冲区通过高速、低延迟的内部网络进行数据块的传输。Oracle RAC在中国各行各业使用都比较广泛,包括通信移动、金融服务、社会保障和电子商务等,据Oracle统计,2007财年中国有500多家企业使用Oracle实时应用集群,考虑到未登记信息,实际数字更高于这一数字。典型的用户包括:中彩在线/OLTP/4节点/10gR2/AIX5.3、淘宝/DataWarehouse/4节点/10gR2/RHEL4、北京社保/6节点 /HP_Alpha/ MA8000、建行证券系统/2节点/IBM_P595/EMC_DMX3、上海电力/2节点/Alpha_GS160、广东移动、山东网通等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 monitor for the cluster. 用于保护共享数据IO fencing。仅在没有使用vendor的集群软件状态下运行(4)evmd :事件检测进程,由oracle用户运行管理三、Clusterware使用的共享设备(1) Oracle Cluster Registry(OCR):记录集群的配置信息;(2) Voting disk : 即投票盘,保存节点的成员信息,当配置多个投票盘的时候个数必须为奇数,每个节点必须同时能够连接半数以上的投票盘才能够存活;四、安装路径的选择注:(1)在Oracle RAC中,软件不建议安装在共享文件系统上;包括CRS_HOME和ORACLE_HOME,尤其是CRS软件,推荐安装在本地文件系统中,这样在进行软件升级,以及安装patch和patchset的时候可以使用滚动升级(rolling upgrade)的方式,减少计划当机时间。另外如果软件安装在共享文件系统也会增加单一故障点。(2)如果使用ASM存储,需要为asm单独安装ORACLE软件,独立的ORACLE_HOME,易于管理和维护,比如当遇到asm的bug需要安装补丁时,就不会影响RDBMS文件和软件。(3)在Oracle 11gR2中将新增存储选项:acfs (Oracle ASM Cluster File System)第三方集群在Oracle9i中,除了Windows和Linux,在安装RAC之前必须先安装vendor clusterware,即第三方集群,包括IBM的HACMP, HP的ServiceGuard for oracle RAC, Sun cluster,Veritas SFRAC等,这一类的集群软件为Oracle RAC提供了下面的功能:(1)共享的逻辑卷管理或者集群文件系统用于存放数据文件;(2)提供了统一的集群的成员组管理;(3)使用更健壮的SCSI-3 PGR机制来防止心跳故障(即裂脑split brain)导致的数据损坏,这种功能一般叫做IO fencing;(4)提供效率更高的、更低延迟的心跳网络用于cache fusion,可以相对减少TCP/IP的开销,包括:HP SGeRAC: HMP (Hyper Messaging Protocol),Sun Cluster: RSM (Remote Shared Memory),Veritas SFRAC: LLT (low-latency transport),Compac True Cluster: RDG (reliable data grams);通常如果要使用第三方集群的心跳协议,需要将$ORACLE_HOME/lib/libskgxpX.so文件替换为第三方集群软件提供的libskgxpX.so文件(其中X代表Oracle版本号9/10/11),skgxp 是System Kernel Generic Interface Inter-Process Communications的缩写,是oracle开放的一个应用接口,用于传输GCS和GES 的数据。Oracle自带的libskgxp文件定义的传输协议是UDP/IP。5)提供扩展的容灾方案,例如campus cluster/metro cluster/extended RAC;如下图, 以Veritas的SFRAC为例,它提供两种Oracle Extended RAC方案,方案一是使用Veritas Volume Manager对底层阵列进行镜像,提供同城容灾级别的实时数据保护;方案二使用GCO/VVR对数据库进行数据复制,可以实现距离更远、超过10km广域网的容灾;(6)Veritas SFRAC 还提供了以下特性:补充的Oracle ODM,可以使Oracle同时拥有文件系统的易管理和裸设备的性能;标准的多路径软件(DMP),不需要再安装其他软件就可支持绝大多数磁盘阵列,在异构SAN环境中有更好的兼容性;从Oracle10g起,Oracle提供了自己的集群软件,叫Oracle clusterware简称CRS,这个软件是安装oracle rac的前提,而上述第三方集群则成了安装的可选项。同时提供了另外一个新特性叫做ASM,可以用于RAC下的共享磁盘设备的管理,还实现了数据文件的条带化和镜像,以提高性能和安全性 (S.A.

温馨提示

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

最新文档

评论

0/150

提交评论