Oracle-RAC-Cache-Fusion-系列八:Oracle-RAC-分布式资源管理(一).docxVIP

Oracle-RAC-Cache-Fusion-系列八:Oracle-RAC-分布式资源管理(一).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle RAC Cache Fusion 系列八: Oracle RAC 分布式资源管理(一) 从Oracle8开始,DLM数据库(存储有关资源,锁,进程的信息)已集成在Oracle SGA中。DLM内存区用于存储所有锁相关的master节点。DLM不提供锁定资源的能力,但是它会将资源提供为可锁定实体。在Oracle8i中,主节点与目录节点是固定的这对锁资源申请访问并不友好。从Oracle9i开始,这种固定的对应方式被取代,Oralce使用动态remaster技术,通过lookup表运用hash算法将换算后的的master key与实际的master做一一对应。 资源:应用程序访问的任何对象 客户端:任何要求资源的进程 锁:客户端对资源的意图 DLM服务:允许客户端应用程序创建,修改和删除共享的锁。 DLM数据库:存储有关资源,锁,进程的信息 资源在Oracle中定义为(程序访问的任何对象)。每个资源都需要有当前授予的用户锁列表,此列表称为Grant Q。此外还有相对应的Convert Q,即等待转换的锁队列。此外,有些资源拥有用于存储少量锁定值的块(LVB),一般16字节。例如,并行查询子进程在申请的PS资源(Parallel Slave Synchronization)的时候使用它存储kxfpqd结构传递给其他节点。这两种资源类型具有不同的数据结构。客户端(用户)必须锁定资源才能使用它所代表的内容。 资源类型与数据结构的对应: Enqueues:锁定非PCM资源 lock Elements:锁定PCM资源 如果Oracle进程没有遵循“使用前锁定”规则,那么这个系统就会乱套。它可能在一段时间内不会显示为系统或数据损坏。 当进程锁定资源的授权队列时,它被称为“拥有”资源。下图显示了对资源的Grant Q的锁定。锁可以是进程或组拥有的。进程拥有的情况下,则PID字段显示进程号。组拥有锁的情况下,GID字段表示为组号,DID字段表示为客户端事务的XID(TxID)。 在一个简单的实现中,DLM为进程提供锁定。这在维护进程到会话映射时工作正常。但是,在MTS(共享服务器)和XA(分布式)场景下,会话可能会涉及迁移,或者多个进程完成一个事务。这时候提供基于会话的标识符来控制对锁的访问是非常明智的选择,这就是组锁定引入的缘由。通常,Oracle提供事务XID作为组ID,然后处理该事务的任何进程都只提供XID和锁定操作即可。 影子资源 ?主节点具有所有资源信息,例如完全授权队列和转换队列。 ?影子资源存在于对此资源感兴趣(申请锁定)的任何其他节点上,但它只知道自己本地节点上的锁。 影子资源存在于对资源感兴趣的任何其他节点上,即对该资源打开锁定的任何节点。在主节点以外的节点上保持锁定时,主节点会在本地保留锁定的副本。资源感兴趣的每个节点都只有一个锁的副本。复制锁保存在主节点上,这是主节点所必需的信息。其他信息每个节点可以根据自己所需进行维护。主节点具有主锁,本地节点具有影子锁。 基础资源结构及资源管理 GRD(DLM)维护资源的所有节点上的锁的信息。锁master分布在群集中的所有节点上。主节点包含资源的描述以及资源上持有最高锁定模式的锁信息。Oracle根据资源名称通过使用数组来计算资源的主节点:res_hash_val_kjga(对于非PCM资源)和pcm_hv_kjga(对于PCM资源)。它选择一个节点来管理资源的相关信息和在资源上的锁信息,这种节点称为资源的主节点。当节点加入或离开集群时,重构阶段Oracle会以最小化资源迁移更新res_hash_val_kjga和pcm_hv_kjga数组。每个数组都包含一个bucket包含物理节点号。对于非PCM资源,Oracle对资源名称进行Hash以获取存储桶编号bidx,然后使用res_hash_val_kjga [bidx]确定资源的主节点编号,集群中的每个节点的数组都是私有化的。? resource name:用于标识的唯一名称资源,Value Block:内存中用于存储有关资源信息的区域。 Granted Queue:在资源上授予锁。 Convert Queue:锁在从一种模式转换为另一种模式。 每个非PCM资源在集群中通过名称进行标识,名称”由3个4字节的整数组成(ub4 n[3])。 Non-PCM:名称由3个4字节的整数组成(ub4 n[3])。n [0]设置为id1,n [1]设置为id2,n [3]接收字符串值(例如“DI”或“LB”)。 PCM:由具有两个整数的名称标识,具有第三个整数字符对为“BL”。

文档评论(0)

jyr0221 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档