El siguiente error se puede presentar a la hora de eliminar un recurso de Disk Group en Oracle usando srvctl
:
$ srvctl remove diskgroup -g DATA_DG PRCA-1002 : Failed to remove CRS resource ora.DATA_DG.dg for ASM Disk Group DATA_DG PRCR-1028 : Failed to remove resource ora.DATA_DG PRCR-1072 : Failed to unregister resource ora.DATA_DG CRS-0222: Resource 'ora.DATA_DG' has dependency error.
Independientemente de que ese Disk Group ya no esté siendo usado por ninguna base de datos (ya que hemos migrado por ASM todos los datos a otro DG), las bases de datos mantienen en su configuración que el DG es una dependencia, por lo que mientras no se elimine esa referencia, no estará permitido borrarlo:
$ srvctl config database -d foo Database unique name: foo Database name: foo Oracle user: oracle [...] Disk Groups: DG_DATA,DG_RECO [...]
Para eliminar la dependencia, se redefinen los Disk Groups de la base de datos:
$ srvctl modify database -d foo -a 'DG_DATA_NEW,DG_RECO'
$ srvctl config database -d foo Database unique name: foo Database name: foo Oracle user: oracle [...] Disk Groups: DG_DATA_NEW,DG_RECO [...]
Y a partir de este momento, ya es posible eliminar por completo la referencia al disk group en CRS.