嘉兴电子商务网站建设,营销网站建设定制,苏州网站建设渠道,国外有哪些网站Offline or drop? 当一个ASM磁盘不可用时#xff0c;ASM会把它从磁盘组里移除#xff0c;对吗#xff1f;要看情况#xff0c;通常取决于ASM版本和磁盘组的冗余级别。因为一个external冗余的磁盘组会直接被dismount#xff0c;所以主要关注normal和high冗余磁盘组的情况。… 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”