我们的文章会在微信公众号IT民工的龙马人生博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!

由于博客中有大量代码,通过页面浏览效果更佳。

前言

写这边文章的初衷是来自于上次的朋友案例,朋友咨询哪些情况下需要主动替换一体机的磁盘,所以这里我们就简单的聊聊这个话题。

在Oracle Exadata环境中,存储节点的磁盘通常在出现故障或被系统标记为有问题时才需要更换。Exadata的存储管理软件具有完善的自动化机制来处理这些情况。然而,在某些特定场景下,主动(Proactively)更换磁盘是一种必要且明智的预防性维护措施,比如在上次我们分享的替换磁盘的案例中,操作系统已经给出IO错误,标识有损坏时,一体机软件并没有统计IO错误,也没有给出对应的警告。

这里结合Oracle官方文档和过去的最佳实践,详细探讨在Exadata存储节点上主动更换磁盘的适用场景、具体操作步骤以及不同方法之间的差异,旨在为数据库和系统管理员提供一份清晰、实用的操作指南。

为什么要主动更换磁盘?

通常情况下,我们不建议手动干预Exadata的磁盘管理。存储软件会根据坏块数量(errorCount)、Scrubbing等一系列复杂的健康度指标来判断磁盘的健康度,决定磁盘是否需要被替换。

但是,在以下几种情况同时满足时,主动更换磁盘是值得考虑的:

  1. 磁盘错误数持续增长:通过CellCLI> list physicaldisk <disk_name> detail观察到errorCount在不断增加,这通常是磁盘健康状况恶化的明显迹象。
  2. 设备老旧:对于已经运行超过5年甚至更长时间的老旧Exadata设备,硬件故障的风险自然更高,同时操作系统中已经有IO异常的提示。
  3. Normal冗余磁盘组:如果您的ASM磁盘组(Disk Group)使用的是Normal冗余,那么在单块磁盘故障期间,冗余度会暂时降低,此时如果再有一块盘出现问题,将可能导致数据丢失。
  4. 高IO负载、高容量磁盘:在高IO复杂和高容量磁盘的环境中,为不影响业务性能的前提下,常常更换一个磁盘需要持续几天时间,所以在此环境中,可以适当的采用主动更换磁盘的方式。

在这些情况下,主动更换有潜在风险的磁盘,可以有效避免因突发性磁盘彻底损坏而导致的数据风险和计划外的紧急维护。

主动更换磁盘的操作步骤

主动更换磁盘的核心命令是ALTER PHYSICALDISK ... DROP FOR REPLACEMENT。这个命令会检查目标磁盘上的GridDisk是否可以被安全地从ASM磁盘组中offline,而不会导致磁盘组被强制dismount。

根据您使用的Exadata System Software版本的不同,操作步骤会有所差异。

场景一:Exadata System Software >= 21.2.0

从21.2.0版本开始,Oracle引入了MAINTAIN REDUNDANCY选项,这使得整个换盘过程可以在不降低ASM磁盘组冗余度的情况下完成。

操作命令:

CellCLI> alter physicaldisk X:Y drop for replacement maintain redundancy

其中 X:Y 是您需要替换的磁盘名称,例如 20:5

工作流程:

  1. 该命令会首先将该磁盘上的数据在ASM层面进行一次完整的重分布(Rebalance)。
  2. 在Rebalance完成之后,系统才会将该磁盘标记为可移除状态,并点亮蓝色的 "OK to Remove" LED灯。
  3. 更换新磁盘后,系统会自动将新盘加入,并触发第二次全局的Rebalance。

优缺点:

  • 优点:在整个操作过程中,ASM磁盘组始终保持其原有的冗余级别,数据安全性最高。
  • 缺点:会触发两次完整的全局Rebalance,第一次Rebalance完成前无法换盘,整个过程可能耗时非常长(甚至一两天),对系统I/O压力也更大。

场景二:Exadata System Software < 21.2.0 或 选择不保持冗余度

在老版本中,或者当您希望缩短维护时间窗口时,可以选择不带MAINTAIN REDUNDANCY选项的方式。

操作步骤:

  1. (仅限老版本) 从ASM中手动DROP磁盘:

    SQL> ALTER DISKGROUP diskgroup_name DROP DISK asm_disk_name;

    您需要等待这次Rebalance操作完成。

  2. 从Cell层面DROP物理磁盘:

    CellCLI> alter physicaldisk X:Y drop for replacement

工作流程:

  1. 该命令会检查并确认将目标磁盘上的GridDisk脱机(offline)后,不会导致ASM磁盘组因失去足够冗余度而dismount。
  2. 检查通过后,相关的GridDisk会从ASM中被置为offline,物理磁盘被禁用,并点亮蓝色LED灯提示可以更换。

优缺点:

  • 缺点:在换盘期间,ASM磁盘组的冗余度会临时性降低。这意味着如果在此时另一块磁盘也发生故障,将有数据丢失的风险。

总结与建议

主动更换Exadata存储磁盘是一项需要谨慎操作的维护任务。

  • 安全优先:如果业务对数据安全性的要求极高,且维护窗口充足,特别是在使用Normal冗余的情况下,推荐使用maintain redundancy选项(需要软件版本 >= 21.2.0)。虽然耗时较长,但能确保数据冗余度不降低。
  • 效率优先:如果是在High冗余的磁盘组中,或者能够接受在短时间内临时降低冗余度,那么不带maintain redundancy选项的方式是更高效的选择。它能显著缩短维护时间,减少对业务性能的影响。

在任何操作之前,请务必:

  1. 确认磁盘信息:使用list diskmap等命令准确识别物理磁盘、Cell Disk和Grid Disk的对应关系。
  2. 遵循官方文档:本文是对官方文档和实践的总结,但执行时仍建议参考最新的Oracle官方文档
  3. 观察LED灯:在物理拔盘之前,一定要确认机箱上对应磁盘的蓝色OK to Remove LED灯已经亮起。
  4. 在高IO负载、大容量磁盘的一体机环境中,在更换磁盘重平衡数据过程中,会影响到数据库IO性能,请随时观察数据库性能指标,曾在多个环境中遇到此类的问题。

希望这篇文章能帮助您更好地理解和执行Exadata的磁盘更换任务。

------------------作者介绍-----------------------

姓名:黄廷忠

现就职:Oracle中国高级服务团队

曾就职:OceanBase、云和恩墨、东方龙马等

电话、微信、QQ:18081072613

个人博客: (http://www.htz.pw)

CSDN地址: (https://blog.csdn.net/wwwhtzpw)

博客园地址: (https://www.cnblogs.com/www-htz-pw)


Oracle Exadata存储节点主动替换磁盘最佳实践的更多相关文章

  1. Oracle 社区动态、中文讲座,最佳实践

    https://community.oracle.com/thread/3789691https://community.oracle.com/community/support/%E4%B8%AD% ...

  2. 025-Cinder服务-->安装并配置一个本地存储节点(ISCSI)

    一:Cinder提供块级别的存储服务,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷.此服务也会激活管理卷的快照和卷类型的功能,块存储服务通常包含下列组件:cin ...

  3. Openstack入门篇(十七)之Cinder服务-->安装并配置一个本地存储节点

    怎样为块存储服务安装并配置存储节点.为简单起见,这里配置一个有一个空的本地块存储设备的存储节点.这个向导用的是 /dev/sdb,此处选用linux-node1节点作为存储节点,需要在vmware中添 ...

  4. 虚拟机最佳实践:单个 VM、临时存储和已上传磁盘

    大家好! 我是 Drew McDaniel,来自 Microsoft Azure虚拟机功能研发团队,我从团队成立之初就已加入. 在本博客文章中,我将分享一些最佳实践指南,帮助您充分利用您的Azure虚 ...

  5. Exadata X2-2 更换 存储节点Flash卡电池(ESM)

    Exadata X2-2中的F20 Flash卡含有电源存储模块ESM(Energy Storage Module ), 也就是我们常说的电池,当主机异常断电时,ESM给Flash模块提供备用电源.实 ...

  6. Exadata 18.1新特性--云平台存储节点升级

    1.传统方式的存储节点升级流程: (1).将存储节点升级包下载到数据库服务器,通常是DB01上. (2).解压缩存储节点升级包. (3).用升级包中的patchmgr工具滚动或非滚动地升级每个存储节点 ...

  7. Oracle Exadata体系笔记

    Exadata一开始是以一个存储系统形式诞生的,叫做SAGE(Storage Appliance for Grid Environ ments,网格环境存储设备)   Exadata原本设计用来解决超 ...

  8. Oracle DB 存储增强

    • 设置Automatic Storage Management (ASM)  快速镜像 再同步 • 使用ASM 首选镜像读取 • 了解可伸缩性和性能增强 • 设置ASM 磁盘组属性 • 使用SYSA ...

  9. Oracle Exadata 学习笔记之核心特性Part1

    近年来,国内众多厂商都有一体机的产品,不过更多都是围绕硬件本身的堆砌和优化,那么这些产品和Oracle一体机最大的区别在哪里呢?最近读了李亚的<Oracle Exadata技术详解>,系统 ...

  10. QingStor 对象存储架构设计及最佳实践

    对象存储概念及特性 在介绍 QingStor️对象存储内部的的架构和设计原理之前,我们首先来了解一下对象存储的概念,也就是从外部视角看,对象存储有什么特性,我们应该如何使用. 对象存储本质上是一款存储 ...

随机推荐

  1. 分享5款开源、美观的 WinForm UI 控件库

    前言 今天大姚给大家分享5款开源.美观的 WinForm UI 控件库,助力让我们的 WinForm 应用更好看. WinForm WinForm是一个传统的桌面应用程序框架,它基于 Windows ...

  2. IDEA在检查更新的时候报错 Connection Error Failed to load plugins from 'https://plugins.jetbrains.com/idea': org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 3; 文档中根元素前面的标记必须格式正确。

    问题: IDEA在更新的时候报错 Connection Error Failed to load plugins from 'https://plugins.jetbrains.com/idea': ...

  3. Sentinel——热点规则

    目录 热点规则 配置热点规则 API配置热点规则 热点规则 热点规则是用于实现热点参数限流的规则.热点参数限流指的是,在流控规则中指定对某方法参数的 QPS 限流后,当所有对该资源的请求URL中携带有 ...

  4. excel/wps, 转code128字体宏, 部分字符串出现空格, 导致条码断裂无法扫描的解决方案

    原宏是网上抄的, 传播比较广的那个. 后来发现, 部分条码出现空格断裂, 导致PDA无法扫描, 经搜索在一个帖子里, 发现是因为: 宏计算条码时, 会出现校验位刚好是空格的情况, 而空格在code12 ...

  5. 从实际的编程示例中看i++与++i的区别

    举一个简单的例子,我们希望给一个长字符串出现的每个字符的数量进行打表 这里给出部分代码 String p; HashMap<Character,Integer> map =new Hash ...

  6. python代码片段

    输入分钟.秒,输出格式为:  hh:mm:ss 代码实现: import datetime def convert_to_hh_mm_ss(minutes, seconds): total_secon ...

  7. 远程登录Mysql,命令行登录Mysql的方法

    1.本地登录MySQL命令:mysql -u root -p   //root是用户名,输入这条命令按回车键后系统会提示你输入密码2.指定端口号登录MySQL数据库将以上命令:mysql -u roo ...

  8. Vue 学习笔记 [Part 2]

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 目录 一. 计算属性 1.1. 计算属性的本质 1.2. 计算属性和methods对比 〇.ES6补充 0.1. let/var 0.2 const ...

  9. 【转载】Indexer 源码分析

    Indexer 源码分析 介绍 我们知道DeltaFIFO 中的元素通过 Pop 函数弹出后,在指定的回调函数中将元素添加到了 Indexer 中. Indexer 是什么?字面意思是索引器,它就是 ...

  10. 从排查ip不合法,到发现自己拖延,自欺的问题

    现象: 我调用推送接口,接口提示 ip地址不合法,服务器调用的接口ip需要在第三方平台上设置,调用提示 ip 错误 我将自己的出口ip地址配置到了第三方平台上,出口ip地址可以通过在服务器上面执行 c ...