DBAtlas · Database operations atlas

Check ASM disk state, error counters and candidate disks with SQL

OracleASM

Command

-- On the ASM instance (or from a DB instance; there only the disk groups in use are visible):
SELECT dg.name AS diskgroup, d.disk_number, d.name AS disk_name, d.path,
       d.header_status, d.mount_status, d.mode_status, d.state,
       d.failgroup, d.total_mb, d.free_mb, d.read_errs, d.write_errs
FROM   v$asm_disk d
LEFT   JOIN v$asm_diskgroup dg ON dg.group_number = d.group_number
ORDER  BY dg.name, d.disk_number;

-- Disk group summary: AU size, offline disks, voting files:
SELECT name, type, allocation_unit_size/1048576 AS au_mb,
       compatibility, database_compatibility, offline_disks, voting_files
FROM   v$asm_diskgroup;

-- Databases using this ASM:
SELECT instance_name, db_name, status, software_version, compatible_version
FROM   v$asm_client;

What it does

Lists each disk's header_status (MEMBER, CANDIDATE, PROVISIONED, FORMER), mount/mode state, failgroup and read/write error counters; the number of offline disks per disk group and the ASM clients.

When to use it

Before adding disks, to check that a new LUN shows as CANDIDATE/PROVISIONED; on a disk failure, to see which disk is OFFLINE and any I/O errors.

Caution

Read-only. v$asm_disk runs disk discovery on every call and is slow on systems with many disks; for frequent monitoring use v$asm_disk_stat (no discovery, does not show new disks). Never add a disk whose header_status is MEMBER to another disk group with FORCE; it destroys the existing data.

Open in DBAtlas →

Related