split brain

1、 Oracle Cluster Registry (OCR)

OCR 用于解决集群中的健忘症的问题,

集群环境配置文件不是集中存放的,而是每个节点都有一个本地副本,在集群正常运行时,用户可以在任何节点更改集群的配置,并且这种更改会自动同步到其他节点。

有一种特殊情况: 节点A 正常关闭, 在节点B上修改配置, 关闭结点A,启动结点B。 这种情况下,修改的配置文件是丢失的, 就是所谓的健忘症。

OCR是部署在共享磁盘上的,并且在集群中只有一个几点的进程可以操作OCR中的数据。

The Oracle RAC configuration information repository that manages information about the cluster node list and instance-to-node mapping information. The OCR also manages information about Oracle Clusterware resource profiles for customized applications.

Oracle的OCR(Oracle Cluster Registry)称作Oracle集群注册表,OCR提供了集群软件与其他应用程序进程之间共享信息的途径。OCR记录了集群软件所管理资源的信息,以键值对的树状结构进行存储。

Oracle提供了ocrdump工具用来获取OCR的内容,通过了解其结构和内容有助于对OCR进行深入的了解。

在SUSE 10中/etc/oracle/ocr.loc 中记录了OCR的位置

2、获取OCR的备份目录信息

oracle@asm1:~> ocrconfig -showbackup

asm1     2011/12/02 16:41:25     /opt/oracle/crs/oracle/product/11.1.0/crs/cdata/asm_cluster/backup00.ocr

asm1     2011/12/02 12:41:25     /opt/oracle/crs/oracle/product/11.1.0/crs/cdata/asm_cluster/backup01.ocr

asm1     2011/12/02 08:41:25     /opt/oracle/crs/oracle/product/11.1.0/crs/cdata/asm_cluster/backup02.ocr

asm1     2011/12/01 16:41:24     /opt/oracle/crs/oracle/product/11.1.0/crs/cdata/asm_cluster/day.ocr

asm1     2011/11/24 20:41:21     /opt/oracle/crs/oracle/product/11.1.0/crs/cdata/asm_cluster/week.ocr

3.OCR的树形结构

全面查看OCR的内容后可以总结出如下的树形结构。

key-values

root

├─SYSTEM

│  ├─css

│  ├─language

│  ├─version

│  ├─ORA_CRS_HOME

│  ├─local_only

│  ├─evm

│  ├─crs

│  └─OCR

├─DATABASE

│  ├─NODEAPPS

│  ├─LOG

│  ├─ASM

│  ├─DATABASES

│  │  ├─SERVICE

│  │  └─INSTANCE

│  └─ONS

└─CRS

简单对上述三类键值的功能做下述简要描述:

1)SYSTEM键包含了与Oracle Clusterware主要进程CSSD、CRSD和EVMD的相关数据;

2)DATABASE键包含了在Oracle Clusterware注册的RAC数据库相关的数据;

3)OCR键记录了与资源概要文件相关的信息,维护其他注册到Oracle Clusterware的应用程序的可用性。

上述结构信息可以通过ORACEL的OCRDUMP工具获得

OCRDUMP Utility Examples

The following ocrdump utility examples extract various types of OCR information and write it to various targets:

ocrdump

Writes the OCR content to a file called OCRDUMPFILE in the current directory.

ocrdump MYFILE

Writes the OCR content to a file called MYFILE in the current directory.

ocrdump -stdout -keyname SYSTEM

Writes the OCR content from the subtree of the key SYSTEM to stdout.

ocrdump -stdout -xml

Writes the OCR content to stdout in XML format

从备份中还原OCR

1、关闭运行在集群数据库的所有节点上的CRS服务程序                                

/etc/init.d/init.crs stop

2、通过ocrconfig 的showbackup选项查看最近的备份                                  

ocrconfig -showbackup

3、通过ocrconfig的restore或import选项导入OCR数据              

   ocrconfig  -restore filename_location                          

   ocrconfig  -import  filename_location                           

注意:使用restore选项只能导入OCR自动产生的物理备份,同样import选项只能导入通过export选项导出的的逻辑备份。

4、在所有节点上重新启动CRS                                             

/etc/init.d/init.crs   start

常用命令:

ocrcheck

ocrconfig

ocrdump

ocrpatch

VOTEDISK

VOTEDISK是用于解决脑裂(Split Brain)的问题。

在集群中,节点间通过某种机制(心跳)了解彼此的健康状态,以确保各节点协调工作。 假设只有"心跳"出现问题, 各个节点还在正常运行, 这时,每个节点都认为其他的节点宕机了, 自己是整个集群环境中的"唯一建在者",自己应该获得整个集群的"控制权"。 在集群环境中,存储设备都是共享的, 这就意味着数据灾难, 这种情况就是"脑裂"

解决这个问题的通常办法是使用投票算法(Quorum Algorithm). 它的算法机理如下:

集群中各个节点需要心跳机制来通报彼此的"健康状态",假设每收到一个节点的"通报"代表一票。对于三个节点的集群,正常运行时,每个节点都会有3票。 当结点A心跳出现故障但节点A还在运行,这时整个集群就会分裂成2个小的partition。 节点A是一个,剩下的2个是一个。 这是必须剔除一个partition才能保障集群的健康运行。

对于有3个节点的集群,A 心跳出现问题后,B 和C 是一个partion,有2票,A只有1票。 按照投票算法,B 和C 组成的集群获得控制权,A 被剔除。

如果只有2个节点,投票算法就失效了。 因为每个节点上都只有1票。 这时就需要引入第三个设备:Quorum Device. Quorum Device 通常采用饿是共享磁盘,这个磁盘也叫作Quorum disk。 这个Quorum Disk 也代表一票。 当2个结点的心跳出现问题时,2个节点同时去争取Quorum Disk 这一票, 最早到达的请求被最先满足。 故最先获得Quorum Disk的节点就获得2票。另一个节点就会被剔除。

查看votedisk的存储信息:

erpdb1$[/home/oracle]crsctl query css votedisk

0.     0    /dev/jcerp_vote_disk3

1.     0    /dev/jcerp_vote_disk1

2.     0    /dev/jcerp_vote_disk2

located 3 votedisk(s).

备份votedisk: dd if=/dev/raw/votediskcopied of=/dev/raw/raw1

恢复votedisk: dd if=/dev/raw/raw1 of=/dev/raw/votediskcopied

摘自 wangjiuyong的专栏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值