Oracle Clusterware由2部分组成,分别是Voting Disk和 OCR。

Voting Disk里面记录着节点成员的信息。

如RAC数据库中有哪些节点成员,节点增加或者删除时也同样会将信息记录进来。Voting Disk必须存放在共享存储上,通常来说是存放在裸设备(字符设备)上。

Voting Disk主要为了在出现脑裂时,决定那个Partion获得控制权,其他的Partion必须从集群中剔除。为了保证Voting Disk的安全,需要配置多个Voting Disk,Voting disk使用的是一种“多数可用算法”。当有多个Voting  disk时,则必须一半以上的Votedisk同时使用,Clusterware才能正常使用。 比如配置了4个Votedisk,坏一个Votedisk,集群可以正常工作,如果坏了2个,则不能满足半数以上,集群会立即宕掉,所有节点立即重启,所以如果添加Votedisk,尽量不要只添加一个,而应该添加2个。Oracle建议Voting Disk的个数应该为奇数个,如 1、3、5个,每个Voting Disk的大小约为20MB。

维护Voting Disk

注意:对Voting Disk的更改必须用root来进行,添加或删除Voting Disk都必须在crs资源关闭的情况下进行,同时即使在CRS关闭情况下仍然需要使用-force参数

查看Voting Disk

备份Voting Disk 
#dd if=/dev/raw/raw2 f=/home/oracle/voting_disk.bak

恢复Voting Disk 
#dd if=/home/oracle/voting_disk.bak f=/dev/raw/raw2

-----------------------------------------------------------------------

OCR:oracle集群注册(oracle cluster register) 负责维护整个集群的配置信息,包括RAC以及Clusterware资源,包括的信息有节点成员、数据库、实例、服务、监听器、应用程序等。为了解决集群 的“健忘”问题,整个集群会有一份配置OCR,最多两分OCR,一个primary OCR和一个mirror OCR互为镜像,以防OCR的单点故障。

ORACLE 把集群的配置文件放在共享存储上叫做OCR DISK。 节点通过OCR Process读写OCR。 但只有一个节点能够读写OCR DISK 叫OCR Master节点,其它节点通过本节点的OCR process 向master node的OCR process提交请求,由master OCR Process完成物理读写,并同步所有节点OCR cache中的内容。就OCR而言,每个集群都会有一个Master节点,这个节点一半来说是集群中生存时间最长的那个节点(生存时间最长也就意味着该节 点越稳定)。

我们在安装Clusterware的在选择OCR的存储位置时,如果选择"Normal Redundancy",则会存储两份相互镜像的OCR。如果选择"External Redundancy"则表明存储本身已经坐了冗余配置,不需要创建镜像OCR。该位置会记录在/etc/oracle/ocr.loc(Linux)或 /var/opt/oracle/ocr.loc(Solaris)中。

OCR存储的配置信息是以目录树的形式来记录一系列“键-值”对应信息 的。OCR记录着 CRS进程管理资源的所有配置信息,大小约为100MB。OCR key:有3个大分支,分别是SYSTEM.css,DATABASE 和CRS。每个分支下面又有许多小分支。这些记录的信息只能由root用户修改。

由于 OCR的信息十分重要,Oracle会每4小时队其做一次备份,并且保留最后的3个备份,以及前一天、前一周的最后一个备份。这个备份由Master Node的CRSD进程完成,备份的默认位置为$CRS_HOME/crs/cdata/<cluster_name>目录下。每次备份后, 备份文件的名字会自动变更,以反映备份时间顺序,最近一次备份叫做backup00.ocr。建议DBA除了在本地保留这些备份外,还应在其他存储设备上 保留一份备份,以防止意外的存储故障。

----------------------------------------------------------------------------

Linux中I/O设备分为两类:字符设备和块设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类。

(1) 字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,键盘、串口、调制解调器都是典型的字符设备。

(2) 块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘、软盘、CD-ROM驱动器和闪存都是典型的块设备,应用程序可以寻址磁盘上的任何位置,并由此读取数据。此外,数据的读写只能以块(通常是512B)的倍数进行。与字符设备不同,块设备并不支持基于字符的寻址。

总结一下,这两种类型的设备的根本区别在于它们是否可以被随机访问。字符设备只能顺序读取,块设备可以随机读取。

参考资料:http://czmmiao.iteye.com/blog/1758360

最新文章

  1. Mac下启动和停止Mysql服务
  2. 解决JSP页面获取的数据库数据乱码问题
  3. haxe jni调用输入法
  4. guava学习--FutureFallback
  5. Java集合类简单总结(重学)
  6. gcc参数-l传递顺序错误导致`undefined reference&#39;的一点小结
  7. 新功能WBS
  8. Java中成员变量和局部变量的区别
  9. 如何查看mac系统是32位还是64位的操作系统
  10. Folding
  11. iOS RSA 加密解密及签名验证
  12. Android 基于Netty的消息推送方案之Hello World(一)
  13. DB2 权限控制
  14. java通过JDBC链接SQLServer2012【转载!!!超详细】
  15. dom4j详解
  16. 小谈iOS屏幕适配问题
  17. 动态规划算法的java实现
  18. TensorFlow升级到1.13
  19. iOS:NSFileHandle和NSFileManger的使用
  20. h5手机端禁止缩放问题

热门文章

  1. FastDFS 环境搭建
  2. 安装VS2012出问题后,反复重启电脑。
  3. BASIC-5_蓝桥杯_查找整数
  4. HA 部署wordpress
  5. oracle学习操作(1)
  6. springMVC学习(4)-商品修改(RequestMapping解释、controller返回值)
  7. HDU 1269 迷宫城堡(向量)(Tarjan模版题)
  8. java并发编程 Executor,Executors,ExecutorService,CompletionService,Future,C
  9. linux中的ftp命令
  10. xshell配置通过堡垒机直接登陆到内网机器