绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
oracle RAC小结
2019-06-08 11:57:36

1、集群相关日志$ORACLE_CRS_HOME/log,$ORACLE_HOME/log中

alertrac1.log  crsd/  ctssd/    evmd/   gnsd/   mdnsd/  racg/


2、节点驱逐原因

(1)丢失网络心跳:(misscount11glinux上默认30s)

(2)丢失本地心跳:(misscount/负载过高节点/cssd进程hang住)本地的一些进程出现了一些问题不需要等待别人来处理,会通过自己重启来保证集群的一致性。

(3)丢失磁盘心跳:(disktimout默认200s)一个节点访问不到一半以上的OCR盘的时候会被离线。

(4)rebootime:在10g~11g中默认都为3s,即rac脑裂或节点被驱逐时,该节点将会在rebootime时间内被重启。

(5)10g hacmp rac串口心跳丢失

3、脑裂驱逐策略

集群数少的被驱逐。

节点号大的被驱逐

负载高的被驱逐


4、Clusterware主要进程

(1)11gR2+集群多一层

ohasd:启动集群的源头(读olr)

mdnsd:构建初始化层的通信通道给gpnpd使用

gpnpd:完成初始化层的集群构建

gipcd:完成集群的私网初始化


(2)10gR2&11gR1集群分三层

crsd: 管理crs资源,包括启动、关闭、监控及故障切换。由root运行。crsd有故障会导致系统重启。

cssd用于节点间通信,节点在加入或离开集群时通知集群。由oracle运行。cssd有故障会导致系统重启。

evmd :事件检测进程,由oracle运行


5、RAC如何容错:

(1)如果一个节点挂掉:

(2)其他节点读取失败节点的REDO中后一次检查点之后的信息

(3)对后一次REDO里面的所有信息都进行恢复(不管提交还是未提交)

(4)回滚未提交的事务


5、rac环境应用设计注意事项:

业务分离/拆表解决私网问题


6、用GNS来做SCAN,只需要固定PRIVATE IP 和 PUBLIC IP, 

VIP和SCAN IP 由GNS 从DHCP 中动态获取。


7、通过REMOTE_LISTENER设置,

任何实例都会向SCAN监听器注册,

所以SCAN监听器能负载均衡地分发连接请求到节点本地监听器上,

也就是连接到其本地节点上实例上。


8、客户端通过SCAN连接到数据库的过程

(1)首先由DNS服务器解析SCAN名称,DNS服务器返回SCAN对应的3个IP地址的列表

(2)客户端会选择使用其中一个SCANVIP地址作为连接地址

(3)将解析后的连接信息发送到SCAN VIP对应的SCANListener上

(4)SCANListener通过负载均衡机制再把请求转发给较空闲的服务器上的本地监听器

(5)由本地监听器完成实例与客户端之间的连接。


9、服务器故障时

(1)VIP自动Clusterware决定漂到正常节点。

(2)客户端向该VIP发请求时Clusterware的Fast Application Notification通知客户端向别的VIP发送请求,

(3)客户端收到通知后通过Failover机制把请求重新发送到ADDRESS列表中的其他VIP上。

(4)等故障节点恢复正常,漂移的VIP也回到此节点上,继续提供服务 (客户端几乎感受不到有节点宕机)。


10、HAIP

从11.2.0.2开始,Oracle提供了私网的高可用性和负载均衡特性一HAIP。 

首先,用户需要在安装GI的过程中为集群的私网指定多块网卡。 

Oracle会自动在集群的每块私网网卡上绑定一个169.254.XX.XX 网段的IP地址,这个IP地址被称为HAIP,数据库实例(ASM 实例也同样适用)之间在进行通信时,会通过这个Oracle绑定的IP地址来完成。 

当某块私网网卡出问题时,对应网卡上绑定的IP地址可以漂移到其他的私网网卡上,这就实现了私网的高可用性。从另一个角度来讲,如果集群包含多块私网,也意味着会有多个HAIP 被绑定在每块私网网卡上,每块网卡都同时承担实例间的通信,从而实现了私网通信的负载均衡。Oracle在启动集群时会自动把HAIP绑到网卡上。


11、DRM动态资源管理一般禁用

在传统的资源访问过程中,资源主节点在次确认后不再改变,如果初确定的资源主节点对于资源访问远低于其他节点,会加重节点间的交互严重影响性能

DRM根据一段时间内(默认10分钟),每个实例,对某一个数据库对象的 (10gR1以数据文件为单位)的访问次数和方式,来决定数据库对象对应的buffer应该被mastering 到哪一个实例。如果某一个实例访问某个数据库对象次数高于其他实例一定倍数(默认50倍),则oracle 会把这个对象所有的buffer的master信息(不是转移buffer),转移到对应实例。


但是DRM在进行 re-master的过程中带来短时的性能影响,在很多重要环境中,这是不能忍受的。


动力小刚于2019年5月  个人邮箱:zcs0237#163.com

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Oracle数据库技术集
创建时间:2020-05-15 15:15:11
菜鸟教程
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 栈栈
    专家
戳我,来吐槽~