集群重构可以由多种因素引起:1、某个节点加入或离开集群,触发NM引发的重构;2、网络心跳异常,如LMON或GCS、GES通信异常,超时时间由参数_cgs_send_timeout控制,触发IMR引发的重构;3、控制文件心跳异常,每个实例的CKPT进程每3分钟更新控制文件的Checkpoint Progress Record,由参数_controlfile_enqueue_timeout控制重构时间,同样由IMR引发。
重构触发类型及Oracle RAC原理
相关推荐
Oracle RAC架构原理
Oracle RAC架构原理
RAC架构的核心在于多个实例共享同一个数据库,每个实例拥有独立的PGA,但共享同一个SGA。
SGA(System Global Area) 的变化
RAC实例的SGA与单实例SGA最大的区别在于新增了GRD(Global Resource Directory)部分。GRD负责记录数据块在各个实例SGA中的分布、版本和状态,确保数据一致性。由于数据块可以在任何实例的SGA中拥有拷贝,因此需要GRD来协调和管理这些拷贝。GRD没有明确的配置参数,每个SGA中只包含部分GRD信息。
SGA主要组成部分:
Database Buffer Cache:存储从数据文件读取的数据块
Redo Log Buffer:存储所有修改操作的日志信息
Shared Pool:包含数据字典缓存、库缓存、JAVA池等
Large Pool:用于备份恢复、IO Slaves等操作
其他重要组件:
LGWR(Log Writer):负责将Redo Log Buffer中的日志信息写入Redo Log文件
DBWR(Database Writer):负责将Database Buffer Cache中的脏数据块写入数据文件
LMON、LMSn、LMD、LCK、GSD:RAC特有的后台进程,负责实例监控、资源协调、死锁检测等
RAC架构原理:
RAC通过高速互联网络将多个实例连接起来,每个实例都能访问共享数据库,所有实例的修改操作都会记录在Redo Log文件中,并通过GRD协调数据块在各个实例中的分布和状态,从而保证数据一致性和高可用性。
Oracle
5
2024-05-15
Oracle RAC 原理浅析
Oracle RAC 原理浅析
Oracle RAC (Real Application Clusters) 是一种允许在多个服务器节点上同时运行单个 Oracle 数据库实例的技术。其核心原理在于:
共享存储: 所有节点共享访问同一个存储区域网络 (SAN) 上的数据库文件。缓存融合: 每个节点拥有自己的内存缓存,RAC 通过高速互联网络实现缓存数据的一致性。全局资源管理: RAC 使用分布式锁管理器 (DLM) 来协调各个节点对共享资源的访问,确保数据一致性。
Oracle
1
2024-05-27
触发器类型
触发器可分为 AFTER 触发器和 INSTEAD OF 触发器。
AFTER 触发器 在触发语句执行完成后运行,如果语句因错误失败,则触发器不会执行。SQL Server 2000 默认使用 AFTER 触发器。
INSTEAD OF 触发器 替代触发操作执行。可在表和视图上指定 INSTEAD OF 触发器,但每个触发操作(INSERT、UPDATE、DELETE)只能定义一个。
SQLServer
3
2024-05-25
Clusterware层的Oracle RAC原理
在Clusterware层,所有节点共同组成一个集群,这些节点形成了一个集群成员列表(Cluster Membership List)。每个节点被分配一个成员ID(node id)。这些Clusterware之间相互通信,以了解各节点的状态,并选出一个节点作为Master Node,负责管理集群状态的变迁。新节点的加入或节点的离开都会导致集群状态的变化,最终达到新的稳态。每个稳定状态用一个数值表示,称为Cluster Incarnation Number(CIN),在稳态之间转换时,CIN会发生改变。在RAC中,各个实例构成一个实例成员列表(Instance Membership List),每个RAC实例也使用Clusterware层的node id作为身份标识,这个node id在集群生命周期内是固定不变的。RAC实例在启动时会将LMON、DBWR等操作共享存储的进程注册到Clusterware中,并从中获得node id作为组ID。
Oracle
0
2024-11-03
数据库原理详解及常见连接类型
具体分为以下几种:内连接:显示符合条件的记录,此为默认值;左连接:显示符合条件的数据行以及左边表中不符合条件的数据行,此时右边数据行会以NULL来显示;右连接:显示符合条件的数据行以及右边表中不符合条件的数据行,此时左边数据行会以NULL来显示;全连接:显示符合条件的数据行以及左边表和右边表中不符合条件的数据行,此时缺乏数据的数据行会以NULL来显示;交叉连接:将一个表的每一笔数据和另一表的每笔数据匹配成新的数据行。当将JOIN关键词放于FROM子句中时,应有关键词ON与之相对应,以表明连接的条件。
Oracle
0
2024-09-28
数据库原理的重构方法探索
学生信息管理系统中,数据库原理是关键的学习内容。学生、课程、选课等数据的组织和管理对系统性能至关重要。通过优化数据库设计和查询算法,可以提升系统效率和数据处理能力。
SQLServer
3
2024-07-16
Enqueue算法解析与Oracle RAC原理
Enqueue算法使用的是Lock机制,理解为“先入先出队列”。若进程的锁定请求无法满足,该进程的Lock Structure将被添加到Waiter链表的末端。当占用进程释放锁时,会检查Waiter和Converter队列,优先分配给最先请求的进程。若进程需要两种不同模式的锁(如Share Mode和Exclusive Mode),它会首先请求Share Mode,该锁的Lock Structure挂在Owner链表上。之后,若需Exclusive Mode锁,进程必须释放Share Mode锁并申请新的锁,此请求则挂在Convertor链表上,Convertor优先于Waiter进行处理。
Oracle
0
2024-11-03
触发器的运作原理
当你执行INSERT语句向表中插入数据时,如果存在触发器,它将会自动执行。触发器会在数据插入到触发器表和inserted表后触发。inserted表是一个逻辑表,它包含了刚插入的数据行的副本。inserted表允许你引用INSERT语句所记录的插入动作。触发器会检查inserted表来判断是否需要执行触发器动作,以及如何执行。inserted表中的行总是触发器表中一行或多行的副本。触发器确保在INSERT触发时执行必要的操作。
SQLServer
0
2024-09-14
创建触发器的语句类型Oracle PL/SQL编程指南
可以创建被如下语句所触发的触发器: (1)DML语句(DELETE,INSERT,UPDATE); (2)DDL语句(CREATE,ALTER,DROP); (3)数据库操作(SERVERERROR,LOGON,LOGOFF,STARTUP,SHUTDOWN)。
Oracle
0
2024-11-03