Bonjour,
en voulant dropper tous les objets d'une instance de ma base, je suis tombé sur l'erreur :
Seul cet objet (avec un index lié) ne veut pas se détruire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Error on line 0 DROP TABLE HDBQUAL5.PI_DIRECT_DEBIT ORA-00604: une erreur s'est produite au niveau SQL récursif 1 ORA-01578: bloc de données ORACLE altéré (fichier # 4, bloc # 161257) ORA-01110: fichier de données 4 : '/home/hdradm/logi/oracle/PMHDB1P/DATA/DATA1.dbf'
J'ai effectué un dbv sur le fichier de données, qui donne :
DBVERIFY - Verification complete
Total Pages Examined : 262144
Total Pages Processed (Data) : 47309
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 64090
Total Pages Failing (Index): 0
Total Pages Processed (Other): 138106
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 12634
Total Pages Marked Corrupt : 5
Total Pages Influx : 0
Highest block SCN : 667116904 (0.667116904)
Il y a donc des blocs corrompus dans ma base.
Pour corriger cela, j'ai donc suivi les instructions d'utilisation du package DBMS_REPAIR trouvées ici : http://download-west.oracle.com/docs...231/repair.htm
Seulement, au moment d'exécuter la procédure CHECK_OBJECT :
...plutôt que de me retourner le nombre de blocs corrompus trouvés, la procédure me renvoit... la même erreur !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 DECLARE num_corrupt INT; BEGIN num_corrupt := 0; DBMS_REPAIR.CHECK_OBJECT ( SCHEMA_NAME => 'HDBQUAL5', OBJECT_NAME => 'PI_DIRECT_DEBIT', REPAIR_TABLE_NAME => 'REPAIR_TABLE', CORRUPT_COUNT => num_corrupt); END; /
Donc là je me trouve complètement bloqué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 DECLARE num_corrupt INT; * ERROR at line 1: ORA-00604: error occurred at recursive SQL level 1 ORA-01578: ORACLE data block corrupted (file # 4, block # 161257) ORA-01110: data file 4: '/home/hdradm/logi/oracle/PMHDB1P/DATA/DATA1.dbf' ORA-06512: at "SYS.DBMS_REPAIR", line 293 ORA-06512: at line 4
Auriez-vous une idée de comment réparer/contourner cela ? Je précise que je suis sous Oracle 10g et que je suis assez novice concernant les DB...
Merci.
Partager