本篇文章给大家带来了关于Oracle的相关知识,其中主要介绍了RAC的相关问题,Oracle Real Application Cluster用来在集群环境下实现多机共享数据库,以保证应用的高可用性,希望对大家有帮助。
推荐教程:《Oracle教程》
应对业务量的不断增加场景通常有两个大方向,一种是纵向扩展,也就是增加单台服务器的CPU计算能力、内存容量和磁盘承载能力等;另外一种是横向扩展,也就是通过增加服务器的数量来增加处理能力。前者存在业务中断和扩展上限等诸多的问题,特别是互联网业务的迅猛发展,单台服务器几乎无法满足业务负载要求,因此目前比较流行的方式横向扩展的方式。
什么是Oracle RAC?
Oracle Real Application Cluster (RAC,实时应用集群)用来在集群环境下实现多机共享数据库,以保证应用的高可用性;同时可以自动实现并行处理及负载均衡,并能实现数据库在故障时的容错和无断点恢复。它是oracle数据库支持网络计算环境的核心技术。
共享存储多活集群
在该架构中集群中多个节点运行的是同一个数据库实例,数据完全一致,并且用户层面无论从哪个节点访问,获取到的数据都是相同的。下图是Oracle RAC的示意图,通过3个节点构成一个集群,它们共享数据。
RAC 的特点可总结如下:
- 节点互联起来,向外显示为1台服务器;
- 集群软件把内部结构掩藏起来;
- 磁盘是共享的;
- 每台机器使用相同的操作系统;
- 多个实例访问同一个数据库;
- 每个节点有一个实例;
- 数据库文件支持物理或逻辑访问;
- 数据的读写通过软件控制。
Oracle RAC和单个数据库服务器的区别
如下图,主要区别还是RAC是集群式数据库,通过集群软件管理。
Oracle RAC硬件架构
为了保证整个集群的可用性,Oracle RAC在部署的时候对硬件有比较多的要求。在网络层面,Oracle RAC总共有3个网络系统,分别是外部访问网络、内部私有网络和存储网络。
外部访问网络不用多说,相信大家都理解。内部私有网络则主要用来进行Oracle集群内部使用,包括数据传输、心跳和集群管理等。这部分网络在部署的时候要求双交换机和双物理链路,保证不会因为链路故障导致集群异常。后面是存储网络,存储网络用于RAC集群访问存储资源,这部分也是链路冗余的。
再比如下图,为一个两节点RAC系统,可以看出,从主机到交换机,都做了冗余,无论哪台设备出了故障,业务不会受影响。共享存储是自带RAID冗余的。
其中,主机叫做节点(Node),它们要有相同的CPU、内存等配置,每台至少两个网卡,访问内外网,还有HBA卡连接共享存储,但