background success stories

Oracle : ORA-01466-unable to read data – table definition has changed | ORA-01555 Snapshot Too Old durant un export

  • ORA-01466 Unable to read data – table definition has changed : Il s’agit d’une erreur de cohérence en lecture basée sur le temps pour un objet de base de données, tel qu’une table ou un index.
    L’opération suivante peut avoir eu lieu : La requête a été analysée et exécutée avec un instantané plus ancien que l’heure à laquelle l’objet a été modifié.

 

  • ORA-01555 Snapshot Too Old : Cette erreur est causée par le mécanisme de cohérence de lecture d’Oracle. Cela se produit lorsque votre requête (ou export) démarre à un moment donné, et pendant qu’elle/qu’il s’exécute, d’autres personnes / tâches modifient les données à tel point qu’Oracle ne peut pas annuler leurs modifications. Rappelez-vous, si votre requête a démarré à un instant T, Oracle doit vous donner les résultats des données en temps T (lecture cohérente) et ne peut pas contenir de changements intermédiaires (incohérents).

En règle générale, l’une des actions ci-dessous permet de résoudre le problème (par ordre de priorité).

 

Dans le cas d’une ORA-01466 Unable to read data – table definition has changed lors d’un export :

  1. Modifier la planification du job d’export au moment où l’activité transactionnelle est la plus faible
  2. Modifier la planification du batch pouvant causer un changement de structure de la table exportée (si possible)
  3. Utiliser le mécanisme de parallélisation de l’export afin de diminuer le temps de l’export (soumis à licence)
  4. Exclure les objets volumineux de l’export afin de diminuer le temps de l’export (si ces objets peuvent être exclus)
  5. Exclure les objets de l’export sur lesquels l’erreur intervient (si ces objets peuvent être exclus)
  6. Supprimer la consistance de l’export (flashback_time) (si la consistance des données entre les tables n’est obligatoire lors d’une restauration)

 

Dans le cas d’une ORA-01555 Snapshot Too Old lors d’un l’export :

  1. Modifier la planification du job d’export au moment où l’activité transactionnelle est la plus faible
  2. Utiliser le mécanisme de parallélisation de l’export afin de diminuer le temps de l’export (soumis à licence)
  3. Exclure les objets volumineux de l’export afin de diminuer le temps de l’export (si ces objets peuvent être exclus)
  4. Exclure les objets de l’export sur lesquels l’erreur intervient (si ces objets peuvent être exclus)
  5. Supprimer la consistance de l’export (flashback_time) (si la consistance des données entre les tables n’est obligatoire lors d’une restauration)
  6. Augmenter la taille du tablespace UNDO
  7. Définir le tablespace UNDO en mode guarantee