前两天参加了一个Oracle的培训,其实是想去听听内存数据库方面的东西的,结果内存数据库方面的东西大约变成了对TT
11g的推销了,讲了好多所谓的新功能,但是并没有听到我感兴趣的东西,幸好下午讲的RAC让我眼前一亮。
RAC (Real Application Cluster) 真正的高可用集群
RAC是通过所谓的共享缓冲来实现真正高可用的(也是真正高性能的原因)
首先来看一下Oracle的典型架构:
数据文件集中存放,而各个访问的instance通过网络连接访问数据文件(当然更多情况下使用的是存储阵列)
共享缓冲是位于各个instance之间的缓冲区,这样将避免每次对一个数据块的访问都要直接访问磁盘,比较大的提高性能,但是怎样在各个instance之间保证数据的一致性,就是Oracle的看家本领了。
RAC的部署如下:
对于某一个块数据的访问,会有一个master,它掌控着锁和各个instance本地数据的状态,如果有一个instance需要访问该块数据,该instance首先会询问master,某个instance缓冲区是否有最新的数据,如果有,就直接从那里获取,如果没有,那么该instance将直接访问磁盘并将数据缓冲,并告诉master,下次有其他instance需要访问该数据的话,就直接来这里取。
当然这只是简单的只读数据的情况,RAC可以处理了各种读写的情况,原理跟上面所说的一样。
阅读(1367) | 评论(0) | 转发(0) |