ASM disks

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script SQL*Plus de diagnostic
Domaine ASM – disques
Voir aussi ASM diskgroups · ASM disks perfs

ASM disks détaille tous les disques physiques rattachés à un diskgroup ASM, ainsi que les disques "candidats" (visibles par ASM mais non encore affectés à un diskgroup). Pratique pour vérifier qu'un disque ajouté côté OS/SAN est bien détecté par ASM avant de l'intégrer à un diskgroup, ou pour repérer un déséquilibre de taille entre disques d'un même groupe.

Script

-- Rapport ASM : disques par diskgroup + disques candidats (v$asm_disk)

SET TERMOUT OFF
COLUMN current_instance NEW_VALUE current_instance NOPRINT
SELECT RPAD(SYS_CONTEXT('USERENV', 'INSTANCE_NAME'), 17) current_instance FROM dual;
SET TERMOUT ON

PROMPT
PROMPT +------------------------------------------------------------------------+
PROMPT | Rapport   : ASM Disks                                                  |
PROMPT | Instance  : &current_instance                                         |
PROMPT +------------------------------------------------------------------------+

SET ECHO      OFF
SET FEEDBACK  6
SET HEADING   ON
SET LINESIZE  180
SET PAGESIZE  50000
SET VERIFY    OFF

CLEAR COLUMNS
CLEAR BREAKS
CLEAR COMPUTES

COLUMN disk_group_name      FORMAT a25         HEAD 'Disk Group Name'
COLUMN disk_file_path       FORMAT a20         HEAD 'Path'
COLUMN disk_file_name       FORMAT a20         HEAD 'File Name'
COLUMN disk_file_fail_group FORMAT a20         HEAD 'Fail Group'
COLUMN total_mb             FORMAT 999,999,999 HEAD 'File Size (MB)'
COLUMN used_mb              FORMAT 999,999,999 HEAD 'Used Size (MB)'
COLUMN pct_used             FORMAT 999.99      HEAD 'Pct. Used'

BREAK ON report ON disk_group_name SKIP 1

COMPUTE sum LABEL ''              OF total_mb used_mb ON disk_group_name
COMPUTE sum LABEL 'Grand Total: ' OF total_mb used_mb ON report

SELECT
    NVL(a.name, '[CANDIDATE]')                     disk_group_name
  , b.path                                         disk_file_path
  , b.name                                         disk_file_name
  , b.failgroup                                    disk_file_fail_group
  , b.total_mb                                     total_mb
  , (b.total_mb - b.free_mb)                       used_mb
  , ROUND((1 - (b.free_mb / b.total_mb)) * 100, 2) pct_used
FROM
    v$asm_diskgroup a RIGHT OUTER JOIN v$asm_disk b USING (group_number)
ORDER BY
    a.name
/

Colonnes / sortie

  • [CANDIDATE] – disque visible par ASM mais non encore rattaché à un diskgroup (group_number = 0).
  • Fail Group – groupe de panne du disque, pertinent pour la redondance NORMAL/HIGH.
  • Attention : pour un disque candidat, total_mb peut être à 0 selon la plateforme, ce qui provoquerait une division par zéro sur pct_used – à filtrer ou entourer d'un NULLIF si le cas se présente en environnement réel.

Voir aussi