大数跨境
0
0

Oracle数据库RAC功能

Oracle数据库RAC功能 云容灾备份安全治理
2018-08-15
5
导读:RAC结构组成:(1) 集群的节点(cluster nodes) 2个到n节点或者主机运行Oracle D

RAC结构组成:

(1) 集群的节点(cluster nodes)  2个到n节点或者主机运行Oracle Database Server.

(2) 私有网络(Network Interconnect)  RAC之间需要一个高速互联的私有网络来处理通信和Cache Fusion。

(3) 共享存储(Shared Storage)    RAC需要共享存储设备让所有的节点都可以访问数据文件。

RAC的特点:

(1) 每一个节点的instance都有自己的SGA。

(2) 每一个节点的instance都有自己的background process

(3) 每一个节点的instance都有自己的redo logs。

(4) 每一个节点的instance都有自己的undo表空间。

(5) 所有节点都共享一份datafiles和controlfiles.

总结:每个节点都有SGA、background process、redo logs、undo表空间。

         共享的存储上存放datafiles、controlfiles

RAC数据库和单实例数据库的区别

      为了让RAC中的所有实例能够访问数据库,所有的datafiles、control files、pfile/spfile、redo log files都必须保存在共享磁盘上,

并且都能被所有节点同时访问,就涉及裸设备(raw)和集群文件系统等。

在结构上区别

至少为每个实例多配置一个redo线程,如:两个实例组成的集群至少要4个redo log group,另外要为每个实例准备一个undo表空间。

(1) redo和undo

     很显然,每个实例在数据库的修改时各用各的redo和undo段,各自锁定自己修改的数据,把不同实例的操作独立开,避免了数据不一致。

后面就要考虑备份或恢复时redo log和归档日志在这种情况下的特殊考虑了。

(2) 内存和进程

各个节点的实例都有自己的内存结构和进程结构,各节点之间结构是基本相同的。

通过Cache Fusion(缓存融合)技术,RAC在各个节点之间同步SGA中的缓存信息,达到提高访问速度的效果,也保证了一致性。

后台进程Background process

Oracle RAC 有一些自己独特的后台进程,在单一实例中不发挥配置作用。

LMS    (Global Cache Service Monitor) 全局缓存服务进程

   进程主要用来管理集群内数据块的访问,并在不同的实例的Buffer Cache中传输数据块镜像。

 直接从控制的实例的缓存复制数据库块,然后发送一个副本到请求实例上。并保证在所有实例的Buffer Cache中一个数据

块的镜像只能出现一次。

   LMS进程保证了在每一时刻只能允许一个实例去更新数据块,并负责保持该数据块的镜像记录(包含更新数据块的状态FLAG),

Oracle RAC 提供了多达10个LMS进程(0-9),这取决于消息传递通信量。

LMON(Lock Monitor Process) 锁监控进程

   是全局队列服务监控服务器,各个实例的LMON进程会定期通信,以检查集群中各个节点的健康状态,当某个节点出现故障时,

负责集群重构、GRD恢复等操作,它提供的服务CGS(Cluster Group Services)

   LMON主要借助两种心跳机制来完成健康检查。

 (1)节点间的网络心跳(Network Heartbeat): 可以想象成节点间定时的发送ping包检测节点状态,如果能在规定时间内收到回应,

就认为对方状态正常。

 (2)通过控制文件的磁盘心跳(Controlfile Heartbeat):每个节点的CKPT每3秒检查一次控制文件的一个数据块,这个数据块叫作Checkpoint

Progress Record,控制文件是共享的,所以实例间可以相互检查对方是否及时更新来判断。  

LMD (Global Enqueue Service daemo )  锁管理器守护进程

   是一个后台代理进程,即全局服务队列守护进程),因为负责对资源管理要求来控制访问块和全局队列,还负责死锁检查和监控转换超时。

LCK   (Lock Process) 锁进程

   管理非缓存融合,锁请求是本地的资源请求,LCK进程管理共享资源的实例的资源请求和跨实例调用操作。在恢复过程中它建立一个无效锁

元素的列表,并验证锁的元素。

DIAG(the diagnosability daemon,诊断守护进程)负责捕获RAC环境中进程失败的相关信息,并将跟踪信息写出用于失败分析,DIAG产生的信息

在Oracle Support技术合作来寻找导致失败的原因方面是非常有用的。每个实例仅需要一个Diag进程。

GSD(the global service daemon,全局服务进程) 

   与RAC的管理工具dbca、srvctl、oem进行交互,用来完成实例的启动关闭等管理任务。为了保证这些管理工具运行正常必须在所选的节点上先 start gsd

并且一个GSD进程支持在一个节点的多个rac.gsd进程位于$ORACLE_HOME/bin目录下,其log文件为$ORACLE_HOME/srvm/log/gsdaemon.log。

GCS和GES两个进程负责通过全局资源目录(Global Resource Directory GRD)维护每个数据文件和缓存块的状态信息。

CKPT (Checkpoint Process) 检查点进程

LGWR (Log writer Process) 日志写进程        => Redolog files

DBWR (Database Writer Process) 数据写进程  =>Data files & Control Files

SCN (System Change Number)

SCN是Oracle 用来跟踪数据库内部发生变化后顺序的机制,相当于高精度的时钟,每个redo日志条目,Undo Data Block都会有SCN号。Oracle的Consistent-Read

(一致性读),Current-Read,Multiversion-Block都是依赖SCN实现。

1. Clusterware的主要进程

(1) crsd: 负责集群的高可用操作,管理crs资源db、instance、listener、vip、ons、gsd等,操作包括启动、关闭、监控及故障切换。该进程由root或者操作系统管理员管理和启动。

crsd如果有故障会导致系统重新启动。

(2)cssd:管理各个节点间的关系,用于节点通信,节点在加入或离开集群的时候通知cluster,这个进程由Oracle用户运行管理,发生故障的时候cssd也会自动重新启动系统。

(3)Process Monitor Daemon (OPROCD): 集群进程管理,用于保护共享数据I/O fencing仅在没有使用vendor的集群软件状态下运行。锁定在内存中监视集群运行并执行I/O隔离。

利用hangchecker,监测、停止、在监测、再停止,如果醒来时间不对则重启该节点。

(4) evmd: 事件监测进程,由Oracle用户运行管理。

Cluster Ready Services (CRS,集群准备服务) 是管理集群内高可用操作的基本程序。CRS管理的任何事务称为资源,他们可以是一个数据库、一个实例、一个监听、一个虚拟IP(VIP)地址、

一个应用进程等。CRS是根据存储于OCR中的资源配置信息来管理这些资源的。这包括启动、关闭、监控及故障切换(start、stop、monitor、failover)操作。当一资源的状态改变时,

CRS进程生成一个事件。CRS进程生成一个事件。当用户安装RAC时,CRS进程监控Oracle的实例、监听等,并在故障发生时自动启动这些组件。默认情况下,CRS进程会进行5次重启操作,

如果资源仍然无法启动则不再尝试。

Event Management (EVM): 后台进程发布有CRS生成的事件。

Oracle Notification Service(ONS): 通信FAN消息的发布和订阅服务。

RACG: 扩展集群支持Oracle特定的需求和复杂的资源。

Cluster Synchronization Services(CSS集群同步服务):管理集群配置,谁是成员、谁来、谁走、通知成员,是集群环境中进程间通信的基础。

CSS可用于在单实例环境中处理ASM实例与常规RDBMS实例之间的交互作用。还提供了组服务,即关于在任意给定时间内哪些节点和实例构成集群的动态信息,节点的名称和节点数的静态信息

(这些信息在节点被加入或移除时被修改)。CSS维护集群内的基本锁功能。

CSS还负责在集群内节点间维持一个心跳的程序,并监控投票磁盘的Split-brain故障。


【声明】内容源于网络
0
0
云容灾备份安全治理
分享云灾备规划、实施、运营、备份与恢复、数据安全、数据治理;窥视国内外备份软件与监控软件知识前沿水平线; 越努力,越幸运!
内容 2171
粉丝 0
云容灾备份安全治理 分享云灾备规划、实施、运营、备份与恢复、数据安全、数据治理;窥视国内外备份软件与监控软件知识前沿水平线; 越努力,越幸运!
总阅读8.0k
粉丝0
内容2.2k