在Oracle中,谈谈对Oracle中RAC用到的Cache Fusion的理解。
Cache Fusion即缓存融合,它能实现RAC在各个节点之间同步SGA中的缓存信息,从而达到提高访问速度的效果,也保证了数据的一致性。要发挥Cache Fusion的作用,要有一个前提条件,那就是网络的速度要比访问磁盘的速度要快。否则,没有引入Cache Fusion的意义。
Cache Fusion就是通过互联网在集群内各节点的SGA之间进行块传递,以避免首先将块推送到磁盘,然后再重新读入其它实例的缓存中这样一种低效的实现方式。当一个块被读入RAC环境中某个实例的缓存时,该块会被赋予一个锁资源(与行级锁不同),以确保其它实例知道该块正在被使用。之后,如果另一个实例请求该块的一个副本,而该块已经处于前一个实例的缓存内,那么该块会通过互联网直接被传递到另一个实例的SGA。如果内存中的块已经被改变,但改变尚未提交,那么将会传递一个CR(Consistent Read)副本。这就意味着只要可能,数据块无需写回磁盘即可在各实例的缓存之间移动,从而避免了同步多实例的缓存所花费的额外I/O。很明显,不同的实例缓存的数据可以是不同的,也就是在一个实例要访问特定块之前,而它又从未访问过这个块,那么它要么从其它实例Cache Fusion过来,要么从磁盘中读入。
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:230161599
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。




