1.说一下RAC和单节点数据库的区别有哪些?你认为RAC最有用的功能是说什么?

区别

(1)RAC有2个以上的实例,单节点只有1个实例

(2)RAC具有实例级别的高可用

(3)实例与实例之间通过内联网络交换数据,单节点不可

(4)RAC每个节点都有自己套SGA、后台进程、redo log、undo file

(5)RAC可以增减节点

RAC最有用的功能

答:我认为RAC最有用的功能就是实例级的failover,它可以保证在其中有节点crash的时候,其他节点可以迅速接管。保证系统持续可用。往往人们会认为RAC有2个节点性能就会提升2倍,这是一个误区,由于要保证数据的一致性往往性能会消耗在内存间的数据块相互拷贝和交叉上,因此不一定性能会好于单节点,而且节点越多性能曲线就会下降越快。

2.用ps命令查到属于crs集群软件的进程名称,贴出输出结果。

CRS集群进程是属于Clusterware集群软件自己的进程,不同于RAC实例后台进程

下面分别说明一下Clusterware集群软件自己的进程功能

1.crs集群资源进程:全称cluster ready services,作用为管理集群中所有资源的进程,资源例如数据库监听实例内存进程

VIP 应用程序集群 ASM

crs进程是根据存储于OCR中的资源配置信息来管理这些资源的。

2.css 集群同步进程:全称 cluster synchronization service,作用为管理集群节点成员的进程,在增减集群节点时收集节点最新状态并同步到所有节点上。这个进程发生故障会导致集群重启

3.EVM 事件管理进程:全称 Event Management,作用为发布和记录事件的进程,发布CRS创建事件的后台进程,只要哪个进程发生问题,EVMD就会把事件写入trace文件。

EVMD称作事件管理守护进程

4.ONS 事件发布及订阅进程:全称 Oracle Notification Service,作用为快速通知事件的发布及订阅服务

3.说一下在RAC环境下,数据库实例会多出哪些后台进程,用ps命令查找,给出输出结果,并说明它们的作用。

RAC模式下Oracle数据库比单节点要多出许多后台进程,这些后台进程都是用于集群管理和监控的,下面我们简单介绍一下它们的作用。

1.LMSn  - gobal cache service process 全局缓存服务进程小n从零开始分配

1)RAC提供了10个LMS进程,会随着节点间消息传递的数据量的增加而增加,默认至少有2个LMS进程

2)LMS进程主要管理集群内数据块的访问,并在不同实例的buffer cache中传递数据块镜像

3)LMS进程保证了每一时刻只允许一个实例去修改数据块

4)当一个实例请求数据块时,拥有该资源的实例的LMS进程会创建一个数据块镜像的一致性读。然后把该数据块传递到请求资源的实例的buffer cache中。

2.LMON  - Global Enqueue Service Monitor 全局队列服务监控进程

1)监控整个集群的内存结构

2)处理异常终止的进程和实例

3)当有实例加入集群和离开集群时,全局锁定和资源的重新分配

4)提供全局锁资源的恢复操作

5)监控全局的锁资源处理死锁和阻塞

3.LCK  - LOCK  Process

1)LCK进程主要用来管理实例间资源请求和跨实例调用操作,调用操作包括数据字典等对象的访问

2)处理非cache fusion 的cache资源请求,像 dictionary cache或row cache

4.LMD – Global Enqueue Service Daemon全局队列服务守护进程

1)LMD进程主要管理对全局队列和资源的访问,并更新相应队列的状态,处理来自于其他实例的资源请求。

2)每一个全局队列的当前状态存储在相应的实例共享内存中,该状态表明该实例具有相应的权利使用该资源。

3)LMD进程还负责队列的死锁问题

5.DIAG – Diagnostic Daemon 诊断守护进程

1)Oracle10g新的后台进程

2)主要用来捕获实例中失败进程的诊断信息,并生成相应的trace文件

3)此进程不需要配置,自动启动无需调整

4)如果该进程失败则自动重启

具体进程结构请参考下面的图示

我们使用ps命令输出10g和11g的RAC实例后台进程

10g RAC特有进程:
$ ps -ef|grep ora_
oracle    4721     1  0 Feb26 ?        00:00:00 ora_diag_ONEPIECE1
oracle    4725     1  0 Feb26 ?        00:02:26 ora_lmon_ONEPIECE1
oracle    4727     1  0 Feb26 ?        00:00:02 ora_lmd0_ONEPIECE1
oracle    4729     1  0 Feb26 ?        00:00:01 ora_lms0_ONEPIECE1
oracle    4733     1  0 Feb26 ?        00:00:01 ora_lms1_ONEPIECE1
oracle    4761     1  0 Feb26 ?        00:00:07 ora_lck0_ONEPIECE1
oracle    4772     1  0 Feb26 ?        00:00:00 ora_asmb_ONEPIECE1
oracle    4776     1  0 Feb26 ?        00:00:00 ora_rbal_ONEPIECE1
oracle    4840     1  0 Feb26 ?        00:00:00 ora_o001_ONEPIECE1

11g RAC特有进程:
$ ps -ef|grep ora_
oracle     426     1  0 Feb27 ?        00:00:08 ora_o000_RAC11G21
oracle    9082     1  0 Feb25 ?        00:01:09 ora_diag_RAC11G21
oracle    9086     1  0 Feb25 ?        00:00:27 ora_ping_RAC11G21
oracle    9088     1  0 Feb25 ?        00:00:06 ora_acms_RAC11G21
oracle    9092     1  0 Feb25 ?        00:05:27 ora_lmon_RAC11G21
oracle    9094     1  0 Feb25 ?        00:01:32 ora_lmd0_RAC11G21
oracle    9096     1  0 Feb25 ?        00:02:07 ora_lms0_RAC11G21
oracle    9100     1  0 Feb25 ?        00:00:06 ora_rms0_RAC11G21
oracle    9102     1  0 Feb25 ?        00:00:14 ora_lmhb_RAC11G21
oracle    9116     1  0 Feb25 ?        00:00:09 ora_rbal_RAC11G21
oracle    9118     1  0 Feb25 ?        00:00:05 ora_asmb_RAC11G21
oracle    9136     1  0 Feb25 ?        00:04:25 ora_lck0_RAC11G21
oracle    9138     1  0 Feb25 ?        00:00:14 ora_rsmn_RAC11G21
oracle    9295     1  0 Feb25 ?        00:00:07 ora_gtx0_RAC11G21
oracle    9297     1  0 Feb25 ?        00:00:07 ora_rcbg_RAC11G21

4.画图说明,当RAC中的一个实例down掉之后,其它实例是如何接管这个实例上的事务的?

如图所示:我们现在拥有2个节点,我们在这2个节点上部署RAC集群,每个节点上创建一个实例,这2个节点使用内联网传输数据和信息,同时共享一个存储磁阵。介绍完了RAC架构,下面叙述一下RAC的实例级容错。

场景:在生产使用中,突然instance1  shutdown,那么在其上面没有完成的事物如何处理呢。

1)当实例1 crash后,实例2通过VIP就可以知道实例1已经down了。

2)此时需要处理的有2部分数据,一部分是commit的数据,一部分非commit数据

3)对于已经commit写入redo日志但是还没有来得及写入数据文件的记录,实例2可以访问实例1的redo log并从最后一次check point之后的信息开始实例恢复。把数据同步到最新状态。

4)对于没有commit的数据利用undo旧映像进行回滚事物。

RAC   CRS   集群  failover  后台进程

Leonarding

2013.06.26

北京&summer

分享技术~成就梦想

Blog:www.leonarding.com

【原创】Oracle RAC原理和安装相关推荐

  1. 资源放送丨《Oracle RAC 集群安装部署》PPT视频

    点击上方"蓝字" 关注我们,享更多干货! 前段时间,墨天轮邀请数据库资深专家 邦德 老师分享了<Oracle RAC 集群安装部署>,在这里我们将课件PPT和实况录像分 ...

  2. 今晚8点直播(内含福利)丨 Oracle RAC集群安装部署

    Oracle RAC集群安装部署-9月16日20:00 Oracle RAC真正的应用集群,它可以多个主机共同分散业务,来达到负载均衡和高可用,目前企业也大规模应用,具有稳定,很好的扩展性等特点. 作 ...

  3. 本周四直播预告(内含福利)丨 Oracle RAC集群安装部署

    Oracle RAC集群安装部署-9月16日20:00 Oracle RAC真正的应用集群,它可以多个主机共同分散业务,来达到负载均衡和高可用,目前企业也大规模应用,具有稳定,很好的扩展性等特点. 作 ...

  4. 金仓KFS for Oracle RAC one node安装部署

    KFS for Oracle RAC one node安装部署 Oracle RAC one node是运行在Oracle RAC集群上的单实例数据库,当实例所在的节点出现问题后,实例可以自动转移到其 ...

  5. Oracle RAC 11G补丁安装最佳实践

    Oracle RAC 11G补丁安装最佳实践 一.准备阶段 二.GI 部分 2.1 升级GI opatch 2.2 root下生成ocm模板文件 2.3 停止EM 2.4 解压GI PSU压缩包 2. ...

  6. oracle r a c,Oracle RAC原理详解

    real application clusters(RAC) 1.什么是cluster 一个cluster是由两个或多个独立的.通过网络连接的servers组成的.集群的目的主要有两方面:提高可用性, ...

  7. oracle rac linux下安装

    环境: 在64位RHEL 下安装virtualbox,并创建rac1.ad.com 和rac2.ad.com 主机,所以的都是使用64位版本 Oracle:11.2.0.3 64bit 0:设置时间同 ...

  8. Oracle RAC集群安装,从零开始

    作者:IT邦德 中国DBA联盟(ACDU)成员,目前从事DBA及程序编程 (Web\java\Python)工作,主要服务于生产制造 现拥有 Oracle 11g OCP/OCM. Mysql.Oce ...

  9. oracle vault 权限,详说Oracle Vault——原理、安装与配置

    4.调用dbca启动 在支持GUI的界面方式下,调用dbca启动编译. 点击下一步Next,选择Configure Database Options项目.之后选择目标数据库. 从选项中,选择上Labe ...

最新文章

  1. [POJ3253]Fence Repair
  2. PP面向订单生产模式探讨
  3. boost::uuid模块实现用窄存档测试序列化 uuid的测试程序
  4. Jest 测试框架 beforeEach 的设计原理解析
  5. 剑指 Offer 10- I. 斐波那契数列 (从重叠子问题到备忘录到dp数组迭代解法)
  6. Kaggle初体验之泰坦尼特生存预测
  7. 三年JAVA开发经验如何做到年薪35万
  8. 如何用stata画莫兰散点图_图说meta十四:漏斗图暨Stata软件使用方法简介
  9. php结合美图秀秀,美图秀秀头像编辑器的使用?thinkphp+七牛方案
  10. 冬雷快递单打印软件anyPrint
  11. 微软补丁地址以及查找方式
  12. 编码器/译码器(Verilog HDL)|计算机组成
  13. java mp3文件合并,java怎么实现mp3合并
  14. golang的json的时间格式化解决方案
  15. ZZULIOJ:1035: 分段函数求值
  16. Mr. Kitayuta vs. Bamboos
  17. OpenMW版本,Zotac蒸汽机评论以及更多开放式游戏新闻
  18. GPU测试单张图片时间过长
  19. c语言atof函数_atof()函数与C ++中的示例
  20. 在flutter使用地图插件进行定位

热门文章

  1. 基于Linux CentOS搭建FTP服务
  2. Fluent API — 流畅API(基于Java介绍)
  3. [Ext JS 4] 实战之 Picker 和 Picker Field
  4. 通过函数名字符串调用函数【C语言版】
  5. 代理ip网站开发_网站反爬虫策略,用代理IP都能解决吗?
  6. java jdbc oracle rac_JDBC连接oracle RAC数据库配置
  7. 作为参数给后端为空_后端 API 接口文档 Swagger 使用指南
  8. 牛客网训练赛26D(xor)
  9. -bash: ifconfig: 未找到命令
  10. 火狐浏览器的导出和导入