IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

UNDO_RETENTION très élevé [Débat]


Sujet :

Oracle

  1. #1
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut UNDO_RETENTION très élevé
    Bonjour,

    Je suis en train de réfléchir au fonctionnement des UNDO. Quel effet de bord peut on craindre d'un UNDO_RETENTION très élevé (10000 heures par exemple) tant qu'on mets du disque pour le UNDO.

    A mon avis, on "pervertit" le mécanisme en créant trop de segment de rollback (donc baisse de perf) et je ne suis pas convaincu qu'on ne peut pas avoir de ora-01555. Comme toute médaille à son revers, je cherche celui du UNDO

    Quelqu'un aurait une doc ou l'expérience de undo_retention excessivement élevé ?

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Quelle est la version exacte d'Oracle ?
    Est-ce que le tablespace UNDO est en mode auto-extend ou non ?
    Pour la 10GR2: http://download-uk.oracle.com/docs/c...htm#sthref1477
    Est-ce que la tablespace UNDO est créé avec la clause RETENTION GUARANTEE ou non ?

    Il y avait déjà pas mal de discussion autour de ce sujet:
    http://www.developpez.net/forums/sho...undo_retention

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    attention, ce sujet est une réflexion

    Je cherche juste à savoir, quels effets néfastes pourraient avoir un UNDO_RETENTION trop élevé en imaginant que la taille du UNDO peut être illimité

  4. #4
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Points : 1 294
    Points
    1 294
    Par défaut
    Ben il te faut simplement un tablespace ennorme, et plus ta base est rapide et souvent utilisée, plus ça doit etre ennorme... sinon je vois en quoi ça dégraderait les perfs...

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 190
    Points : 103
    Points
    103
    Par défaut
    Bonjour
    Fred_D je veux me renseigné sur ton sujet et je veux un document ou un tuto pour comprendre ta question est ce c'est possible

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Depuis on a réfléchit entre collégues

    L'un d'eux nous a fourni cet algo :
    when trying to allocate a new extent for SMU in UNDO tablespace :
    1. A new extent will be allocated from the undo tablespace.
    2. If failed, ( no free space exists in the tablespace ) acquire expired extent from another undo segment.
    This involves shrinking from the other segment and adding to the current undo segment.
    3. If failed, reclaim expired extents from the current transaction's commited changes.
    4. If failed, try allocating more space by datafile extention ( if autoextend ON ).
    5. If failed, try reuse an unexpired extent from the current undo segment.
    6. If failed, try stealing an unexpired extent from another undo segment.
    7. If all failed, report an "Out-Of-Space" error.
    Ainsi, si undo_retention très très grand (10000 jours ) tant qu'il y a de la place dans le UNDO on ne peut pas avoir de snapshot too old. Par contre, la place étant toujours limité, le risque d'avoir un undo_retention trop élevé est tout simplement qu'il n'y a plus d'extent EXPIRED et qu'Oracle va utilser le UNEXPIRED quand le UNDO sera plein... donc risque de ora-01555.

    Conclusion : tant que le UNDO n'est pas utilisé on peut augmenter le undo_retention. En revanche, on doit le redescendre si on rempli le UNDO.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 200
    Points : 65
    Points
    65
    Par défaut
    Pour rebondir, 3 ans après sur cette discussion

    Que pensez vous de cette formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Optimal Undo Retention = Actual Undo Size / (DB_BLOCK_SIZE * UNDO_BLOCK_PER_SECOND)

  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    J'en pense que si ça se réglait avec une formule, le paramètre n'aurait pu lieu d'être Mais c'est une bonne base pour savoir comment tailler son UNDO

Discussions similaires

  1. [10g] Switch Log ponctuellement très élevé
    Par olivier] dans le forum Administration
    Réponses: 11
    Dernier message: 17/06/2015, 14h17
  2. Latence trés élevé Serveur d'entreprise internet
    Par Wiish dans le forum Administration
    Réponses: 5
    Dernier message: 16/05/2014, 21h14
  3. Réponses: 5
    Dernier message: 25/07/2012, 22h20
  4. Load average très élevé
    Par Sindel dans le forum Administration
    Réponses: 3
    Dernier message: 12/07/2010, 18h29
  5. J'en perds mon latin (pas très élevé, c'est vrai)
    Par laurentSc dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 15/10/2009, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo