[ORACLE] Index spatial avec DOMIDX_OPSTATUS='FAILED'

Index spatial avec DOMIDX_OPSTATUS='FAILED' [ORACLE] - SQL/NoSQL - Programmation

Marsh Posté le 06-08-2010 à 13:45:50    

Bonjour,
 
Je viens de patcher une base de test 10.1.0.3 vers 10.1.0.5, sans erreur particulière (juste que JAccelerator (NCOMP) n'est pas installé, mais il ne l'est pas non plus sur la base de prod, qui elle marche bien).
 
Je dumpe régulièrement un schéma depuis la base de prod vers la base de test, schéma contenant des indexes spatiaux (DOMAIN INDEX). Les indexes spatiaux déjà présents sont tous valides, mais ceux de ce schéma importé ne le sont plus: le champ DOMIDX_OPSTATUS contient la valeur FAILED.
 
Je précise qu'Oracle Spatial n'est pas installé sur cette base, j'utilise Locator/Intermedia.
 
Voici un exemple d'erreur lors de l'import:
 

Code :
  1. Processing object type SCHEMA_EXPORT/TABLE/INDEX/SE_TBL_DOMAIN_INDEX_INDEX/INDEX
  2. ORA-39083: Object type INDEX failed to create with error:
  3. ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
  4. ORA-06550: line 1, column 8:
  5. PLS-00201: identifier 'MDSYS.MDPRVT_IDX' must be declared
  6. ORA-06550: line 1, column 8:
  7. PL/SQL: Statement ignored
  8. Failing sql is:
  9. CREATE INDEX "APS"."TILE_TILEPOLYSHAPE" ON "APS"."TILE" ("TILEPOLYSHAPE" )  INDEXTYPE IS "MDSYS"."SPATIAL_INDEX" PARAMETERS ('TABLESPACE= aps_idx SDO_INDX_DIMS=2 LAYER_GTYPE="POLYGON"')PARALLEL 1


 
De même je dois utiliser l'option FORCE lorsque je droppe cet index, sinon ça me fait ça:
 

Code :
  1. drop index APS.TILE_TILEPOLYSHAPE;
  2. Error starting at line 1 in command:
  3. drop index APS.TILE_TILEPOLYSHAPE
  4. Error report:
  5. SQL Error: ORA-29856: error occurred in the execution of ODCIINDEXDROP routine
  6. ORA-13249: Error in Spatial index: cannot drop sequence APS.MDRS_231FF$
  7. ORA-13249: Stmt-Execute Failure: DROP SEQUENCE APS.MDRS_231FF$
  8. ORA-29400: data cartridge error
  9. ORA-02289: sequence does not exist
  10. ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 27
  11. ORA-06512: at line 1
  12. 29856. 00000 -  "error occurred in the execution of ODCIINDEXDROP routine"
  13. *Cause:    Failed to successfully execute the ODCIIndexDrop routine.
  14. *Action:   Check to see if the routine has been coded correctly.


 
Pourtant tous les composants de ma base sont valides:
 

Code :
  1. select comp_id, comp_name, version, status from dba_registry;
  2. COMP_ID COMP_NAME VERSION STATUS
  3. EM Oracle Enterprise Manager 10.1.0.5.0 VALID
  4. WK Oracle Ultra Search 10.1.0.5.0 VALID
  5. XDB Oracle XML Database 10.1.0.5.0 VALID
  6. CONTEXT Oracle Text 10.1.0.5.0 VALID
  7. ORDIM Oracle interMedia 10.1.0.5.0 VALID
  8. EXF Oracle Expression Filter 10.1.0.5.0 VALID
  9. OWM  Oracle Workspace Manager 10.1.0.2.0 VALID
  10. CATALOG Oracle Database Catalog Views  10.1.0.5.0 VALID
  11. CATPROC Oracle Database Packages and Types 10.1.0.5.0 VALID
  12. JAVAVM JServer JAVA Virtual Machine 10.1.0.5.0 VALID
  13. XML Oracle XDK 10.1.0.5.0 VALID
  14. CATJAVA Oracle Database Java Package 10.1.0.5.0 VALID

 
 
J'ai également lancé le script $ORACLE_HOME/ord/im/admin/imchk.sql, pas d'erreur détectée.
 
J'ai une ou 2 pistes préconisant de réinstaller Oracle Locator, mais je ne sais pas du tout comment faire ça, et si ça implique la suppression et restauration post-install de tous mes indexes spatiaux.
 
Aidez-moi à trouver une solution à cette merde, svp  :(  


---------------
Ravèt pa janmen ni rézon douvan poul
Reply

Marsh Posté le 06-08-2010 à 13:45:50   

Reply

Marsh Posté le 06-08-2010 à 13:58:33    

Je viens de me rendre compte que juste après avoir appliqué le patch, Oracle interMedia et Oracle Expression Filter étaient 'INVALID', mais un petit coup de utlrp.sql avait résolu le problème.


---------------
Ravèt pa janmen ni rézon douvan poul
Reply

Marsh Posté le 06-08-2010 à 17:02:24    

lors d'une mise à jour oracle, il faut toujours bien lire le readme qui détaille bien les actions pre et post application du patche
il est assez courant qu'il faille upgrader la base, ou encore recompiler les objets invalides

Reply

Marsh Posté le 11-08-2010 à 15:45:15    

couak a écrit :

lors d'une mise à jour oracle, il faut toujours bien lire le readme qui détaille bien les actions pre et post application du patche
il est assez courant qu'il faille upgrader la base, ou encore recompiler les objets invalides


utlrp.sql sert justement à recompiler les objets invalides. Et j'ai aussi l'impression d'avoir suivi à la lettre les pré et post requis. J'ai restauré l'ancienne version pour l'instant, je réessaierai dans quelques jours.


---------------
Ravèt pa janmen ni rézon douvan poul
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed