Oracle ASM Failgroup故障组

news2025/3/19 7:04:07

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 REDUNDANCY
      FAILGROUP 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 REDUNDANCY
  FAILGROUP 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 REDUNDANCY
  FAILGROUP fg1 DISK '/dev/asm-disk1', '/dev/asm-disk2'  -- 数据中心1
  FAILGROUP fg2 DISK '/dev/asm-disk3', '/dev/asm-disk4'  -- 数据中心2
  FAILGROUP 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.coloradmin.cn/o/2317648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【最新版】智慧小区物业管理小程序源码+uniapp全开源

一.系统介绍 智慧小区物业管理小程序,包含小区物业缴费、房产管理、在线报修、业主活动报名、在线商城等功能。为物业量身打造的智慧小区运营管理系统,贴合物业工作场景,轻松提高物业费用收缴率,更有功能模块个性化组合,助力物业节约成本高效运营。 二.搭建环境 系统环…

DeepSeek搭建本地知识库

1. 注册硅基流动 首先,打开浏览器,访问硅基流动的官方网站。 https://account.siliconflow.cn/ 在注册页面准确输入你的手机号,完成账号注册。这是搭建本地知识库的第一步,为后续获取重要权限做准备。 成功注册后,进…

实验9 高级搜索技术1

实验9 高级搜索技术1 一、实验目的 (1)掌握高级搜索技术的相关理论,能根据实际情况选取合适的搜索方法; (2)进一步熟悉爬山法搜索技术,掌握其在搜索过程中的优缺点; (3&…

【数据挖掘】Python基础环境安装配置

【数据挖掘】Python基础环境安装配置 一、摘要二、安装Python3.13.2三、安装Jupyter Notebook四、安装Numpy和Pandas以及matplotlib五、安装scikit-learn库和seaborn库 一、摘要 本文主要介绍如何在Windows上安装Python3.13.2,然后基于该Python版本安装Jupyter not…

【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…

vulhub-Billu-b0x攻略

靶场下载链接 https://download.vulnhub.com/billu/Billu_b0x.zip 将kali和Billu,NAT连接 获取靶场ip arp-scan -l 使用diesearch进行目录扫描 dirsearch -u " " 查看目录中的信息 打开add.php,得到有上传文件功能的(看到后面你会发现其实这里就可以完…

vue3+Ts+elementPlus二次封装Table分页表格,表格内展示图片、switch开关、支持

目录 一.项目文件结构 二.实现代码 1.子组件(表格组件) 2.父组件(使用表格) 一.项目文件结构 1.表格组件(子组件)位置 2.使用表格组件的页面文件(父组件)位置 3.演示图片位置 ele…

数字人本地部署之llama-本地推理模型

llama 本地服务命令 llama-server.exe -m "data/LLM/my.gguf" --port 8080 -m data/LLM/my.gguf -m 属于命令行选项,一般用来指定要加载的模型文件。 data/LLM/my.gguf 是模型文件的路径。gguf 格式的文件是一种用于存储语言模型权重的文件格式&…

RUOYI框架在实际项目中的应用三:Ruoyi微服务版本-RuoYi-Cloud

如需观看Ruoyi框架的整体介绍,请移步:RUOYI框架在实际项目中的应用一:ruoyi简介 一、Ruoyi微服务版本-Ruoyi微服务版本 1、官方资料 1:代码地址:https://gitee.com/y_project/RuoYi-Cloud.git 2:文档介绍…

linux操作系统3

1.安装桌面的centos操作系统 二.linux相对路径和绝对路径 1.相对路径:从当前目录开始数的不完整路径 2.绝对路径:从跟开始数的完整路径 (这2种路径主要是为了方便用户操作) 3.linux用户和用户组管理 创建用户组:useradd 删除用户:userdel 用户的修改:usermod(可以修改用…

windows创建开机启动任务

1、背景 一个java应用程序,需要做成开机启动,系统为windows系统。 2、创建启动脚本 创建一个 .bat 文件(例如 startup.bat),并将其保存到 Java 应用程序的目录中(如 E:\gitcode\mygit\learn\database\jdk2…

素数判定方法详解:从基础试除法到优化策略

素数是只能被1和自身整除的正整数。素数的判定是数论中的基础问题,也是算法竞赛中的常见考点。 一、知识点 素数的定义: 素数(质数)是大于1的自然数,且只能被1和自身整除。 试除法: 通过遍历从2到sqrt(n)​…

BFS,DFS带图详解+蓝桥杯算法题+经典例题

1.BFS和DFS的定义与实现方式 1.1 深度优先搜索(DFS) 基本概念:DFS 是一种用于遍历或搜索图或树的算法。它从起始节点开始,沿着一条路径尽可能深地探索下去,直到无法继续或者达到目标节点,然后回溯到上一个…

「清华大学、北京大学」DeepSeek 课件PPT专栏

你要的 这里都打包好啦,快快收藏起来! 名称 链接 团队简介 类型 DeepSeek——从入门到精通 1️⃣ DeepSeek从入门到精通「清华团队」 清华大学新闻与传播学院 新媒体研究中心 元宇宙文化实验室 PPT课件 DeepSeek如何赋能职场应用? ——从提示语…

如何在 Github 上获得 1000 star?

作为程序员,Github 是第一个绕不开的网站。我们每天都在上面享受着开源带来的便利,我相信很多同学也想自己做一个开源项目,从而获得大家的关注。然而,理想很丰满,现实却是开发了很久的项目仍然无人问津。 最近&#x…

on-policy对比off-policy

目录 持续更新。。。 on-policy与off-policy的定义 Q-learning属于on-policy算法还是off-policy算法? 为什么off-policy适用于从离线经验或多种探索策略中学习,明明 On-policy 也可以基于探索学习的啊? 重要性权重方法 off-policy方法可…

基于SpringBoot+Vue的幼儿园管理系统+LW示例参考

1.项目介绍 系统角色:管理员、教师、普通用户功能模块:用户管理、教师管理、班级管理、幼儿信息管理、会议记录管理、待办事项、职工考核、请假信息、缴费信息、体检管理、资源管理、原料管理、菜品信息管理等技术选型:SpringBoot&#xff0…

案例5_3: 6位数码管静态显示

文章目录 文章介绍效果图仿真图复习知识:代码思考 文章介绍 第5章 学习数码管,使用6位数码管进行静态显示 效果图 仿真图 新建一个干净的5_3文件夹,用于存放新画的仿真图 除单片机最小系统外,新增3个元器件,分别是&…

Profinet转Modbus RTU/TCP以太网通讯处理器

Profinet转Modbus RTU/TCP以太网通讯处理器 在当今的工业自动化领域,各种通讯协议和标准层出不穷。 其中,Profinet和Modbus作为两种广泛应用的通讯协议,分别在不同的应用场景中发挥着重要作用。 然而,当需要将这两种协议进行转换…

3倍训练速度+40%显存节省!Mamba+Transformer 仅用一半时间,性能提升80%!

在人工智能领域,Mamba与Transformer的结合正在成为研究热点,为自然语言处理和多模态任务带来新的突破。 最新研究表明,通过将Mamba架构与Transformer的强大编码能力相结合,模型在处理复杂的多模态数据时的效率提升了50%&#xff…