ASM drop files

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script SQL*Plus générateur (diagnostic + action)
Domaine ASM – nettoyage de fichiers
Voir aussi ASM alias · ASM files

ASM drop files ne supprime rien lui-même : il génère la liste des instructions ALTER DISKGROUP ... DROP FILE permettant de supprimer l'ensemble des fichiers ASM présents dans tous les diskgroups. Le résultat est un script SQL à relire et filtrer avant exécution – il ne doit jamais être lancé tel quel en production.

Attention – ce script produit des commandes destructives (DROP FILE). Toujours relire et filtrer la sortie générée (par exemple restreindre à un diskgroup ou à un préfixe de fichier précis) avant de l'exécuter, et ne jamais l'utiliser directement sur un diskgroup de production sans validation préalable.

Script

-- Génère les instructions DROP FILE pour tous les fichiers ASM (tous diskgroups)
-- Sortie a relire/filtrer avant execution -- ne pas lancer tel quel en production.

SET ECHO      OFF
SET FEEDBACK  OFF
SET HEADING   OFF
SET LINESIZE  256
SET PAGESIZE  50000
SET VERIFY    OFF

CLEAR COLUMNS
CLEAR BREAKS
CLEAR COMPUTES

COLUMN full_alias_path FORMAT a255 HEAD 'File Name'
COLUMN disk_group_name NOPRINT

SELECT
    'ALTER DISKGROUP ' || disk_group_name ||
    ' DROP FILE ''' || CONCAT('+' || disk_group_name, SYS_CONNECT_BY_PATH(alias_name, '/')) || ''';' full_alias_path
FROM
    ( SELECT
          g.name               disk_group_name
        , a.parent_index       pindex
        , a.name               alias_name
        , a.reference_index    rindex
        , f.type               type
      FROM
          v$asm_file f RIGHT OUTER JOIN v$asm_alias     a USING (group_number, file_number)
                                   JOIN v$asm_diskgroup g USING (group_number)
    )
WHERE
    type IS NOT NULL
START WITH
    (MOD(pindex, POWER(2, 24))) = 0
CONNECT BY
    PRIOR rindex = pindex
/

SET FEEDBACK 6
SET HEADING  ON

Colonnes / sortie

  • Chaque ligne produite est une instruction ALTER DISKGROUP <nom> DROP FILE '+<diskgroup>/<chemin alias>'; prête à être rejouée après relecture.
  • La requête reconstruit le chemin complet de chaque alias via CONNECT BY sur v$asm_alias, comme ASM files et ASM files 10g.

Voir aussi

  • ASM alias — liste des alias exploités par ce script
  • ASM files — inventaire complet (lecture seule) des mêmes fichiers