如何在Oracle RAC中配置基于策略的ASM磁盘组热点均衡

落辰吖_3326

落辰吖_3326

2026-06-25

882人浏览

原创

oracle rac中不存在基于策略的asm磁盘组热点均衡机制,asm不采集i/o指标动态迁移数据;其rebalance仅响应加盘、删盘等显式操作,所有“均衡”均源于初始设计(如failgroup、au_size、冗余类型)的静态条带化与镜像分布。

oracle rac中不存在“基于策略的asm磁盘组热点均衡”这种运行时可配置的策略机制——asm本身不提供按访问热度动态迁移盘区(extent)或文件的智能负载调度能力。所谓“热点均衡”,本质是通过初始设计规避热点,而非事后调控。

为什么asmcmd和ASMCMD里没有balance_hotspots或类似命令

ASM的再平衡(rebalance)只响应显式触发的操作:加盘、删盘、调power_limit,或故障组成员变更。它不采集I/O延迟、排队长度或单盘吞吐率等指标,也不据此主动迁移数据。所有“均衡”都是静态条带化+冗余分布的副产品,不是运行时策略驱动的结果。

  • 你看到的rebalance进度,只是把新增/移除盘导致的空间分布失衡,按AU粒度重新摊开,并非感知到某块盘变热了才去动它
  • v$asm_disk_iostat能查历史IO统计,但ASM不基于它做任何自动动作;DBA需人工比对reads/writes/read_time后决定是否重建磁盘组
  • 试图用alter diskgroup ... rebalance power 11强行加速,反而可能因高并发IO加剧争用,尤其在OLTP场景下

CREATE DISKGROUP时必须硬编码的3个防热点参数

真正影响IO是否倾斜的,是建组那一刻就定死的物理与逻辑结构。后续无法在线修改,只能重建:

财经热点新闻爬取与话题归纳系统
财经热点新闻爬取与话题归纳系统

抓取主流财经网站实时热点,提供混合评分与专业HTML报告,支持快讯采集和话题归纳。

下载
  • FAILGROUP必须对应真实物理隔离单元:同一RAID卡、同一HBA通道、同一SAN阵列端口下的盘,绝不能混入同一FAILGROUP——否则条带再细也跑在同一硬件路径上
  • au_size要匹配业务特征:1M适合OLTP(小IO随机读写),4M适合DSS(大顺序读),设错会导致元数据锁争用或单AU跨多盘IO放大
  • 冗余类型决定镜像落盘逻辑:NORMAL REDUNDANCY要求至少2个FAILGROUP,主盘区和镜像盘区强制分置;若只建1个FAILGROUP,ASM会静默降级为外部冗余,失去镜像保护且IO全压在一组盘上

发现热点后唯一有效的“均衡”操作是重建磁盘组

当select path, reads, writes, read_time from v$asm_disk显示某盘read_time持续高于均值2倍以上,且path指向同一物理控制器时,说明初始设计已失效。此时:

  • 先用asmcmd ls -l确认当前磁盘组内各盘的FAILGROUP归属,再用ls -l /dev/disk/by-path/核对OS层实际物理路径是否真的分散
  • 导出关键数据(如OCR/Voting Disk若在该组,必须先ocrconfig -export)
  • 执行DROP DISKGROUP ... INCLUDING CONTENTS(确保所有节点已卸载)
  • 用明确指定FAILGROUP和au_size的CREATE DISKGROUP重建,例如:
    CREATE DISKGROUP dg_data NORMAL REDUNDANCY<br>  FAILGROUP fg_a DISK '/dev/oracleasm/disks/DISK01' NAME disk01,<br>                   '/dev/oracleasm/disks/DISK02' NAME disk02<br>  FAILGROUP fg_b DISK '/dev/oracleasm/disks/DISK03' NAME disk03,<br>                   '/dev/oracleasm/disks/DISK04' NAME disk04<br>ATTRIBUTE 'compatible.asm'='19.0.0.0', 'au_size'='1M';

最常被忽略的一点:FailGroup的物理边界必须由DBA亲手验证,不能依赖盘名顺序或ASM自动分组。一块盘挂错HBA口,整个磁盘组的“均衡”就只是幻觉。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

oracle 热点

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
oracle清空表数据
oracle清空表数据

当表中的数据不需要时,则应该删除该数据并释放所占用的空间。本专题为大家提供oracle清空表数据的相关文章,帮助大家解决该问题。

2023.08.16

1001

5

Oracle中declare的使用
Oracle中declare的使用

Oracle DECLARE语句是PL/SQL编程语言中用于声明变量、常量、游标或异常的关键字。它的主要作用是在程序中定义这些对象,以便在后续的代码中使用。DECLARE语句的语法简单明了,可以根据需要声明多个对象。通过使用这些声明的对象,可以进行各种操作,如计算、查询数据库、处理异常等 。

2023.09.15

2913

5

oracle怎么分页
oracle怎么分页

实现分页的步骤:1、使用ROWNUM进行分页查询;2、在执行查询之前进行设置分页参数;3、使用"COUNT(*)"函数来获取总行数,并使用"CEIL"函数来向上取整计算总页数;4、在外部查询中使用"WHERE"子句来筛选出特定的行号范围,以实现分页查询。想了解更多oracle怎么分页的文章,可以来阅读本专题先的文章。

2023.09.18

2930

5

Oracle查看表操作历史记录
Oracle查看表操作历史记录

查看操作历史记录的方法:1、使用Oracle内置的审计功能,可以记录数据库中发生的各种操作,包括登录、DDL语句、DML语句等;2、使用Oracle日志文件,其中包含了数据库中发生的各种操作,可以通过查看日志文件来获取操作历史记录;3、使用Oracle的Flashback功能,可以查看数据库在某个时间点的操作历史记录;4、使用第三方工具等。本专题还提供其他查看表操作的文章,大家可以免费阅读。

2023.09.19

1669

3

Oracle中RAC的用法
Oracle中RAC的用法

Oracle中RAC的用法:1、通过在多个服务器上运行数据库实例来提供高可用性;2、允许在需要时增加或减少节点数量;3、通过将工作负载分布到多个节点上来实现负载均衡;4、使用共享存储来实现多个节点之间的数据共享;5、允许多个节点同时处理数据库请求,从而实现并行处理;6、提供了透明故障切换功能;7、使用了一些技术来确保数据的一致性;8、提供了管理工具来简化RAC环境的管理和维护。本专题还提供RAC相关的其他文章,大家可以免费阅读。

2023.09.19

2293

7

oracle imp
oracle imp

imp是Oracle数据库中的一个命令行工具,用于将导出的数据和对象从一个数据库实例导入到另一个数据库实例。imp命令的一般语法为“imp username/password@connect_string file=file_name [options]”。

2023.09.19

3089

4

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.02

4549

19

oracle通配符有哪些
oracle通配符有哪些

oracle通配符有“%”、“_”、“[]”和“[^]"。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.08

237

5

oracle四舍五入怎么操作
oracle四舍五入怎么操作

oracle四舍五入操作可以使用ROUND函数来实现,其语法为“ROUND(number, decimal_places)”,其中,number是要进行四舍五入的数值,decimal_places是指定的小数位数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.14

806

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程