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

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”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

net与树莓派的情缘-安装与卸载MySql(五)

安装MySql sudo apt-get install mysql-server 删除 mysql sudo apt-get autoremove --purge mysql-server-5.0sudo apt-get remove mysql-serversudo apt-get autoremove mysql-serversudo apt-get remove mysql-common //这个很重要上面的其实有一些是多余的。 清理残留数据 …

mpls工作原理通俗解释_用这两种方法向最终用户解释NLP模型的工作原理还是不错的...

点击上方关注,All in AI中国上周,我看了一个关于“NLP的实践特性工程”的演讲。主要是关于LIME和SHAP在文本分类可解释性方面是如何工作的。我决定写一篇关于它们的文章,因为它们很有趣、易于使用,而且视觉上很吸引人。所有的机器…

向往2的年代

1. JDBC 对插入大量数据如何处理? 2. JAVA反射的使用,如何获取一个java类的某个方法? 3. 数据库连接池(优化) 4. 分布式事务管理转载于:https://www.cnblogs.com/dragonflyyi/p/3564843.html

C++ limits头文件的用法(numeric_limits)

初学C的时候,对这个模板很陌生,不知道它到底是做什么用的,今天拿起《C标准程序库》,出现了它的讨论,所以决定好好研究一番。 1. numeric_limits是什么? (A)《C标准程序库》&#xff…

三层架构——配置文件

1、配置文件是什么? 配置文件是随安装程序一起被安装到计算机上的文件,里面存放着安装好的应用程序执行时所须要的參数。 应用程序配置文件是标准的XML文件,XML标记和属性是区分大写和小写的。它能够按须要更改,开发者可使用配置文…

《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——02-04项目范围(Scope)管理...

本节书摘来异步社区《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》一书中的第2章,第2.4节,作者:邱毅凌,更多章节内容可以访问云栖社区“异步社区”公众号查看 02-04项目范围(Scope)管理 嵌入式…

flex(入门)之timer的使用,键盘,鼠标的监听

package {import flash.display.Shape;import flash.display.Sprite;import flash.events.Event;import flash.events.KeyboardEvent;import flash.events.MouseEvent;import flash.events.TimerEvent;import flash.utils.Timer;import mx.controls.Label;//窗体大小&#xff0…

python 线程超时设置_python 条件变量Condition(36)

文章首发微信公众号,微信搜索:猿说python对于线程与线程之间的交互我们在前面的文章已经介绍了 python 互斥锁Lock / python事件Event , 今天继续介绍一种线程交互方式 – 线程条件变量Condition.一.线程条件变量Condition相关函数介绍acquire() — 线程…

MsWord 操作总结

转自(http://www.cnblogs.com/eye-like/p/4121219.html) Msdn上的word操作api(不过只有英文版,英文差的先闪过) Word2007的API:http://msdn.microsoft.com/en-us/library/bb257531(voffice.12).aspxWord201…

fwrite,fread and fprintf,fscanf的一些使用体会

这周一直在完成一个任务,就是将训练出的多个model写成一个model。其中我们使用了c语言的读写方法,搞了一星期, 挖了很多坑,最终都铲平了。下面列举出若干有用的知识。 1.fwrite,fread VS fprintf,fscanf的区别 fwrite,fread 读写…

《第一桶金怎么赚——淘宝开店创业致富一册通》一一1.4 淘宝开店创业的流程...

本节书摘来自异步社区出版社《第一桶金怎么赚——淘宝开店创业致富一册通》一书中的第1章,第1.4节,作者:葛存山,更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.4 淘宝开店创业的流程 第一桶金怎么赚——淘宝开店创业致…

检测虚拟机代码总汇(更新中)

检测虚拟机代码 1 004092D0 /. 55 push ebp2 004092D1 |. 8BEC mov ebp,esp3 004092D3 |. 51 push ecx4 004092D4 |. 53 push ebx5 004092D5 |. 68 1D934000 push 0040931D 6 004092DA |. 64:FF35…

两数之和 python_同一屏幕播放两个视频 视频左右两个画面或视频上下两个画面如何制作...

咱们在网上经常可以看到一些视频画面是可以在同一屏幕播放两个视频,有的是视频左右两个画面或视频上下两个画面这些是如何制作的呢,其实熟悉视频编辑软件的网友应该会比较了解这些操作,好嘞,来,现在就让小编来演示一下…

dlib人脸特征点对齐

前面我们介绍了使用dlib进行人脸检测&#xff0c;下面我们给出如何使用dlib进行人脸特征点检测。我们直接贴出代码。我们的代码包括如下几部分功能&#xff1a; 检测单张图片检测一个视频检测一个camera 先给出代码&#xff1a; #include <dlib/image_processing/frontal_…

IOS开发基础知识--碎片13

1:运行程序报the file couldnt be opened because you dont have permission to view it 解决办法&#xff1a;项目—>targets->build settings->build options->changed the value of the "Compiler for C/C/Objective-C" to Default Compiler. 2:百度…

《LoadRunner 12七天速成宝典》—第2章2.6节第二个性能测试案例

本节书摘来自异步社区《LoadRunner 12七天速成宝典》一书中的第2章&#xff0c;第2.6节第二个性能测试案例&#xff0c;作者陈霁&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.6 第二个性能测试案例云云&#xff1a;烤鱼吃得很爽。 恋恋&#xff1a;就…

MongoDB_1

突然想去看下MongoDB的东西&#xff0c;于是有了这篇文章。其实很早以前就看过一些关于NoSql的文章&#xff0c;还记得当时里面有介绍MongoDB的&#xff0c;多瞅了2眼&#xff0c;并且在Window下安装了MongoDB的驱动&#xff0c;小玩了会。今天重新翻出来&#xff0c;没成想在命…

牛顿法与拟牛顿法,SDM方法的一些注记

SDM方法 考虑一般额NLS问题&#xff1a; f(x)minx||h(x)−y||2这里x为优化参数&#xff0c;h为非线性函数&#xff0c;y是已知变量&#xff0c;如下是基于梯度的迭代公式&#xff1a; ΔxαAJTh(h(x)−y)这里α是步长&#xff0c;A是缩放因子&#xff0c;Jh是h在当前参数x下的…

pyqt5从子目录加载qrc文件_实战PyQt5: 045-添加资源文件

添加资源文件在使用PyQt进行图形界面开发的时候不免要用到一些外部资源&#xff0c;比如图片&#xff0c;qss配置文件等。在前面代码中&#xff0c;遇到这类问题&#xff0c;我们使用绝对路径的方式来解决&#xff0c;这种方式&#xff0c;本身有其不方便之处(比如&#xff0c;…

《 Python树莓派编程》——2.7 总结

本节书摘来自华章出版社《Python树莓派编程》一书中的第2章&#xff0c;第2.7节&#xff0c;作者&#xff1a;[美]沃尔弗拉姆多纳特&#xff08;Wolfram Donat&#xff09;著 韩德强 等译&#xff0c;更多章节内容可以访问云栖社区“华章计算机”公众号查看。 2.7 总结 本章简…