什么是oracle的rac?

什么是oracle的rac?
最新回答
思檀郎

2023-02-18 02:54:55

RAC,全称real application clusters,是Oracle数据库中的一项新技术,用于构建高可用性数据库系统。RAC支持Oracle9i、10g、11g版本,可以支持24 x 7有效的数据库应用系统,并且可以自由部署应用,无需修改代码。

在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。RAC的主要组件包括集群软件、Oracle数据库中的RAC组件、共享存储设备和操作系统。

在RAC环境中,所有服务器使用和管理同一个数据库,目的是为了分散每一台服务器的工作量。硬件上至少需要两台以上的服务器,而且还需要一个共享存储设备。同时还需要两类软件,一个是集群软件,另外一个就是Oracle数据库中的RAC组件。所有服务器上的OS都应该是同一类OS。

逻辑结构上看,每一个参加集群的节点有一个独立的instance,这些instance访问同一个数据库。节点之间通过集群软件的通讯层来进行通讯。同时为了减少IO的消耗,存在了一个全局缓存服务,因此每一个数据库的instance,都保留了一份相同的数据库cache。

RAC中的特点是:每一个节点的instance都有自己的SGA、自己的background process、自己的redo logs和自己的undo表空间。所有节点都共享一份datafiles和controlfiles。

此外,RAC还提出了一个缓存融合的技术(Cache fusion)。其目的有两个:保证缓存的一致性和减少共享磁盘IO的消耗。因此在RAC环境中多个节点保留了同一份的DB CACHE。

缓存融合(Cache fusion)工作原理:其中一个节点会从共享数据库中读取一个block到db cache中,然后这个节点会在所有的节点进行交叉db block copy。当任何一个节点缓存被修改的时候,就会在节点之间进行缓存修改。为了达到存储的一致最终修改的结果也会写到磁盘上。

RAC的ClusterWare组件包括四种Service:Crsd - 集群资源服务,Cssd - 集群同步服务,Evmd - 事件管理服务,oprocd - 节点检测监控。还有三类Resource:VIP - 虚拟IP地址(Virtual IP),OCR - Oracle Cluster Registry(集群注册文件),Voting Disk - 建立仲裁机制。

RAC提供了额外的进程,用来维护数据库。包括LMS - 全局缓存服务进程,LMD - 全球查询服务守护进程,LMON - 全球查询服务监视进程,LCK0 - 实例查询进程。Oracle RAC一般构建于大型SMP主机,如IBM的AIX系列服务器,或Intel Linux平台。当AIX UNIX用来运行Oracle RAC作为大型数据库系统平台时,其集群系统构建、实施、运维、高可用设置,有其平台特点。