【线上分享第8期】RAC中的实例管理


10月29日(本周四)晚上20:00,DBA+社群将在东北群进行线上讨论,与此同时,我们也将在其它城市群进行同步分享。本期邀请Oracle首席技术支持工程师高斌带来“RAC 中的实例管理”的主题分享。


嘉 宾 介 绍
高 斌

《Oracle RAC核心技术解密》(即将出版)作者,Oracle首席技术支持工程师(Principal Technical Support Engineer),2007年加入Oracle 大连技术支持中心,对Oracle数据库产品有比较深刻的认识。主要负责Oracle RAC,Exadata的技术支持工作,擅长在压力环境下处理复杂的数据库技术问题,多次成功解决国内外客户重要系统的技术问题。除了日常的技术支持工作以外,还负责MOS(https://support.oracle.com)网站上 RAC,Exadata 文档的翻译工作,在Oracle 内部定期进行数据库相关的知识分享,偶尔在Oracle 官方博客(https://blogs.oracle.com/Database4CN/)上发表技术文章。目前,主要致力于oracle 12C 和 Exadata新特性的研究,知识分享和技术支持工作。

 

课程安排:

 
 
 

第一阶段:讲师演讲


1、节点管理(NM)的基本概念

(1)节点管理:这部分功能会负责维护数据库集群的节点(或者叫实例)列表,确保只有集群中的节点能够访问数据库,并且在节点加入集群或者离开集群时更新节点列表。


(2)CGS:这部分功能实际上是Oracle RAC 的实例管理的实现方法,他负责实现实例之间的心跳机制;当实例离开或者加入集群时完成数据库集群的重新配置;解决数据库层面出现的脑裂(Split-Brain)。


(3)节点列表位图(这里会有一个图片简单说明)。


2、CGS(Cluster Group Service)

(1)实例之间的心跳机制

网络心跳(lmon)

磁盘心跳(ckpt+控制文件)

本地心跳(lms,lmd,lmon,lmhb)

(这里我也会画个图来简单说明三种心跳的关系)


(2) 数据库的重新配置(reconfiguration): 这里会简单说明数据库层面的重新配置的基本过程和常见类型。


(3) 数据库层面的脑裂(这里是要争抢控制文件的)


3、实例恢复

RAC系统中的实例恢复是指当某一个(或多个)实例离开集群后,重新配置主节点会将离开集群实例对应的redo thread中的重做日志文件中对数据的改变(redo entries)应用到数据库。这个过程实际上和单实例当中的实例恢复过程是很类似的,但是由于RAC数据库存在cache fusion, 也就是说同一个数据块可能被多个实例修改,所以恢复的过程可能和单实例有所不同。


(1) 恢复过程:

阶段一:负责执行恢复实例的SMON进程获得IR(Instance Recoverr)锁,并通知其它实例开始进行实例恢复。之后进行第一次redo log分析,主要目的是为了构建recover set(恢复集)。(由于阶段1的过程最复杂,我会考虑画个图来解释)


阶段二:获取恢复所需要的cache fusion lock。根据recover set 中包含的数据块,向其他实例申请对应数据块所需要的锁和block。


阶段三:开始恢复redo中的数据库改变,根据recover set 中的信息开始介质恢复。在完成实例恢复后,释放IR锁,并通知其它实例恢复结束。


第二阶段:Q&A

 
 
 

备注:

 

1、为了保证其他群友的听课质量,讲师在演讲过程中请尽量不要插话;


2、同步转播城市群的提问将由群秘统一汇总,待专家回答后再进行贴出。

 
 
 

 

参与方式:

1. “DBA+东北”讨论群人数已过百,请扫描或长按识别下方二维码进入“DBA+东北”2群,再由群主拉入主讨论群。本次分享其它各城市群将同步直播,参与方式可通过点击下方的【阅读原文】进入,再扫描相对应的城市群二维码即可加入。
 


 


扫码关注

DBAplus社群

来自各领域的牛逼DBA正在向我们汇聚