我们的文章会在微信公众号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. Java8 新特性-Lambda表达式

    目录 1.Lambda表达式介绍 2.Lambda表达式语法细讲 3. Lambda表达式语法精简 4. Lambda方法引用 5. 综合实例 6. @FunctionalInterface注解 7. ...

  2. 代码随想录第二十天 | Leecode 235. 二叉搜索树的最近公共祖先 、 701.二叉搜索树中的插入操作 、450.删除二叉搜索树中的节点

    Leecode 235. 二叉搜索树的最近公共祖先 题目描述 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p. ...

  3. 【笔记】reko 0.10.2 反编译工具安装和使用记录|(1) README.md

    (翻译自README.md,并通过自己的实际操作情况重新整理了一遍) 笔者注:我已经成功地根据README.md下载了Release版本,也自己试了下从源码编译,跟着README都挺顺利的.如果操作过 ...

  4. 【ROS】4.1 Turtlebot3仿真Waffle循线跟踪

    原视频 本节内容较多,请根据左侧目录针对性阅读. 一.准备工作 这一章我们先用gazebo仿真做,不使用真小车,使用的是Waffle模型. 需要下载的库gazebo-ros.turtlebot3_si ...

  5. 自定义Spring Authorization Server登录页

    一.鸣谢 首先要声明一些感谢: 感谢官方文档的缺失.反复造成我下面这条感谢 感谢那些胡说八道.顾彼失此的某DN文章,让我在冲向坑里的道路上一往无前 废话不多说,看剑! 本文来自:博客园-去哪里吃鱼-自 ...

  6. asp.net core的launchSettings.json

    { "profiles": { "welcomeMiddleware": { "commandName": "Project&qu ...

  7. IDEA 调试Java代码的两个技巧

      本文介绍两个使用IDEA 调试Java代码的两个技巧: 修改变量值 使用RuntimeException终止代码执行 修改变量值   在Java代码调试过程中,我们可以修改变量值,使其达到走指定分 ...

  8. QEMU安装巨大的坑

    网上教程大多数让你 sudo apt install qemu 实际上根本没用!!!! 查了一下debian官网 结果 QEMU is a fast processor emulator. Once ...

  9. elasticsearch分词

    阅读说明: 1.如果有排版格式问题,请移步https://www.yuque.com/mrhuang-ire4d/oufb8x/gmzl30v8ofqg3ua3?singleDoc# <elas ...

  10. C#/.NET/.NET Core优秀项目和框架2025年5月简报

    前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的详细介绍.功能特点.使用方式以及部分功能 ...