GRD  (global resource directory)保存着所有实例中资源的分布情况

GCS  (global cache service)具体执行cache fusion 工作的服务,对应进程LMSn

GES  (global enqueues service)协调实例之间的GCS完成数据传递工作,完成non-cache fusion资源的管理工作,对应进程LMD.

Cache-fusion全局锁

全局锁的分配是通过每个节点的GES服务协调完成的,每个时间点只有一个实例能够修改相同的数据块,通过GES的协调获得块的全局锁之后,GCS负责实例间数据块的传递工作。(cache fusion的频繁使用会导致数据性能的下降)。

GES(全局队列服务)负责维护字典缓存和库缓存内的一致性。字典缓存是实例的SGA内所存储的对数据字典信息的缓存,用于高速访问数据字典信息。GES控制数据库中所有的library cache锁和dictionary cache锁。

数据一致性

实例A的一个事务更新了一个数据块,但没有提交,这个时候实例B查询包含事务的这个数据块,那么实例A会将UNDO段中的一致性数据块传送给实例B,实例B中存放的该数据块就是CR状态的数据块,并非是当前最新的数据块。如果这个时候实例B要更新这个数据块,实例A会将SGA中当前的数据块降级,然后传递给实例B,实例B中存放的数据块就是当前最新的数据块。(相同的块在不同实例中分布体现在GRD中,GRD能展示块的分布图)

Past Image(PI)是维护脏块的拷贝,GCS管理PI,GCS在实例失败恢复的时候会用到PI版本的块。Oracle允许即使操作块的事务未提交,如果其他实例有事务修改相同块的不同行,块也能在实例间传递,但是必须保留原来实例中未提交的块,这个块就是PI.

(1)   并行操作过程中的PI

在多节点实例并行操作的过程中,当实例请求修改块时,GCS服务的LMSn进程会将数据块从最后修改此块的实例传送给请求的实例,而LMSn会在原来持有此块的实例中保留此数据库的PI版本。

(2)   资源的磁盘写

因为可能在集群的多个实例中存在多个被修改过的数据块,由GCS管理的写规则必须确保将最近版本的数据块写入磁盘中。GCS还必须确保所有之前的版本已从其他cache中清除。对数据块的写可以由任何持有此数据块的当前版本或PI数据块的实例发起。

Cache fusion应用场景

(1)   多节点实例并行读

实例A从吸盘读取一个块的时候,该块在GRD中记录的状态为SCUR,实例B查询该表,通过cache fusion获取该块,由于并不对该块进行更改,所以实例A块的状态没有发生变化,在实例B中的块的状态是CR。实例C再次执行相同的查询从实例A获取该块,同样实例C中的块状态也是CR。

(2)   多节点实例并行读和写

实例A从磁盘读取数据块到内存中,记录块的状态为SCUR。实例B要更新该块中的行,必须获得排他的锁,且更新的块必须是当前最新的块,实例B通过cache fusion将实例A的块拷贝到自己的buffer cache中,同时实例A的块状态变为CR,实例B中块的状态是XCUR。

(3)   多节点实例并行写

实例A执行UPDATE语句从磁盘读取块到实例中,块的状态为XCUR。实例B要更新同一个块的其他行记录,实例A的块状态变为CR,实例B通过cache fusion将实例A的块拷贝到实例B的buffer cache中,实例B上块的状态为XCUR。如果实例C也要更新同一块,实例C必须等待实例B执行完成后,实例B的状态变更为CR,通过cache fusion将实例B上的块拷贝到实例C,并修改修改实例C块状态为XCUR。以上操作,实例A和实例B中保存的CR状态的块都是PI版本。

(参考《构建最高可用RAC》)

cache-fusion笔记的更多相关文章

  1. RAC Cache Fusion 原理理解

    cache fusion  .   grd  .  drm   .   gcs  .   ges cache fusion  1.RAC是一个数据库执行在多个实例上.通过DLM(Distributed ...

  2. Oracle RAC cache fusion原理測试

    Oracle RAC cache fusion是RAC最核心的工作机制.他把全部实例的SGA虚拟成一个大的SGA区,每当不同的实例请求同样的数据块,这个数据块就须要在实例间进行传递. 那究竟什么时候传 ...

  3. oracle rac cache fusion

    转载自 http://blog.csdn.net/tianlesoftware/article/details/6534239 Introduction This post is about orac ...

  4. 1011MySQL Query Cache学习笔记

    转自:http://blog.chinaunix.net/uid-16844903-id-321156.html 测试环境 MySQL 5.5 innodb_version 1.1.6 MySQL Q ...

  5. Guava Cache 使用笔记

    https://www.cnblogs.com/parryyang/p/5777019.html https://www.cnblogs.com/shoren/p/guava_cache.html J ...

  6. 缓存融合(Cache Fusion)介绍

    概念 简单地说,缓存融合就是把Oracle RAC数据库中所有数据库缓存作为一个共享的数据库缓存,并被RAC中的所有节点共享.它是实现RAC的基本技术. 缓存融合主要有如下四个功能: (1) 提供扩展 ...

  7. RAC Cache Fusion Background Processes

    Acdante--每日三省吾身-- . 什么是缓存融合? .缓存融合工作原理? .缓存融合关键进程以及作用?

  8. Oracle RAC学习笔记01-集群理论

    Oracle RAC学习笔记01-集群理论 1.集群相关理论概述 2.Oracle Clusterware 3.Oracle RAC 原理 写在前面: 最近一直在看张晓明的大话Oracle RAC,真 ...

  9. Varnish Cache

    1 Varnish简介 Varnish是高性能且开源的反向代理服务器和HTTP加速器(cache server).其开发者Poul-Henning Kamp是FreeBSD核心的开发人员之一.Varn ...

随机推荐

  1. Glusterfs的常用命令

    1 服务器节点 # gluster peer status                          //查看所有节点信息,显示时不包括本节点 # gluster peer probe   N ...

  2. ionic开发之Android可以很快打开主页,iOS要几分钟打开主页

    原来是gap://ready导致的csp问题,日志会有这样的提示 解决的办法就是在你的index.html添加gap:的csp配置 <meta http-equiv="Content- ...

  3. Unity Frame Debugger连接Android真机调试

    当用Profiler分析到不是代码导致的性能问题,当前场景最大的性能瓶颈是渲染时,或者自己写的Shader要调试时,都可以用Frame Debugger进行调试. 按下列步骤设置打包,既可以用Prof ...

  4. HTTP host头

    前几天,将一个host误配置为https,导致对方服务解析异常,排查半天,才发现是host导致,故整理一下HTTP host作用. Host:指定请求服务器的域名/IP地址和端口号. 作用:同一台机器 ...

  5. Jemeter 连接数据库

    1.打开Jmeter添加测试计划,(http://central.maven.org/maven2/mysql/mysql-connector-java/6.0.6/mysql-connector-j ...

  6. SQL Server 合并复制遇到identity range check报错的解决 (转载)

    最近帮一个客户搭建跨洋的合并复制,由于数据库非常大,跨洋网络条件不稳定,因此只能通过备份初始化,在初始化完成后向海外订阅端插入数据时发现报出如下错误: Msg 548, Level 16, State ...

  7. centos7安装mysql5.7修改设置密码策略

    centos7操作系统在安装mysql5.7社区版之后会有默认密码,通过grep命令在mysqld.log文件中即可找到,如下所示: 标识位置即在初始化安装时mysql的默认密码,然后通过mysql ...

  8. 解决:Determining IP Information for eth0...问题

    环境:Centos 6.2     VMWare Workstation 7.1.2  故障现象: 在虚拟机中启动Centos,在启动页面中停留在Determining IP Information ...

  9. 美团SQL优化工具SQLAdvisor

    介绍 在数据库运维过程中,优化 SQL 是 DBA 团队的日常任务.例行 SQL 优化,不仅可以提升程序性能,还能够降低线上故障的概率. 目前常用的 SQL 优化方式包括但不限于:业务层优化.SQL逻 ...

  10. MySQL之UNDO及MVCC、崩溃恢复

      UNDO特性:避免脏读.事务回滚.非阻塞读.MVCC.崩溃恢复 事务工作流程(图2) MVCC原理机制 崩溃恢复:redo前滚.undo回滚 长事务.大事务:危害.判断.处理 UNDO优化:实现u ...