2020-11-10

我们都知道Oracle RAC具有复杂的集群架构,今天和大家分享一下RAC与共享存储的规划。在开始之前,先简单分析一下oracle rac的基本组成:

OracleRAC可以从软件和硬件两个维度展开理解,其中,软件包括集群管理软件(clusterware)以及磁盘管理(ASM),构成RAC高可用解决方案;硬件则对接服务器、网络以及存储。

下文我们将从RAC的工作机制、文件规划、ASM磁盘管理三个方面,让大家了解OracleRAC的存储规划。

Oracle RAC的是怎么工作的

老王家儿子卖早点的故事

有些小伙伴表示对RAC的工作机制还有点蒙圈,我们换个方式,先聊聊老王家儿子卖早点的故事。

老王家两儿子,大老王小老王,他们合开了一家早点店。平时大老王卖包子,小老王卖豆浆

大老王生病了,小老王就又卖包子,又卖豆浆。第二天小老王又病倒了,大老王就出来干活,又卖包子又卖豆浆,两兄弟相互扶持,生意红红火火。

这里的包子和豆浆是数据,两儿子互相照应叫做“心跳检测”;大小老王顶替对方工作叫做“故障转移”

如果大老王很忙,小老王就会帮大老王分担一部分顾客;同样,如果小老王很忙,大老王也会帮小老王分担一部分顾客,从而保持这家店的顾客均衡。这就叫做“负载均衡”

人有旦夕祸福,如果大小老王不巧都瞎了聋了,搞不清楚对方是否正在干活,认为自己应该去顶对方的工作,这个叫做“脑裂”。然后需要第三方,也就是老王来解决这个问题,这个叫做“表决”。如果这时小媳妇过来拉走了小老王,说“不干了,我们回家睡觉”,这就叫做“IO隔离”

 

好了,言归正传,当一个客户端发送请求到某一台服务器的监听后,根据负载均衡原则,请求会被发送到本机或者其他的RAC组件处理,处理完成后,共享存储就会被RAC访问。逻辑结构上看,独立的监听分布于每一个集群的节点上,共同访问同一个数据库。各节点之间通过集群软件的通讯层(communication layer)实现通讯。在拥有一个全局缓存服务的同时,每一个实例都保留了一份数据库cache,以此减少了IO消耗

 

接着我们总结下RAC的实质

  1. 多实例跑多服务器:多个实例跑在多个服务器的操作系统上;

  2. 实例间高速内联:实例之间通过高速内联网络交换数据和信息;

  3. 一集群软件承载多实例:一套集群软件部署于多个服务器的操作系统上,承载上层的多个实例,行使集群的功能;

  4. 数据库存放于共享存储:一个数据库存放在共享存储上,所有实例都可以访问;

  5. 共享存储通过ASM实现读写:共享存储通过ASM与多实例进行对话,从而实现数据的存储和读写;

 

附:Oracle RAC的拓扑结构

 

 

系统&数据文件的规划

利用ASM共享与数据保护的功能,保证数据库文件的安全

 

接下来我们分析一下oracle RAC中的系统文件数据文件的规划,ASM做为存储管理软件,主要负责oracle共享存储部分的磁盘管理,因此,要将共享数据和独享数据做好归集,利用ASM共享与数据保护的功能,保证数据库文件的安全。

 

 

系统文件

参数文件

控制文件

Redo Log重做日志文件

快速闪回区(Fast Recovery Area)

 

数据文件

基本表空间、应用表空间

 

文件设计

 

上文简述了表空间的划分以及基本类型,接下来谈谈文件设计(参数文件、控制文件、Redo Log重做日志文件、快速闪回区(Fast Recovery Area)设计。)

 

 

 参数文件 

 

为实例分配内存、获取资源位置

是数据库设计、性能调优的重要文件

 

参数文件是很重要的一个文件,在数据库实例(instance)启动时,Oracle会进行参数文件信息的加载,通常会将参数文件存放于每个数据库实例对应的本地空间一份,ASM管理的共享存储空间上存放一份。

 

 

 控制文件 

 

控制文件记录了当前数据库的结构信息,同时也包含数据文件、日志文件的信息、归档信息、备份信息等,控制文件的作用是维护数据库一致性

 

因此,每个数据库实例应至少有两个控制文件,互为镜像关系,且每个文件存储在独立的物理磁盘上。为了使整个系统的高可靠地运行,建议系统设置2-3个控制文件,每个实例对应的本地空间存放1个控制文件,ASM管理的共享存储空间存放2个控制文件。

 

如果有一个磁盘失效而导致控制文件不可用,与其相关的数据库实例必须关闭;一旦失效的磁盘得到修复,可以把保存在另一磁盘上的控制文件复制到该盘上,这样数据库实例可重新启动,并通过非介质恢复操作使数据库得到恢复。

 

 

Redo Log重做日志文件 

 

重做日志文件主要以重做记录的形式记录、保存对数据库所作的修改(或事务)。重做日志文件在数据库的恢复过程中起着非常重要的作用,可以用来进行例程和介质恢复,以及事务的撤销。

 

Redo Log重做日志文件的尺寸会对数据库的性能产生重要影响,因为它的尺寸大小决定着数据库的写进程(DBWn)和日志归档进程(ARCn)。

 

当然为了防止磁盘的I/O争用,还应把各个重做日志文件分布到单独的逻辑卷上,通过将它们放在单独的逻辑卷中,可以保证提交写日志文件的I/O就不必与大型异步Buffer Cache的检查点I/O共享逻辑卷的I/O队列。

 

 

 快速闪回区(Fast Recovery Area)设计 

 

快速闪回区(Fast Recovery Area)通常存放归档日志(archive log)、闪回日志(flashback logs)和备份集(backup sets)。因为Oracle数据库对于快速闪回区的I/O为典型的顺序写,通常就指定快速闪回区为中低速磁盘(SATA、NL_SAS)区域;同时Oracle也推荐将快速闪回区指定到单独的磁盘区域,避免将数据库文件跟保护数据库的归档日志和备份放在一起。

 

 

表空间

 

我们简要谈谈表空间,为了更好的管理表空间,同时提高Oracle数据库系统性能,因此Oracle数据库的表空间会划分为基本表空间和应用表空间。

 

基本表空间

是指Oracle数据库系统为其自身运行而使用的表空间。

 

 

 

 

应用表空间

是指业务应用数据保存在此类表空间中。它由DBA或相关的数据库规划设计人员创建和规划。

 

 

 

 

 

 

ASM磁盘管理

 

 

 

 

 

 

Oracle RAC推荐使用ASM进行存储自动管理,据此,ASM存储对象的结构如上图所示:ASM规划四个磁盘组(Disk Group)——“OCR_VOTE”、“REDO”、“DATA”、“FRA”

 

OCR_VOTE磁盘组

建议存储划分三个逻辑卷分配给“OCR_VOTE”磁盘组,大小各为200MB。ASM采用 “Normal”冗余模式,“OCR”会占用2块逻辑卷做mirror,“Voting Disk” 会占用3块逻辑卷做mirror,从而在“OCR_VOTE”磁盘组中以三个failgroup的方式有效保证“OCR”和“Voting Disk”的存储和安全。

 

REDO磁盘组

根据数据库业务情况,建议存储划分对应的全闪存逻辑卷分配给“REDO”磁盘组。ASM采用 “External”模式,存储在线redo log日志文件。

 

DATA磁盘组

根据数据库业务数据量,建议存储划分对应的逻辑卷分配给“DATA”磁盘组。ASM采用 “External”模式,存储基本表空间、应用表空间、一份control控制文件和pfile参数文件。

 

FRA磁盘组

根据数据库归档和备份的数据量大小,建议存储划分对应的逻辑卷分配给“FRA”磁盘组用作“快速闪回区”使用。ASM采用“External”模式,存储归档日志、闪回日志、备份集和一份control控制文件。

 

https://mp.weixin.qq.com/s?src=11&timestamp=1604996416&ver=2697&signature=L7QYxJvJeiMuij1cEgxoQCItinfe0MC3Gfgs2W*CkM7kjM1-Ols1zRW4wYGqeT76zNTcDFaqHxjYmRc4hAVhHD38W8C2QnsDJBkdr3QLOl27XBz3FE1-*08o2Fz6zL23&new=1

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值