前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈Oracle RAC (1)--概要

浅谈Oracle RAC (1)--概要

作者头像
SQLplusDB
发布2022-08-19 20:21:02
2.8K0
发布2022-08-19 20:21:02
举报
文章被收录于专栏:Oracle数据库技术

编者按:

本文作者系肖遥(花名),现任甲骨文技术支持工程师 ,目前专注于Oracle RAC领域。个人主页:

https://blog.csdn.net/weixin_50510978,经其本人授权发布。 【免责声明】本号文章仅代表个人观点,与任何公司无关。

一提到数据库,很多同学第一个反应就是装数据用的。然后有的同学会想起一大堆的SQL文,第一范式第二范式等等,搞得头都大了。

的确,在大学阶段我们所了解的数据库都局限在SQL编程的领域。回想起自己的大学时代,下载个MySQL,写几条SQL文,用Java开发个简单的图书借阅系统,然后给老师演示一下,老师给打个分数,自己的数据库课程大作业就算完成了。但是数据库到底是个什么样的存在,即便毕业当程序员多年后也是一头雾水。

后来进入甲骨文,专门从事Oracle数据库技术支持,对于数据库才有了清晰的认知。在工作中遇到了很多案例,琐碎无味,希望通过写博客的形式能稍加整理,同时与各位同学共勉。

关于普通的单实例的数据库,各大论坛和网站的文章已经很多了,我这里先专注于Oracle RAC。

1.什么是Oracle RAC

Oracle RAC 的全称是 Oracle Real Application Clusters。

从名称我们可以知道,这是一个集群(Cluster)。也就是说区别于单实例的数据库,Oracle RAC 是多节点实例的数据库集群。

如上图所显示的那样,数据库文件放在共享磁盘上,管理数据库的实例则由多个节点构成。

从技术上看,Oracle RAC 是架构在集群软件上的数据库。

2.什么是集群(Cluster)

引用华为云的话就是,集群是一组相互独立的、通过高速网络互联的节点(计算机),它们构成了一个组回,并以单一系统的模式加以管理。一个客户与集群相互作用时,对于客户来说集群像是一个独立的服务器。

3.Oracle RAC的特征是什么

Oracle RAC 集成了大部分类型的集群软件该有的特点。

3.1 高可用性。

对于单实例的数据库来说,一旦实例出现问题,那么应用程序就不能继续连接到数据库操作。而Oracle RAC 具有多个实例,只要还有一个实例存活,应用程序就可以继续连接数据库操作,这大大提高了数据库的可用性。

3.2 分散负载

数据库是由多个实例进行管理的,不管从哪个实例连接到数据库,得到的结果都是一样的。所以客户端可以随机或者按照负载均衡等原则连接到各个实例上,从而起到分散负载的作用。

3.3 可扩展性

构成 Oracle RAC 的各个节点是可以根据实际需要进行增减的。这不需要重建整个集群,使得集群规模能柔软变动。

4.Oracle RAC 各个节点实例中的信息是如何保持一致性的

Oracle RAC 中各个节点实例跟单实例数据库一样,都有SGA和PGA。SGA里面也都有shared pool和buffer cache等。所以一定存在一种技术来保证客户端不管从哪个实例连接进来,处理数据和查询数据的结果都是一样的。

这个技术就是内存融合技术(Cache Fusion)。这是Oracle RAC 的核心技术。随着内存融合技术的不断成熟,甲骨文才不断发展出了现在健全的数据库集群软件。

5.Oracle RAC 简史

早在1997年Oracle 8i时代,内存融合技术就已经有了雏形。

4年后的2001年,内存融合技术正式问世。但是这个时期,甲骨文一直没有成熟的集群管理软件,所以依然需要依赖第三方的集群管理软件。

2005年,甲骨文自己的集群管理软件CRS(Cluster Ready Service)问世。

4年后的2009年,结构更加标准,功能更加强大的集群管理软件GI(Grid Infrastructure)问世。从此Oracle RAC 开始了全面踢除第三方集群软件的时代。

2014年,Oracle RAC 12.1 问世。从集群软件的角度,Flex Cluster和Flex ASM架构出现。这是为了面向云应用的特点而设计的。从数据库角度看12.1最大的新特性是多租户和In-Memory,但是这不是Oracle RAC 独有的。

随后Oracle RAC 12.2 , 18c, 19c相继问世。但是从大的架构上来看,没有特别大的改动。

6.基于GI的其它数据库种类

除了多实例的 Oracle RAC 外,还有以下几种基于GI架构的数据库。主要基于成本考量而为客户提供的更便宜的数据库类型。

6.1 Oracle RAC One Node

千万不要望文生义,认为只有一个节点构成。它仍然由多个节点构成,但是数据库实例只有一个。当这个实例出现故障后,GI软件会将该实例failover到其它节点。

6.2 SIHA(Oracle Restart)

这是在单一节点上构建的由GI管理的单实例数据库类型。在最早版本中,Oracle Restart 的数据库文件必须存放在ASM中,在后来的版本中甚至可以构建没有ASM的Oracle Restart。GI已经与数据库没有高度冗余。这里面我为什么用甚至可以这样的词来形容,主要因为在其他类型架构中,没有ASM的话,GI是无法启动的。

*ASM是Automatic Storage Managment的简称。以后会专门介绍它,这里不做展开。

6.3 SEHA(Standard Edition High Availability)

在19c的版本中,新追加了SEHA。这也是一个多节点单实例结构。价格上比Oracle RAC One Node更低。但是SEHA一旦发生failover,坏掉的实例要马上修复,否则是要发生费用的。

从上面我们可以看出,Oracle RAC One Node,SEHA,SIHA都已经失去了Oracle RAC的主要特性。前两者因为有failover功能,还保持了一定的高可用性的话,SIHA则基本只是为了GI管理数据库实例以及可以使用ASM了。

Oracle RAC 是架构在GI上,是作为GI软件的一个资源被GI监控和管理。所以GI也是研究Oracle RAC 的重中之重。以后我们会深入探讨GI架构。

今天先分享到这里。以后我会找时间继续写一些Oracle RAC 的内容。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SQL和数据库技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档