mardi 20 août 2013

ORA-13236: internal error in R-tree processing: [Snapshot too old or Recursive fetch error]

Après avoir migré de la version 10.2.0.3 vers la version 11.2.0.3, il arrive que des requêtes incluant des tables partitionnées contenant des données spatial donnent l'erreur:

ERREUR Ó la ligne 1 :
ORA-13236: erreur interne dans le traitement R-tree : [Snapshot too old or Recursive fetch error]
ORA-13234: Úchec de l'accÞs Ó la table d'index R-tree [MDRT Table]
ORA-29400: erreur de cartouche de donnÚes
ORA-01031: privilÞges insuffisants
ORA-06512: Ó "MDSYS.SDO_PQRY", ligne 122
ORA-06512: Ó ligne 1


Voir le document suivant de My Oracle Support:
ORA-13236 [Snapshot too old or Recursive fetch error] on cross-schema Spatial Query [ID 1303804.1]

Le problème est dû au fait qu'avec les nouvelles versions d'oracle (depuis la version 10.2.0.4) il faut faire un GRANT explicite sur les tables MDRT générées par les indexes spatial.

Voici un petit script pour faire ce GRANT sur toutes les tables MDRT concernées:

set pagesize 1000
spool c:\temp\grant_mdrt.sql
select 'grant select on '|| c.table_owner || '.' || c.sdo_index_table || ' to ' || d.grantee || ';'   from DBA_PART_TABLES a, dba_tab_columns b, all_sdo_index_info c , dba_tab_privs d
where a.owner not in ('SYS','SYSTEM')
and a.owner = b.owner
and a.table_name = b.table_name
and b.data_type like '%SDO_GEOMETRY'
and b.owner = c.table_owner
and b.table_name = c.table_name
and a.owner = d.owner
and a.table_name = d.table_name
and d.privilege = '
SELECT' ;
spool off;

Exécuter par la suite le fichier sql obtenu:
@c:\temp\grant_mdrt.sql

Hope it helps...

OPatch found the word "warning" in the stderr of the make command

En appliquant des patches oracle il se peut que vous rencontriez l'avertissement suivant (ou un message similaire):

OPatch found the word "warning" in the stderr of the make command.
Please look at this stderr. You can re-run this make command.
Stderr output:
ins_precomp.mk:19: warning: overriding commands for target `pcscfg.cfg'
/ora01/logi/oracle/product/bd11203p/precomp/lib/env_precomp.mk:2160: warning: ignoring old commands for target `pcscfg.cfg'
/ora01/logi/oracle/product/bd11203p/precomp/lib/ins_precomp.mk:19: warning: overriding commands for target `pcscfg.cfg'
/ora01/logi/oracle/product/bd11203p/precomp/lib/env_precomp.mk:2160: warning: ignoring old commands for target `pcscfg.cfg'

Composite patch 14727310 successfully applied.
OPatch Session completed with warnings.
Log file location: /ora01/logi/oracle/product/bd11203p/cfgtoollogs/opatch/opatch2013-02-15_15-26-36PM_1.log

OPatch completed with warnings.

Voir le document de My Oracle Support:
Opatch warning: overriding commands for target xxxx [ID 1448337.1]

Selon ce document, il s'agit tout simplement d'un avertissement qui peut être ignoré.

Hope it helps...

UDE-00008: operation generated ORACLE error 31626

En faisant un export avec datapump (expdp) avec la version 10.2.0.3 j'ai rencontré l'erreur suivante:

UDE-00008: operation generated ORACLE error 31626
ORA-31626: job does not exist
ORA-39086: cannot retrieve job information
ORA-06512: at "SYS.DBMS_DATAPUMP", line 2745
ORA-06512: at "SYS.DBMS_DATAPUMP", line 3712
ORA-06512: at line 1


Pour ce problème voir le document suivant de My Oracle Support :
Data Pump Client Gets UDE-8 ORA-31626 ORA-39086 (Doc ID 549781.1)

Selon ce document, si le fichier log de l'export indique que l'export s'est terminé correctement le messsage d'erreur peut être ignoré.

Dans mon cas le fichier log de l'export indique bien que l'export s'est terminé correctement:

Master table "EXPORTS"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for EXPORTS.SYS_EXPORT_SCHEMA_01 is:
  /ora501/bd11gr2/expdp_epel_he_sst1_20130819_161102_01.dmp
Job "EXPORTS"."SYS_EXPORT_SCHEMA_01" successfully completed at 20:30:07


Alors message d'erreur ignoré...

Hope it helps...