热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

OracleRAC之表决磁盘(votedisk)

因分析deadlock耽误了写RAC的东西,今天再来写篇RAC中表决磁盘的管理日志。特此记录一下。表决磁盘(votedisk)是为因网络导致脑

因分析deadlock耽误了写RAC的东西,今天再来写篇RAC中表决磁盘的管理日志。特此记录一下。表决磁盘(votedisk)是为因网络导致脑

今天是2014-03-26,因分析deadlock耽误了写RAC的东西,今天再来写篇RAC中表决磁盘的管理日志。特此记录一下。
表决磁盘(votedisk)是为因网络导致脑裂的情况而创建的。表决磁盘在11G存储在ASM中,且如果放入ASM将有几点要求。
第一:表决磁盘文件必须全部放入ASM中;
第二:表决磁盘存在asm中的个数不能删除和添加,而是通过asm的normal,high、external冗余级别决定的。
如:在normal中必须有3个故障组存在3个votedisk,在high中必须要有5个故障组存在5个votedisk,那么在external只有1个votedisk
第三:表决磁盘文件在11G不在支持dd命令对其的备份和还原,而是支持crsctl相关命令
第四:表决磁盘文件的个数要是奇数,便于投票选举,,且表决磁盘文件的个数最多为15个,但一般没必要超过5个。
介绍一下对于网络导致脑裂中表决磁盘的选举过程。
假如我有三个RAC实例节点分别是A,B,C那么当A节点宕机了,那么在11G中通过先尝试停止响应的资源,进而剔除该节点,那么为什么会剔除该节点呢?那是因为当发生脑裂的时候
当发生脑裂的时候被分割成两部分,A 为一部分投票为1,BC为一部分投票为2,那么更具选举会选择票数多的那方,从而剔除A;刚刚这是三个节点的例子
那么对于两个实例组成的RAC怎么处理呢?那么这个时候表决磁盘就起到一定的作用了,当脑裂发生了,那么每一方都持一票,谁也不能剔除谁?这可怎么办呢?那么Oracle会选择
存留首先获得表决磁盘文件多的那方,将组成一个集群从而剔除另一方。通常我们所说的磁盘心跳就是通过共享磁盘中的表决磁盘来检测的。
eg:
[grid@rac-one peer]$ crsctl get css disktimeout
CRS-4678: Successful get disktimeout 200 for Cluster Synchronization Services.
[grid@rac-one peer]$
通过ocssd进程来管理
如何移动表决磁盘文件到另一asm磁盘组呢?
eg:
[grid@rac-two ~]$ sqlplus / as sysasm

SQL*Plus: Release 11.2.0.4.0 Production on Tue Mar 25 23:31:24 2014

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options

SQL> col name for a20
SQL> col path for a40
SQL> set linesize 200
SQL> select a.name,b.name,b.path,b.voting_file from v$asm_disk b,v$asm_diskgroup a where a.group_number=b.group_number;

NAME NAME PATH V
-------------------- -------------------- ---------------------------------------- -
DATADG DATADG_0000 /dev/asm-diskg N
TESTDG TESTDG_0004 /dev/asm-diskh N
TESTDG TESTDG_0000 /dev/asm-diski N
TESTDG TESTDG_0001 /dev/asm-diskj N
TESTDG TESTDG_0003 /dev/asm-diskf N
GIDG GIDG_0001 /dev/asm-diskc Y
TESTDG TESTDG_0002 /dev/asm-diskk N
GIDG GIDG_0000 /dev/asm-diskd Y
GIDG GIDG_0002 /dev/asm-diske Y
DATADG DATADG_0001 /dev/asm-diskb N

10 rows selected.

SQL> exit
另外还可以使用crsctl query css votedisk 获得信息
[grid@rac-two ~]$ crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 3da4160ba0334f66bf4b2e6e9b38cceb (/dev/asm-diskd) [GIDG]
2. ONLINE 2797b9ed25e84f34bf8fa5948c8fedb6 (/dev/asm-diske) [GIDG]
3. ONLINE 69ade332aa214f3abfd8b77a410019b0 (/dev/asm-diskc) [GIDG]
Located 3 voting disk(s).
当votedisk属于asm组从而移动votedisk的时候将不能使用crsctl add css votedisk命令,否则会报错。但是如果原先votedisk属于集群文件系统文件,那么可以使用该命令进而replace
完成操作。
[grid@rac-two ~]$ crsctl add css votedisk +testdg
CRS-4671: This command is not supported for ASM diskgroups.
CRS-4000: Command Add failed, or completed with errors.
将votedisk从磁盘组GIDG 移动到TESTDG
[grid@rac-two ~]$ crsctl replace votedisk +TESTDG
Successful addition of voting disk 98f8244772c74fc0bf8c5ddc699775f1.
Successful addition of voting disk aa123f79eef94f9ebf12ed0953a3caa6.
Successful addition of voting disk 42e16333baa44f78bf00840265bff13d.
Successful deletion of voting disk 3da4160ba0334f66bf4b2e6e9b38cceb.
Successful deletion of voting disk 2797b9ed25e84f34bf8fa5948c8fedb6.
Successful deletion of voting disk 69ade332aa214f3abfd8b77a410019b0.
Successfully replaced voting disk group with +TESTDG.
CRS-4266: Voting file(s) successfully replaced
[grid@rac-two ~]$ crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 98f8244772c74fc0bf8c5ddc699775f1 (/dev/asm-diski) [TESTDG]
2. ONLINE aa123f79eef94f9ebf12ed0953a3caa6 (/dev/asm-diskk) [TESTDG]
3. ONLINE 42e16333baa44f78bf00840265bff13d (/dev/asm-diskf) [TESTDG]
Located 3 voting disk(s).
[grid@rac-two ~]$
备份表决磁盘文件。
刚刚介绍了无需备份
如果磁盘文件损坏了那么如何修复呢?
首先要独占模式启动crs资源
crsctl start crs -excl
如果是存在asm中,使用crsctl replace votedisk +diskgroup
完成修复
如果是存在集群文件系统,那么需要查看votedisk信息,crsctl query css votedisk然后删除原先的失效的votedisk,进而在添加votedisk
命令为:crsctl add css votedisk ‘path',
然后再使用root停止crs,crsctl stop crs
然后再使用root启动crs ,crsctl start crs


推荐阅读
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 推荐一个ASP的内容管理框架(ASP Nuke)的优势和适用场景
    本文推荐了一个ASP的内容管理框架ASP Nuke,并介绍了其主要功能和特点。ASP Nuke支持文章新闻管理、投票、论坛等主要内容,并可以自定义模块。最新版本为0.8,虽然目前仍处于Alpha状态,但作者表示会继续更新完善。文章还分析了使用ASP的原因,包括ASP相对较小、易于部署和较简单等优势,适用于建立门户、网站的组织和小公司等场景。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • 本文介绍了如何使用Power Design(PD)和SQL Server进行数据库反向工程的方法。通过创建数据源、选择要反向工程的数据表,PD可以生成物理模型,进而生成所需的概念模型。该方法适用于SQL Server数据库,对于其他数据库是否适用尚不确定。详细步骤和操作说明可参考本文内容。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
author-avatar
多米音乐_34058991
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有