Offline or drop?

当一个ASM磁盘不可用时,ASM会把它从磁盘组里移除,对吗?要看情况,通常取决于ASM版本和磁盘组的冗余级别。因为一个external冗余的磁盘组会直接被dismount,所以主要关注normal和high冗余磁盘组的情况。

ASM 10g版本,磁盘会被直接drop。从11gR1,一个磁盘不可用时会先被offline,此时disk repair计时器开始介入,如果计时器达到磁盘组DISK_REPAIR_TIME 属性值时,这个磁盘会从所属的磁盘组中drop掉。如果这个磁盘在计时器过期前恢复可用,那么它的状态会变回online,不会被drop。但是ASM是如何发现磁盘恢复可用又有什么机制将它恢复online呢?

Unavailable

当一个磁盘不能被ASM或者ASM客户端读或写时,会被认为不可用。数据库是一种典型的ASM客户端,但ASM客户端并不只限于是数据库。磁盘会因为各种原因变成不可用,本地硬盘的SCSI线缆受损,存储的SAN交换机或者网络故障,NFS空间的服务器故障,双活场景的站点故障,又或是磁盘本身故障等各种场景。无论是哪种情况,ASM或者是ASM客户端会报IO错误,然后ASM会进行相应的处理。

Drop

在ASM 10G时,ASM会立即Drop变成不可用的磁盘。这会触发一个尝试恢复数据冗余的重平衡操作。一旦重平衡过程完成,数据冗余度会恢复,同时磁盘会被移除出磁盘组。一旦磁盘不可用的故障被解决,可以通过alter diskgroup命令将磁盘重新添加回磁盘组。 例如:alter diskgroup DATA add disk 'ORCL: DISK077'; 这又会再次触发一个重平衡操作,一旦重平衡过程完成,磁盘会恢复成为磁盘组成员。 但是如果多个磁盘同时发生故障,又或者一个磁盘故障在重平衡过程中又有磁盘故障会导致什么结果?这取决于多个因素,磁盘组的冗余度、磁盘是否来自于相同或不同的failgroup和故障磁盘是否是partner关系。 在一个normal冗余级别的磁盘组,ASM能容忍来自于一个failgroup中的一块或者多块,甚至是全部的磁盘故障。如果来自于不同的failgroup的磁盘变成不可用,仅当它们之间不存在partner关系时,ASM才能容忍。 这里提到的“容忍"的具体含义是指磁盘组能继续online同时ASM客户端访问不受影响。 在一个high冗余级别的磁盘组,ASM能容忍仅来自于两个failgroup中的一块或者多块,甚至是全部的磁盘故障。如果来自于两个以上failgroup的磁盘变成不可用,partner关系规则仍然有效。基本上,ASM能容忍任意数量的磁盘变成不可用,只要它们之间不存在partner关系时。

Offline

当一个磁盘被drop,整个磁盘组需要为此进行rebalance,整个过程需要耗费大量的时间。在此期间,其他磁盘也可能会发生故障,使得数据丢失的风险大大增加。为解决这个问题,在11gR1开始,ASM引入了fast disk resync特性。ASM不再立即drop不可用的磁盘,而是先置为offline状态。这样做的意义是能让ASM管理员被告知有磁盘发生故障后在disk repair time计时器到达阈值前修复故障。 默认的disk repair计时器阈值是3.6小时。这个阈值是可以通过alter diskgroup命令来调整的,假设要设置为12小时,命令如下:alter diskgroup DATA set attribute 'DISK_REPAIR_TIME' = '12h'; 在磁盘处于offline的这段时间里,ASM持续跟踪需要在offline磁盘上做的修改操作。如果磁盘在计时器到达阈值前恢复可用并且恢复到online状态,那么ASM会将这些修改操作应用到磁盘上去。这就是fast disk resync特性的具体用途。 如果导致磁盘离线的故障不能解决,在计时器到达阈值后,磁盘会从磁盘组中被drop掉。

Online

当一个系统管理员或者ASM管理员修复了导致磁盘不可用的故障后(可能是更换了某条故障的线缆),接下来该怎么做能让磁盘恢复online状态?这个过程能否能自动呢? 答案同样也是看情况。如果是Exadata或者是Oracle Database Appliance,磁盘会被自动online。其他情况是ASM管理员需要通过alter diskgroup命令将磁盘恢复为online状态。 例如: alter diskgroup DATA online disk 'ORCL: DISK077'; 或者 alter diskgroup DATA online all;

Conclusion

知道在不同的故障场景下会发生什么事情是这件非常有价值的事情,比如:目前使用的ASM版本分别能做什么和不能做什么,当前使用的磁盘组冗余度能提供什么样的保护级别。


本文来自云栖社区合作伙伴“DBGEEK”

Oracle ASM 翻译系列第十一弹:高级知识 Offline or drop?相关推荐

  1. Oracle ASM 翻译系列第七弹:高级知识 How many partners?

    How many partners? ASM的数据冗余机制是通过将extent的镜像副本复制到同一磁盘组不同failgroup的磁盘上来实现的,这个磁盘被称为partner磁盘.在11GR2版本,一个 ...

  2. Oracle ASM 翻译系列第二十七弹:ASM INTERNAL ASM METADATA BLOCK

    ASM METADATA BLOCK ASM的元数据由ASM实例进行维护和管理,元信息本身非常重要,ASM磁盘组中的文件要想被Oracle DB和其他客户端正常使用,就要求元信息一定要是完好无损的,A ...

  3. Oracle ASM 翻译系列第十二弹:ASM Internal amdu - ASM Metadata Dump Utility

    amdu - ASM Metadata Dump Utility ASM Metadata Dump Utility,即ASM元数据导出工具,它的简写amdu更被人所熟知,常被Oracle技术支持人员 ...

  4. ASM 翻译系列第三十八弹:ASM数据清理

    原作者:Bane Radulovic 译者:    魏兴华 审核:    魏兴华 DBGeeK社区联合出品 原文链接:http://asmsupportguy.blogspot.sg/2015/12/ ...

  5. oracle的KFF,oracle asm剖析系列(8)--Continuing Operations Directory

    在asm系列的上一篇文章中,我们描述了ACD,将其比喻成oracle database中的redo,如果说起作用类似redo,那么本篇即将 描述的Continuing Operations Direc ...

  6. #ASM 翻译系列第二十五弹:ASM 高级知识 When will my rebalance complete

    原文: When will my rebalance complete 作者: Bane Radulovic 译者:魏兴华,沃趣科技高级技术专家,主要参与公司一体机产品.监控产品.容灾产品.DBaaS ...

  7. #ASM 翻译系列第三十二弹:ASM INTERNAL Find block in ASM

    原文: Find block in ASM 作者: Bane Radulovic 译者:魏兴华,沃趣科技高级技术专家,主要参与公司一体机产品.监控产品.容灾产品.DBaaS平台的研发和设计.曾就职于东 ...

  8. #ASM 翻译系列第十八弹:ASM Internal ASM file number 5

    原文: ASM file number 5 作者: Bane Radulovic 译者:魏兴华,沃趣科技高级技术专家,主要参与公司一体机产品.监控产品.容灾产品.DBaaS平台的研发和设计.曾就职于东 ...

  9. 【ASM 翻译系列第二弹:ASM 12C 版本新特性】

    随着Oracle 12c的发布,也就意味着全新版本的ASM面世了.已知的重大新特性有Flex ASM,数据预校验和更加便捷的磁盘管理操作.下面针对这几个方面进行详细介绍. Flex ASM Flex ...

最新文章

  1. 面试题6:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
  2. 基于JSP实现医院病历管理系统
  3. HTML5全局属性和事件
  4. mysql之慢日志查询
  5. python编程入门详解_python编程入门知识练习
  6. commonJS — 全局操作(for Window)
  7. Spring Cloud自定义Hystrix请求命令
  8. jar打包 剔除第三方依赖以及它的依赖_面试官:为什么Spring Boot的jar可以直接运行?...
  9. ef core中如何实现多对多的表映射关系
  10. More Exceptional C++起步于Exceptional C++驻足之处
  11. linux(Centos7系统)中安装JDK、Tomcat、Mysql
  12. 用差分法求解burger方程 matlab,偏微分方程数值解上机实验.doc
  13. 在 Web 浏览器中运行(PowerApps)应用
  14. 极客君教你破解隔壁妹子的wifi密码,成功率高达90%
  15. android 带箭头的框,带有工具提示箭头的Android PopupWindow
  16. opencv学习笔记(三)分离颜色通道多通道颜色混合
  17. 【Flutter】Dart 数据类型 数字类型 ( Dart 文件创建 | num 类型 | int 类型 | double 类型 | num 相关 API )
  18. 中国千家主要规划设计勘察单位
  19. Linux下QT安装
  20. jy-12-SPRINGMYBATIS02——云笔记08-刘苍松

热门文章

  1. mysql stragg_如何在MySQL中將子查詢行的結果顯示為一列?
  2. 如何向IPython Notebook中导入.py文件
  3. 批量提取 caffe 特征 (python, C++, Matlab)(待续)
  4. Apress Pro Android 2
  5. Python: 编程遇到的一些问题以及网上解决办法?
  6. 夜深了,发点无聊的东西
  7. iOS 键盘风格详解UIKeyboardType
  8. (13)UniquePathIII
  9. window document
  10. xcode中用pods管理第三方库转