I'm running Oracle ASM (11gR2) with normal redundancy on SATA disks (WD Raptors). This is on a physical standby database, if it matters. Occasionally, disk sectors develop read errors (ECC failures). When that happens, that block is no longer mirrored, but ASM doesn't know this.

How can I have ASM read through the partitions it controls, and make sure that each block is readable?

Ideally, it'd also confirm that both sides of the mirror match, and re-write any sectors that the disk reports uncorrectable ECC errors for.

(I.e., I'd like the equivalent of mdraid's echo 'repair' > /sys/block/md0/md/sync_action or a hardware RAID controller's background consistency check.)

Update 2012-01-03: So far, the best I've found is to alter the diskgroup to drop the disk, wait for the rebalance to finish, use an OS utility to zero the disk, and then add the disk back. This of course doesn't compare the two sides of the mirror, but at least reallocates any bad sectors. It seems like there must be a better way. Its hard to believe ASM lacks such a standard RAID feature.

1 Answer 1


Use alter diskgroup mydiskgroup check all; or the remap command. But ASM should manage this for you; perhaps you need a higher redundancy setting on your JBODs,

  • 1
    I've tried 'check all', it does nowhere near enough I/O to be scanning the disks. Docs seem to say that just does metadata. Remap seems to require I already have block numbers (or do I just issue a remap for each disk, for every block on the disk?). Also, I should make clear that ASM hasn't hit these errors on its own; e.g., maybe that data hasn't been accessed recently. Or maybe its free space. I know about them from SMART surface scan.
    – derobert
    Commented Dec 5, 2011 at 21:29
  • Actually, the 11.2 docs tell me remap marks blocks unusable... which wouldn't be a good thing for a whole disk.
    – derobert
    Commented Dec 5, 2011 at 21:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.