Vider ASM de ses fichiers avec Alter diskgroup drop file! by albanlepunk

ASM Ajouter un commentaire

Il est possible de “rentrer” dans ASM et de naviguer dedans en utilisant l’exécutable asmcmd.

C:\oracle\product\10.2.0\db_1\BIN>asmcmd -p
ASMCMD [+] > ls
DATADG/
FRADG/
ASMCMD [+] > cd DATADG
ASMCMD [+DATADG] > ls
ASMCMD [+DATADG] > ls
ASMCMD [+DATADG] > cd ..
ASMCMD [+] > cd FRADG
ASMCMD [+FRADG] > ls
TEST/

la commande rm ayant cours, on peut donc supprimer des fichiers manuellement

Comment automatiser cette tache, par exemple avant de faire un Rman Duplicate sur un serveur de restauration?

Il est possible de supprimer des fichiers dans ASM en étant connecté sys  (cad ORACLE_SID=+ASM) avec l’instruction :  alter diskgroup “XXXXX” drop file ‘yyyyyyyy’;

Toute la difficulté consiste à récupérer les bons noms de fichiers tels qu’ils sont dans ASM.

Voilà un script qui permet de le faire.

set long 20000
set line 200
set pagesize 10000
set heading off
set verify off
set feedback off
set echo off

spool c:\temp\00_nettoie_file_asm.sql

select ‘alter diskgroup ‘||g.name||’ drop file ‘||”’+'|| g.name||’.'||f.file_number||’.'||f.incarnation||”’;’
FROM v$asm_diskgroup g,
v$asm_file f,
v$asm_alias a
where g.name in (’DATADG’,'FRADG’)
and g.group_number = f.group_number
and g.group_number = a.group_number
and f.file_number = a.file_number
order by f.file_number;

spool off

@c:\temp\00_nettoie_file_asm.sql

set heading on
set verify on
set feedback on
set echo on
exit

Penser à renseigner le diskgroup in (’   ‘,’   ‘).

Votre instance ASM est vide et prête à accueuillir de nouveaux fichiers.

Faire un commentaire