美文网首页
RAC专题(更新中)

RAC专题(更新中)

作者: 这货不是王马勺 | 来源:发表于2022-05-16 17:59 被阅读0次

19C

一.概要

Real Application Cluster(RAC)架构
自己的理解:多个实例操作同一个数据库的架构,所有节点均处于活跃状态(多活)、使用共享磁盘的集群。
对比HA架构的话,HA是一个活跃节点,其余节点为standby状态,即单活,需要failover实现高可用;而RAC所有节点均为active,即多活,没有资源浪费,所有活跃实例提供的服务是对等的。
对比shared nothing型存储的话,当发生故障时,shared nothing无法访问故障节点数据,而shared disk共享磁盘能从所有节点访问所有数据,从任何节点访问数据结果都相同。

RAC是如何实现任何节点访问数据结果都相同的?
简单来说就是在某个节点对数据进行更新后,会自发向其他节点发起同步,即在节点之间保持一致性的前提下进行引用或更新,最终落盘。

优点
高可用性:除了多活之外,对于inactive的节点,RAC也会尝试将其加回来;
可扩展性:可通过添加服务器来增加计算资源。对比单节点来说可以在线增加服务器,无需停机窗口期。
但注意,RAC无法提高性能,而是通过增加节点数量,增加同时进程数量而间接提高。

与RAC连接的方式
1.物理连接(不推荐)
物理连接指的是客户端直接配置物理服务器ip。缺点是当服务器宕机或网卡故障时,客户端需要等待TCP超时,之后才failover。另外,如果没有配置多物理IP连接串,甚至会导致无法重新连接。
2.VIP连接
与RAC连接使用VIP,Listener监听物理IP和VIP。
故障时VIP可以漂移到正常节点,从而规避了超时时间。
3.SCAN VIP连接(最推荐)
如图例所示,SCAN由DNS解析,并返回三个ip地址给客户端,每个SCAN VIP都对应了一个SCAN监听,SCAN监听将请求重定向到本地监听,最终由本地监听创建服务器进程。

SCAN VIP连接
故障时SCAN VIP和相应的SCAN LISTENER会一起进行failover,SCAN LISTENER会重定向到适当的本地监听器。
SCAN VIP下的failover
VIP和SCAN VIP时tns配置对比:

好处在于当添加或删除节点时,SCAN的方式不用修改配置,SCAN不受节点个数影响。

二.RAC集群组件

Grid Infrastructure(GI)集成了两个组件,
Oracle Clusterware:用于管理集群成员和进程,
Auto Storage Management(ASM):Oracle提供的自动卷管理工具。


集群组件

1.Clusterware(集群件)
※管理集群件资源
将数据库、监听、进程等都当作资源来管理,负责其启动、停止及监控;
Oracle High Availability Services(OHAS)守护进程
Cluster Ready Services(CRS)守护进程
※管理节点成员
为了集群软件运行,需要管理集群的成员;
Cluster Synchronization Services(CSS)守护进程

管理集群件资源
以下图为例,当使用srvctl工具启停数据库时,只需要给集群件发送一条命令即可,集群件会在每个服务器上进行相应的操作。


此外集群件还会对每个实例进行监控,一旦出问题会尝试进行重启。
监控是通过节点间心跳(私网)进行的,同时判断节点数量也是通过心跳实现的。

如上图,当检测到node3不通时,会将node3踢出集群,以避免node3到磁盘篡改数据造成不一致的情况。

CRS守护进程管理的对象

资源类型
资源说明

OHAS守护进程:
启动顺序:


一般情况下RAC故障首先应该去查看CSS和CRS。
默认情况下,Oracle Clusterware会随着操作系统的启动而启动。可通过使用如下命令修改自动启动设置:
crsctl disable crs
crsctl enable crs

使用如下命令手动启停:

crsctl start crs
crsctl stop crs

检查堆栈的运行状态:

crsctl status resource -t -init

启停CRS资源时,一般使用srvctl start/stop 命令,
Database:

srvctl start database -d <db name>

Instance:

srvctl start instance -d <db name> -n <node name>
srvctl start instance -d <db name> -i <instance name>

Listener:

srvctl start listener -l <listener name> -n <node name>

检查RAC资源的状态:

crsctl status resource -t

可通过核心进程来判断RAC节点有没有启动起来。

CSS
管理服务器状态,如检测节点之间网络心跳、磁盘心跳。频率均为每秒1次。
此外还可以向表决磁盘发起投票处理脑裂。

2.ASM
Oracle做共享存储的磁盘管理工具,可将磁盘挂到ASM里面来做一个共享磁盘,可对磁盘直接做raid1、raid0或raid10。
ASM磁盘组可理解为一个文件系统,Oracle创建数据库会将文件存到ASM磁盘组中去。磁盘组下会有若干磁盘,磁盘组是管理这些磁盘的单位。

三.19c新特性及优化









等待仅1ms且仅占DBtime的6%左右,说明没问题。

已经几十ms了,说明有问题。
不仅要看GC相关的,也要看本地的指标。

参考:https://www.bilibili.com/video/BV16U4y1H7NR?spm_id_from=333.337.search-card.all.click

相关文章

网友评论

      本文标题:RAC专题(更新中)

      本文链接:https://www.haomeiwen.com/subject/lhgiurtx.html