首页 理论教育OracleRAC分布式数据库技术

OracleRAC分布式数据库技术

【摘要】:前面提及的OPS是Oracle 6.0中引入的,RAC源自OPS,但作为新的产品推出。一个4节点的集群结构如图14.24所示。图14.24一个4节点的集群结构RAC起源于OPS,在Oracle 6.0.35版本中引入。最初只适用于Digital VAX/VMS集群使用Oracle开发的分布式封锁管理器。从Oracle 9.0.1开始,OPS重新改为RAC可选项。在商业上,RAC已是一个完整的新产品。然而在技术上,OPS和RAC的一个重要区别是超高速缓存相关性。OPS里,实例间的块协调由PCM处理。Oracle 8i引入了Cache Fusion PhaseⅠ,部分淘汰了磁盘ping。

Oracle RAC(real application clusters)是2001年作为Oracle 9.0.1的一个版本推出的。前面提及的OPS是Oracle 6.0中引入的,RAC源自OPS,但作为新的产品推出。它继承了OPS的大部分特点。

那什么是RAC呢?从字面看,可以译作“实时应用集群”。

一个集群由多个互联的服务器组成,对终端用户和应用来说,它们就像单台服务器一样。RAC数据库允许有多个实例驻留在集群的不同服务器上,访问驻留在共享存储里的公共数据库。相比单服务器情况,群里多服务器的处理能力可以提供更高的吞吐能力和可伸缩性。一个4节点的集群结构如图14.24所示。

图14.24 一个4节点的集群结构

RAC起源于OPS,在Oracle 6.0.35版本中引入。最初只适用于Digital VAX/VMS集群使用Oracle开发的分布式封锁管理器(DLM)。从Oracle 9.0.1开始,OPS重新改为RAC可选项。在商业上,RAC已是一个完整的新产品。(www.chuimin.cn)

然而在技术上,OPS和RAC的一个重要区别是超高速缓存相关性(cache coherency)。为了更新一个数据库块,一个实例必须先获取块的当前版本。在群里只能为该块的一个当前版本。因此,如果几个实例需要更新该块,必须将之从一个实例传递给另一个实例。在该块的版本从缓存写入磁盘之前,该块是脏块(dirty block)。

OPS里,实例间的块协调由PCM(parallel cache management)处理。如果实例A需要实例B拥有的当前版本块,实例B应当将脏块写回存储器,并通知实例A从存储器读块的当前版本。这个操作称为磁盘ping(disk ping)。

Oracle 8i引入了Cache Fusion PhaseⅠ,部分淘汰了磁盘ping。Oracle 9i则引入了Cache Fusion PhaseⅡ,完全淘汰了磁盘ping。

有兴趣的读者可参见相关书籍。