如何让 Oracle ASM 扫描并修复无法纠正的 ECC 错误(坏扇区)?

der*_*ert 6 oracle oracle-11g-r2 oracle-asm

我在 SATA 磁盘(WD Raptors)上运行具有正常冗余的 Oracle ASM (11gR2)。如果重要的话,这是在物理备用数据库上。有时,磁盘扇区会出现读取错误(ECC 故障)。发生这种情况时,该块不再被镜像,但 ASM 不知道这一点。

如何让 ASM 读取它控制的分区,并确保每个块都是可读的?

理想情况下,它还将确认镜像的双方匹配,并重写磁盘报告无法纠正的 ECC 错误的任何扇区。

(即,我想要相当于 mdraidecho 'repair' > /sys/block/md0/md/sync_action或硬件 RAID 控制器的背景一致性检查。)

2012 年 1 月 3 日更新:到目前为止,我发现的最好方法是更改​​磁盘组以删除磁盘,等待重新平衡完成,使用操作系统实用程序将磁盘归零,然后重新添加磁盘。这当然不会比较镜像的两侧,但至少会重新分配任何坏道。似乎必须有更好的方法。很难相信 ASM 缺少这样一个标准的 RAID 功能。

Gai*_*ius 1

使用 alter diskgroup mydiskgroup check all;remap 命令。但 ASM 应该为你管理这个;也许您的 JBOD 需要更高的冗余设置,