Oracle RAC简介与要点

RAC的作用

RAC可以提供实例级别的冗余,避免单实例数据库实例一旦出现故障会影响下游业务系统的问题,提供多个(n个)实例冗余,即便n-1个实例出现故障,仍能保证业务的正常运行。

RAC一般与DataGuard用于主从结构的高可用灾备解决方案,RAC用实例级的冗余提供负载均衡与实例高可用性,DG用数据库级冗余提供数据存储级高可用性和数据安全灾备服务。

RAC的定义

以下引用自官方文档:

Oracle Real Application Cluster :在服务器集群上运行,可调整集群中所有应用程序的工作量,同时还提供以下功能:

• 集成式集群件:其中包括用于进行集群连接、消息传送和锁定、集群控制与恢复的功能。在 Oracle Database 10g 或更高版本支持的所有平台上均可使用这些功能。

• 自动工作量管理:可以定义一些规则,以便在正常操作和对故障作出响应期间将处理资源自动分配给每个服务。用户可以动态地修改这些规则,以满足不断变化的业务需求。这种在数据库网格中动态分配资源的功能是 Oracle RAC 特有的功能。

• 向中间层自动发送事件通知:集群配置发生更改后,中间层可以立即适应实例故障转移或可用的新实例。这样,最终用户在发生实例故障转移时可继续工作,不存在通常由网络超时引起的延迟。有新实例可用时,中间层可以立即开始与该实例建立负载平衡连接。Oracle Database 10g 或更高版本中的 Java 数据库连接 (JDBC) 驱动程序拥有“快速连接故障转移”功能,该功能可以自动启用以处理以上事件。

总结一下,RAC是一种提供负载均衡高可用性的集群解决方案。RAC管理组件运用一定的规则控制协调集群内部多实例与该组件的互相通信,以达到自动管理、负载均衡、高可用等目的。

RAC的特点

1、集群内多台服务器节点(m个)上存在多个实例(n个);

2、一个数据库(database)文件系统存储在共享存储设备上,比如NAS、SAN;

3、实例之间通过内联网络及集成式集群件互相通讯、交换数据。

4、每一个节点的实例都有自己的SGA、后台进程、Redo Logs、Undo Tablespace及参数配置文件(也可使用同一套公共的参数文件)。

RAC的缺陷

RAC并不能解决物理读写、数据安全等问题,因为不管多少个实例,数据都是存储在一个共享存储设备上。

尽管RAC可以通过多实例冗余实现高可用性,但终究脱离不了集中式数据库的本质,其与分布式系统相比,硬盘读写速度、网络带宽及质量仍然是其瓶颈所在。因为它使用一套共享存储系统,在多实例同时读写时,在网络中传输大容量的数据显然不如传输分发的数据处理任务访问需要的数据分片方便快捷,而且分布式集群中大部分任务都是使用局部本地数据库,访问速度效率更高。

RAC的网络配置

对于RAC来说至少有两套物理上不同的网络,私有网络是专门为实例之间的数据交互,公有网络是专门对外提供服务的。

RAC节点负载均衡最佳实践

Oracle提出的负载均衡基于最小负载的实现方法,增加了额外的cache fusion。在实际环境中,相似业务的最终用户都将请求发送到同一RAC节点上。如果RAC系统有不同类型的最终用户,我们会希望将负载均衡到不同的数据区域去。举例来说,客户处理可能在节点1上,订单处理在节点2上,而产品处理则在节点3上。将RAC最终用户通过数据需求来分组可以保证cache fusion负载降到最小。 郑州妇科医院:http://jbk.39.net/yiyuanzaixian/sysdfkyy/

RAC磁盘存储管理最佳实践

为了实施RAC系统,应该使用共享存储设备因为很多服务器都必须同时存取磁盘。一个单实例数据库可以使用Direct Attached Storage (DAS)这是一种连接到单一服务器上的一组廉价磁盘,而RAC则必须使用Storage Area Network (SAN),这是更昂贵更复杂的通常使用光纤通道连接到多个服务器的磁盘阵列。这需要一组独立的硬件,从主机总线适配器连接到SAN上。因此DBA具有数据存储层面的完整知识就显得很重要。

想详细了解RAC原理可以参考其他文章。

最好的学习方式还是学习官方文档,毕竟Oracle是个巨头公司,不像一些开源软件存在官方文档维护不完善的问题,但学习还应带着脑子,把知识转化成自己的,用自己组织的语言复述一遍,能加深理解。尽信书不如无书,Oracle官方文档其实也维护的不咋地,也可能是考虑到知识产权的问题不方便公开。

你可能感兴趣的:(Oracle RAC简介与要点)