web-dev-qa-db-fra.com

DeleteDisk d'oracleasm a échoué Impossible d'effacer le disque

J'ai laissé tomber le disque de l'ASM Diskgroup:

> ALTER DISKGROUP DATA01 DROP DISK DISK1;

Oracle a fait une opération de rééquilibrage puis a laissé tomber le disque.

Maintenant, je souhaite supprimer le disque de la bibliothèque ASM et renvoyer le disque au système:

# oracleasm deletedisk -v DISK1
  Clearing disk header: oracleasm-write-label: Unable to open device "/dev/oracleasm/disks/DISK1": 
  Device or resource busy failed
  Unable to clear disk "DISK1"

Les détails du système: 11.2.0.1 RAC 2-NODE

Pourquoi ASM n'efface pas l'en-tête de disque? Où voir le journal détaillé?

---------------------------------------- Edit1 --------- --------------------------------------

# fuser /dev/oracleasm/disks/DISK1

renvoie rien sur les deux nœuds

1
kupa

Tout d'abord, j'ai vérifié qu'il n'y avait pas d'étendue sur disque1.

$ . oraenv
Oracle_SID = [+ASM1] ?

SQL> select PXN_KFFXP,  -- physical extent number
           XNUM_KFFXP, -- virtual extent number
           DISK_KFFXP, -- disk number
           AU_KFFXP    -- allocation unit number
    from X$KFFXP
    where DISK_KFFXP=1;

no rows selected

J'ai effacé l'en-tête de disque par DD:

# dd if=/dev/zero of=/dev/oracleasm/disks/DISK1 bs=1024 count=100
100+0 records in
100+0 records out
102400 bytes (102 kB) copied, 0.000156 seconds, 656 MB/s

Remarque: Mon unité d'allocation est de 1 Mo. C'est pourquoi j'utilise BS = 1024.

Puis Disque supprimé par oracleasm:

# oracleasm deletedisk DISK1
# oracleasm scandisks    <--Do this step on all nodes

Pour dire la vérité, ce n'est pas un bon moyen de résoudre le problème, car lorsque j'exécute la commande suivante sur le deuxième nœud:

/sbin/blkid | grep oracleasm

/dev/sdg1: LABEL="DISK6" TYPE="oracleasm"
/dev/sdb1: LABEL="DISK1" TYPE="oracleasm"
/dev/sdh2: LABEL="DISK8" TYPE="oracleasm"
/dev/sdh3: LABEL="DISK9" TYPE="oracleasm"
/dev/sdh4: LABEL="DISK10" TYPE="oracleasm"
/dev/sdh1: LABEL="DISK7" TYPE="oracleasm"
/dev/sdi1: LABEL="DISK11" TYPE="oracleasm"
/dev/sdi2: LABEL="DISK12" TYPE="oracleasm"

Cela me montre l'étiquette Disk1.

Donc, Effacement de l'en-tête de disque ASM à l'aide de DD a laissé des jonques.

2
kupa

Effacer l'en-tête n'est pas propre.

Le bon moyen est de courir en tant que root:

oracleasm deletedisk -v <label>

Disk <label> Définit un périphérique non marqué.
Débranchissement du disque: fait

Et répétez sur chaque nœud de cluster, si oui.

0
eric