最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何处理Oracle 19c RAC中由于磁盘组REBALANCE失败导致的停机:增加ASM内存
时间:2026-06-19 08:44:03 编辑:袖梨 来源:一聚教程网
REBALANCE失败本身不会直接导致RAC停机,但若卡在关键路径(如DROP DISK后无法重建或新磁盘加入后无响应),会引发连锁反应:磁盘组冗余受损→ASM实例拒绝挂载→CRS资源启动失败→数据库无法打开;真正卡点在I/O阻塞、元数据异常或硬件故障,而非内存不足。
REBALANCE 失败本身不会直接导致 RAC 停机,但若它卡在关键路径上(比如 DROP DISK 后无法完成重建、或新磁盘加入后 REBALANCE 无响应),会引发连锁反应:磁盘组冗余受损 → ASM 实例拒绝挂载 → CRS 资源启动失败 → 数据库无法打开。此时加内存不是解法,**真正卡点在 I/O 阻塞、元数据异常或底层硬件故障**。为什么给ASM实例加内存对REBALANCE失败没用
asm 实例的内存(sga_target、large_pool_size)主要用于缓存元数据(如 disk header、allocation table)、协调 rebalance 任务队列,不参与 au 迁移的实际读写。实测表明:rebalance 卡住时,v$asm_operation 中 sofar 和 est_work 长期不变,gv$session_longops 无进展,top -hp 显示 asm_server_process cpu 占用极低——说明不是内存不足,而是 i/o 层被阻塞。
- 增大
large_pool_size只影响 extent map 缓存容量,对坏道盘重试、HBA 超时、CSSD 心跳抖动等根本问题无效 - Oracle 官方文档明确指出:
asm_power_limit控制并发迁移线程数,asm_diskstring决定扫描范围,这两项才直接影响 rebalance 行为 - 盲目加内存反而可能挤占 OS 缓冲区,加剧存储层延迟感知
REBALANCE卡在WAITING/EXECUTING且EST_MINUTES不更新,先查底层I/O健康
这不是配置问题,是硬件在“假死”。90% 的挂起案例中,v$asm_disk 仍显示 STATE = 'NORMAL',但 smartctl -a /dev/sdX 已暴露风险:
-
Reallocated_Sector_Ct> 0 或Current_Pending_Sector> 0 → 物理扇区已损坏,ASM 读取 AU 时反复 timeout -
/var/log/messages出现end_request: I/O error on device sdX,时间戳与 rebalance 启动时间吻合 -
dd if=/dev/zero of=/dev/sdX bs=1M count=1024 oflag=direct单次耗时 > 500ms 或报Input/output error - 别信
asmcmd lsdsk——它只校验设备节点存在,不校验可写性
确认是否因DROP DISK残留导致REBALANCE无法启动
当磁盘被 FORCE DROP 后未清理干净,或 rebalance 被手动中断多次,v$asm_disk 中可能出现状态异常的“幽灵磁盘”:
- 执行
SELECT name, state, header_status, mode_status FROM v$asm_disk WHERE group_number = (SELECT group_number FROM v$asm_diskgroup WHERE name = 'DATADG'); - 若某盘
state = 'DROPPING'且repair_timer = 0,说明 ASM 已放弃但元数据未释放,后续ADD DISK或REBALANCE全部被阻塞 - 此时必须用
ALTER DISKGROUP DATADG DROP DISK 'ORCL:OLDISK' FORCE;强制清除(注意:仅限物理盘已不可见) - FORCE 后立即执行
ALTER DISKGROUP DATADG REBALANCE POWER 5;,否则磁盘组持续处于非冗余状态
ASMFD启用后REBALANCE仍失败,检查AFD磁盘状态和权限一致性
Oracle 19c RAC 强制使用 asmfd,若初始化不彻底,会导致 rebalance 在跨节点阶段静默失败:
- 所有节点运行
asmcmd afd_lsdsk,输出必须完全一致(磁盘名、状态a或f);若有节点返回空,说明 AFD 未接管该设备 - 检查
ls -l /dev/mapper/asm-data9:属主必须是grid:asmadmin,权限必须是brw-rw----,major/minor 号跨节点一致 - 验证 WWN 是否匹配:
scsi_id -g -u -d /dev/sda输出需与/etc/multipath.conf中wwid字段**逐字符一致**(含大小写、空格) - 切勿混用
oracleasm——19c 中它已被移除,残留配置会导致KFED-00322或ORA-15077
ALTER DISKGROUP ... SET ATTRIBUTE,都可能触发二次 rebalance 并中断当前流程,而这个中断不会报错,只会让 v$asm_operation 停滞。
相关文章
- 《王者荣耀》操作设置指南-最佳画质与交流配置详解 06-20
- 怪奇餐厅好玩吗 怪奇餐厅玩法简介 06-20
- 群雄巅峰赛S11线下决赛即将火爆开战! 06-20
- 6月18日新区无底洞开启 新区福利抢先看! 06-20
- 智能体平台开发者模型选型:不同场景下的接口权限与费用说明 06-20
- 斗罗大陆猎魂世界星斗森林怎样探索 斗罗大陆猎魂世界星斗森林探索教程 06-20