Oracle ASM Failgroup故障组

Oracle ASM Failgroup故障组

      • 1. 故障组的核心作用
      • 2. 故障组的配置规则
      • 3. 故障组的设计最佳实践
      • 4. 故障组的实际示例
        • 场景1:普通冗余(2个故障组)
        • 场景2:高冗余(3个故障组,跨数据中心)
      • 关键注意事项
      • 总结

Oracle ASM **故障组(Failure Group,简称Failgroup)**是ASM磁盘组中用于定义冗余逻辑的核心概念。它用于标识一组可能共享相同故障风险的磁盘(例如同一物理磁盘阵列、同一控制器、同一机架或同一数据中心)。通过将磁盘分配到不同的故障组,ASM可以确保数据的冗余副本分布在不同的故障组中,从而避免单点故障导致数据丢失。


1. 故障组的核心作用

  1. 冗余保护
    在启用**Normal Redundancy(普通冗余)High Redundancy(高冗余)**的磁盘组中,ASM会将数据块的副本存储在不同的故障组中。例如:
    普通冗余:每个数据块保存2个副本,分布在2个不同的故障组。
    高冗余:每个数据块保存3个副本,分布在3个不同的故障组。

  2. 故障隔离
    故障组的划分基于物理或逻辑的隔离条件(如不同磁盘柜、不同电源、不同网络交换机),确保单个硬件故障不会同时影响多个故障组。

  3. 存储均衡
    ASM会均匀地将数据分布在所有故障组中,从而实现负载均衡和性能优化。


2. 故障组的配置规则

  1. 默认行为
    如果没有显式定义故障组,每个磁盘会被视为一个独立的故障组
    • 在普通冗余模式下,必须至少配置2个故障组;在高冗余模式下,必须至少配置3个故障组

  2. 显式定义
    可以通过FAILGROUP关键字在创建磁盘组时手动指定故障组。例如:

    CREATE DISKGROUP data NORMAL REDUNDANCYFAILGROUP fg1 DISK '/dev/sda1', '/dev/sda2'  -- 故障组1(例如同一机架的磁盘)FAILGROUP fg2 DISK '/dev/sdb1', '/dev/sdb2'; -- 故障组2(例如另一机架的磁盘)
    
  3. 动态扩展
    可以向现有故障组添加磁盘,或创建新的故障组来扩展磁盘组容量。


3. 故障组的设计最佳实践

  1. 物理隔离原则
    • 每个故障组应代表一个独立的故障域(Failure Domain),例如:
    ◦ 同一磁盘控制器下的磁盘 → 一个故障组。
    ◦ 同一机架的磁盘 → 一个故障组。
    ◦ 同一数据中心的存储 → 一个故障组(适用于跨数据中心的高可用架构)。

  2. 数量匹配冗余策略
    普通冗余:至少2个故障组。
    高冗余:至少3个故障组。
    外部冗余:无需故障组(依赖底层硬件冗余)。

  3. 均衡容量与性能
    • 每个故障组的磁盘数量和容量应尽量均衡,避免数据分布倾斜。


4. 故障组的实际示例

场景1:普通冗余(2个故障组)
CREATE DISKGROUP ocr NORMAL REDUNDANCYFAILGROUP fg1 DISK '/dev/asm-disk1', '/dev/asm-disk2'  -- 故障组1(机架A)FAILGROUP fg2 DISK '/dev/asm-disk3', '/dev/asm-disk4'; -- 故障组2(机架B)

数据分布:每个数据块在fg1fg2中各存一个副本。
容错能力:单个机架故障或单个磁盘故障不影响数据可用性。

场景2:高冗余(3个故障组,跨数据中心)
CREATE DISKGROUP prod_data HIGH REDUNDANCYFAILGROUP fg1 DISK '/dev/asm-disk1', '/dev/asm-disk2'  -- 数据中心1FAILGROUP fg2 DISK '/dev/asm-disk3', '/dev/asm-disk4'  -- 数据中心2FAILGROUP fg3 DISK '/dev/asm-disk5', '/dev/asm-disk6'; -- 数据中心3

数据分布:每个数据块在3个数据中心的故障组中各存一个副本。
容错能力:可容忍两个数据中心同时宕机。


关键注意事项

  1. 故障组与冗余策略绑定
    故障组仅在普通冗余或高冗余的磁盘组中有意义。外部冗余的磁盘组无需配置故障组。

  2. 不可修改现有故障组结构
    无法直接修改磁盘组的故障组定义,需通过ALTER DISKGROUP ... ADD/DROP DISK动态调整。

  3. 监控与均衡
    使用V$ASM_DISKV$ASM_DISKGROUP视图监控故障组的容量和性能均衡状态:

    SELECT GROUP_NUMBER, FAILGROUP, TOTAL_MB, FREE_MB FROM V$ASM_DISK;
    

总结

故障组是Oracle ASM实现数据高可用的基石。通过合理划分故障组(基于物理隔离原则),可以最大限度地降低因硬件故障导致的数据丢失风险。在设计ASM存储架构时,务必根据业务连续性需求(如RTO/RPO)选择冗余策略,并严格遵循故障组的最佳实践。

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

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

相关文章

[项目]基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信

基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信 一.Si24Ri原理图二.Si24R1芯片手册解读三.驱动函数讲解五.移植2.4g通讯(飞控部分)六.移植2.4g通讯(遥控部分)七.通讯模块的完成(遥控部分) 一.Si24Ri原理图 S…

springboot集成xxl-job

前言:关于xxl-job的一些简单的介绍就不做过多介绍,本文主要讲一下如何将xxl-job整合到springboot项目中。先贴上项目的两个地址: 1.github: https://github.com/xuxueli/xxl-job 2.码云:http://gitee.com/xuxueli0323/…

预处理指令中#if 和 #endif的用法

在 C 语言中,#if 和 #endif 是预处理指令,用于条件编译。它们的核心作用是:根据预处理器能够识别的条件(通常是宏定义或常量表达式),决定某段代码是否参与编译。 — 基本功能 #if 用于开启一个条件编译块…

【统计学相关知识】极小充分统计量

定义、判别,计算上的定义 极小充分统计量不具有唯一性,具有不变性,线性映射仍然是极小充分统计量 一般来说,使用因子分解定义找到的充分统计量,直观地找到的,一般是极小充分统计量,但还是要遵…

winx64 安装对应版本火狐浏览器驱动

#本人需要学习使用selenium 选择对应的浏览器是firefox 为什么 因为喜欢 首先需要确定你的浏览器版本 在火狐的设置常规中你就能发现 Supported platforms — Firefox Source Docs documentation (mozilla.org) 以上链接参照Supported platforms 找到对应版本 (注…

【最后203篇系列】016 Q201架构思考

前言 Q200已经达到了我既定的目标,在最近的3个月,我需要进一步完善,达到可以试产的程度。 在这个过程当中,许多知识和体会一直在变。 qtv200到目前,虽然通过习惯(每晚运行离线策略和比对)方式维持了注意力的集中&…

埃森哲中捷石化proposalv04(64页PPT)(文末有下载方式)

资料解读:埃森哲中捷石化proposalv04 详细资料请看本解读文章的最后内容。 埃森哲公司为中捷石化提供的ERP和MES系统实施项目提案,旨在通过信息化手段提升中捷石化的精细化管理水平。该提案详细阐述了埃森哲对中捷石化现状的理解、建议的解决方案、实施…

【2025新版本】【谷粒商城版】Kubernetes

本文作者: slience_me 文章目录 【2025】Kubernetes1. docker安装2. kubernetes安装前3. kubeadm,kubelet,kubectl3.1 简介kubeadmkubeletkubectl常用指令 3.2 安装3.3 kubeadm初始化3.4 加入从节点(工作节点)3.5 安装Pod网络插件(CNI)3.6 Ku…

Unity 运行报错:InvalidOperationException: Insecure connection not allowed 的原因

当你在 Unity 中运行项目时,如果遇到 InvalidOperationException: Insecure connection not allowed 这个错误,通常是由于以下原因导致的: 1. UnityWebRequest 的安全限制 UnityWebRequest 是 Unity 用于发送 HTTP 请求的核心组件。从 Unit…

ubuntu下TFTP服务器搭建

tftp 命令的作用和 nfs 命令一样,都是用于通过网络下载东西到 DRAM 中,只是 tftp 命令 使用的 TFTP 协议, Ubuntu 主机作为 TFTP 服务器。因此需要在 Ubuntu 上搭建 TFTP 服务器, 需要安装 tftp-hpa 和 tftpd-hpa,命令…

Python+Django网页前后端rsp云端摄像头人数监控系统

程序示例精选 PythonDjango网页前后端rsp云端摄像头人数监控系统 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《PythonDjango网页前后端rsp云端摄像头人数监控系统》编写代码,…

糊涂人寄信

1.糊涂人寄信 - 蓝桥云课 糊涂人寄信 题目描述 有一个糊涂人,写了 n 封信和 n 个信封,到了邮寄的时候,把所有的信都装错了信封。求装错信封可能的种类数。 输入描述 有多行读入,每行输入一个正整数 n,表示一种情况…

华为ISC+战略规划项目数字化转型驱动的智慧供应链革新(169页PPT)(文末有下载方式)

资料解读:华为ISC战略规划项目数字化转型驱动的智慧供应链革新 详细资料请看本解读文章的最后内容。 华为的ISC战略规划项目是其供应链数字化转型的核心,旨在通过智慧供应链的革新,提升企业的竞争力和运营效率。本文将从多个维度详细解读这…

深度学习框架PyTorch——从入门到精通(5)自动微分

使用torch.autograd自动微分 张量、函数和计算图计算梯度禁用梯度追踪关于计算图的更多信息张量梯度和雅可比乘积 在训练神经网络时,最常用的算法是反向传播。在该算法中,参数(模型权重)根据损失函数的梯度相对于给定参数进行调整…

Mobile-Agent-V:通过视频引导的多智体协作学习移动设备操作

25年2月来自北京交大和阿里巴巴公司的论文“Mobile-Agent-V: Learning Mobile Device Operation Through Video-Guided Multi-Agent Collaboration”。 移动设备使用量的快速增长,迫切需要改进自动化以实现无缝任务管理。然而,因缺乏操作知识&#xff0…

单片机开发资源分析的实战——以STM32F103C8T6为例子的单片机资源分析

目录 第一点:为什么叫STM32F103C8T6 从资源手册拿到我们的对STM32F103C8T6的资源描述 第二件事情,关心我们的GPIO引脚输出 第三件事情:去找对应外设的说明部分 前言 本文章隶属于项目: Charliechen114514/BetterATK: This is…

《基于Spring Boot+Vue的智慧养老系统的设计与实现》开题报告

个人主页:@大数据蟒行探索者 一、研究背景及国内外研究现状 1.研究背景 根据1982年老龄问题世界大会联合国制定的标准,如果一个国家中超过65岁的老人占全国总人口的7%以上,或者超过60岁的老人占全国总人口的10%以上,那么这个国家将被定义为“老龄化社会”[1]。 随着国…

微软OneNote无法同步解决方案

目录 前言原因UWP特性 解决方案C***h注册表 参考链接 前言 假设有多台Windows电脑,最方便且免费的多设备笔记同步方案就是微软自家的OneNote,使用OneDrive自带的5G云存储。 但是在国内大陆的OneNote,经常会出现无法同步、同步失败&#xff1…

硬件设计抽象级别详解:门级、RTL级、行为级与HLS

硬件设计抽象级别详解:门级、RTL级、行为级与HLS 引言 在数字系统设计领域,硬件描述语言(HDL)提供了多种抽象级别来描述电路功能和结构。从最底层的门级描述到高层的行为级描述,每一种抽象级别都有其特定的用途和优势。理解这些不同级别以及…

WPF程序使用AutoUpdate实现自动更新

AutoUpdate.NET使用 一、AutoUpdater.NET 简介 AutoUpdater.NET 是一个开源库,支持从各种源(如GitHub、FTP、HTTP服务器等)下载并安装更新。它提供了灵活的配置选项,允许开发者根据需求定制更新检查逻辑和用户体验。 二、安装 …