Oracle Exadata存储节点主动替换磁盘最佳实践
我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。
前言
写这边文章的初衷是来自于上次的朋友案例,朋友咨询哪些情况下需要主动替换一体机的磁盘,所以这里我们就简单的聊聊这个话题。
在Oracle Exadata环境中,存储节点的磁盘通常在出现故障或被系统标记为有问题时才需要更换。Exadata的存储管理软件具有完善的自动化机制来处理这些情况。然而,在某些特定场景下,主动(Proactively)更换磁盘是一种必要且明智的预防性维护措施,比如在上次我们分享的替换磁盘的案例中,操作系统已经给出IO错误,标识有损坏时,一体机软件并没有统计IO错误,也没有给出对应的警告。
这里结合Oracle官方文档和过去的最佳实践,详细探讨在Exadata存储节点上主动更换磁盘的适用场景、具体操作步骤以及不同方法之间的差异,旨在为数据库和系统管理员提供一份清晰、实用的操作指南。
为什么要主动更换磁盘?
通常情况下,我们不建议手动干预Exadata的磁盘管理。存储软件会根据坏块数量(errorCount)、Scrubbing等一系列复杂的健康度指标来判断磁盘的健康度,决定磁盘是否需要被替换。
但是,在以下几种情况同时满足时,主动更换磁盘是值得考虑的:
- 磁盘错误数持续增长:通过
CellCLI> list physicaldisk <disk_name> detail观察到errorCount在不断增加,这通常是磁盘健康状况恶化的明显迹象。 - 设备老旧:对于已经运行超过5年甚至更长时间的老旧Exadata设备,硬件故障的风险自然更高,同时操作系统中已经有IO异常的提示。
- Normal冗余磁盘组:如果您的ASM磁盘组(Disk Group)使用的是Normal冗余,那么在单块磁盘故障期间,冗余度会暂时降低,此时如果再有一块盘出现问题,将可能导致数据丢失。
- 高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。
工作流程:
- 该命令会首先将该磁盘上的数据在ASM层面进行一次完整的重分布(Rebalance)。
- 在Rebalance完成之后,系统才会将该磁盘标记为可移除状态,并点亮蓝色的 "OK to Remove" LED灯。
- 更换新磁盘后,系统会自动将新盘加入,并触发第二次全局的Rebalance。
优缺点:
- 优点:在整个操作过程中,ASM磁盘组始终保持其原有的冗余级别,数据安全性最高。
- 缺点:会触发两次完整的全局Rebalance,第一次Rebalance完成前无法换盘,整个过程可能耗时非常长(甚至一两天),对系统I/O压力也更大。
场景二:Exadata System Software < 21.2.0 或 选择不保持冗余度
在老版本中,或者当您希望缩短维护时间窗口时,可以选择不带MAINTAIN REDUNDANCY选项的方式。
操作步骤:
(仅限老版本) 从ASM中手动
DROP磁盘:SQL> ALTER DISKGROUP diskgroup_name DROP DISK asm_disk_name;
您需要等待这次Rebalance操作完成。
从Cell层面
DROP物理磁盘:CellCLI> alter physicaldisk X:Y drop for replacement
工作流程:
- 该命令会检查并确认将目标磁盘上的GridDisk脱机(offline)后,不会导致ASM磁盘组因失去足够冗余度而dismount。
- 检查通过后,相关的GridDisk会从ASM中被置为offline,物理磁盘被禁用,并点亮蓝色LED灯提示可以更换。
优缺点:
- 缺点:在换盘期间,ASM磁盘组的冗余度会临时性降低。这意味着如果在此时另一块磁盘也发生故障,将有数据丢失的风险。
总结与建议
主动更换Exadata存储磁盘是一项需要谨慎操作的维护任务。
- 安全优先:如果业务对数据安全性的要求极高,且维护窗口充足,特别是在使用Normal冗余的情况下,推荐使用
maintain redundancy选项(需要软件版本 >= 21.2.0)。虽然耗时较长,但能确保数据冗余度不降低。 - 效率优先:如果是在High冗余的磁盘组中,或者能够接受在短时间内临时降低冗余度,那么不带
maintain redundancy选项的方式是更高效的选择。它能显著缩短维护时间,减少对业务性能的影响。
在任何操作之前,请务必:
- 确认磁盘信息:使用
list diskmap等命令准确识别物理磁盘、Cell Disk和Grid Disk的对应关系。 - 遵循官方文档:本文是对官方文档和实践的总结,但执行时仍建议参考最新的Oracle官方文档。
- 观察LED灯:在物理拔盘之前,一定要确认机箱上对应磁盘的蓝色
OK to RemoveLED灯已经亮起。 - 在高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存储节点主动替换磁盘最佳实践的更多相关文章
- Oracle 社区动态、中文讲座,最佳实践
https://community.oracle.com/thread/3789691https://community.oracle.com/community/support/%E4%B8%AD% ...
- 025-Cinder服务-->安装并配置一个本地存储节点(ISCSI)
一:Cinder提供块级别的存储服务,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷.此服务也会激活管理卷的快照和卷类型的功能,块存储服务通常包含下列组件:cin ...
- Openstack入门篇(十七)之Cinder服务-->安装并配置一个本地存储节点
怎样为块存储服务安装并配置存储节点.为简单起见,这里配置一个有一个空的本地块存储设备的存储节点.这个向导用的是 /dev/sdb,此处选用linux-node1节点作为存储节点,需要在vmware中添 ...
- 虚拟机最佳实践:单个 VM、临时存储和已上传磁盘
大家好! 我是 Drew McDaniel,来自 Microsoft Azure虚拟机功能研发团队,我从团队成立之初就已加入. 在本博客文章中,我将分享一些最佳实践指南,帮助您充分利用您的Azure虚 ...
- Exadata X2-2 更换 存储节点Flash卡电池(ESM)
Exadata X2-2中的F20 Flash卡含有电源存储模块ESM(Energy Storage Module ), 也就是我们常说的电池,当主机异常断电时,ESM给Flash模块提供备用电源.实 ...
- Exadata 18.1新特性--云平台存储节点升级
1.传统方式的存储节点升级流程: (1).将存储节点升级包下载到数据库服务器,通常是DB01上. (2).解压缩存储节点升级包. (3).用升级包中的patchmgr工具滚动或非滚动地升级每个存储节点 ...
- Oracle Exadata体系笔记
Exadata一开始是以一个存储系统形式诞生的,叫做SAGE(Storage Appliance for Grid Environ ments,网格环境存储设备) Exadata原本设计用来解决超 ...
- Oracle DB 存储增强
• 设置Automatic Storage Management (ASM) 快速镜像 再同步 • 使用ASM 首选镜像读取 • 了解可伸缩性和性能增强 • 设置ASM 磁盘组属性 • 使用SYSA ...
- Oracle Exadata 学习笔记之核心特性Part1
近年来,国内众多厂商都有一体机的产品,不过更多都是围绕硬件本身的堆砌和优化,那么这些产品和Oracle一体机最大的区别在哪里呢?最近读了李亚的<Oracle Exadata技术详解>,系统 ...
- QingStor 对象存储架构设计及最佳实践
对象存储概念及特性 在介绍 QingStor️对象存储内部的的架构和设计原理之前,我们首先来了解一下对象存储的概念,也就是从外部视角看,对象存储有什么特性,我们应该如何使用. 对象存储本质上是一款存储 ...
随机推荐
- 进程的退出--exit()与_exit()的区别
进程终止:①异常终止:②正常终止 异常终止:①进程收到某种信号: ②调用abort()函数:[堕胎] 正常终止:①main()函数返回 ②调用exit()函数 三.调用_exit()函数或_Exit( ...
- C#/.NET/.NET Core优秀项目和框架2025年4月简报
前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的详细介绍.功能特点.使用方式以及部分功能 ...
- Gin 封装原生sql + jwt 实现 web
最近工作之余学了一下 Go 语言, 在此之前是先学了一段时间的 rust, 真的是从入门到放弃, 根本搞不懂, 于是果断转 Go 了, 为啥不继续用 Java 呢, 就是觉得它很啰嗦, 代码量还大, ...
- 聊聊 ruoyi-vue ,ruoyi-vue-plus ,ruoyi-vue-pro 谁才是真正的王者
笔者在知乎.Github 上搜索不少快速开发框架 ,很多的话题都绕不开若依 RuoYi . 开源世界 RuoYi 单体框架有三个不同的项目,分别是:ruoyi-vue .ruoyi-vue-plus ...
- 编译原理:python编译器--从AST到字节码
首先了解下从AST到生成字节码的整个过程: 编译过程 Python编译器把词法分析和语法分析叫做 "解析(Parse)", 并且放在Parser目录下. 从AST到生成 字节码的过 ...
- 操作系统:设备I/O -- 如何表示设备类型与设备驱动?
计算机的结构 计算机结构示意图: 主板上的各种芯片并非独立存在,而是以总线为基础连接在一起的,各自完成自己的工作,又能相互打配合,共同实现用户要求的功能. 如何管理设备 前面的学习中宏,实现了管理内存 ...
- CSS 之overflow属性简结
CSS的overflow 属性用来处理一个元素的尺寸超出其容器尺寸的情况.当一个元素包含的内容超粗自身的大小时,就会发生内容溢出,这种情况,可以对内容进行"裁剪",只让一部分内容可 ...
- FFmpeg开发笔记(六十一)Linux给FFmpeg集成H.266编码器vvenc
<FFmpeg开发实战:从零基础到短视频上线>该书的第一章介绍了如何在Linux环境给FFmpeg集成H.264和H.265的编码器,如今H.266的编码器vvenc也日渐成熟,从7.1 ...
- HarmonyNEXT手动申请权限以及使用系统控件获取地址坐标的案例(区别)
一.手动申请位置权限 1.1.申请位置权限 申请ohos.permission.LOCATION.ohos.permission.APPROXIMATELY_LOCATION权限. "req ...
- mysql 添加外键约束
添加外键 alter table table_name add foreign key fk_product_id (product_id) references product(id) tabl ...