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

Administration Oracle Discussion :

Vue matéralisée et saturation du tablespace UNDO


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 496
    Billets dans le blog
    1
    Par défaut Vue matéralisée et saturation du tablespace UNDO
    Bonjour,

    Tout d'abord, je dois dire que je me vraiment pas un expert en administration Oracle. Mais je viens d'arriver sur un projet et on me refile à problème détecté en production et on m'a demandé d'investiguer. Si je dis des trucs louches, n'hésitez donc pas à me reprendre.

    Le problème : la production nous dit qu'une vue matérialisée (récemment mise en place) ne s'est jamais rafraichie depuis (la MAJ tombant en timeout). De plus, elle sature le UNDO tablespace et les autres processus renvoient souvent des erreurs ORA 30036.


    1 )L'erreur ORA est effectivement due à une saturation du tablespace UNDO, il faudrait donc en augmenter la capacité. La question est de combien...

    2) Parallèlement, je me pose la question : la saturation du UNDO est-elle liée à la non mise à jour de la vue matérialisée ?

    J'ai envie de répondre "oui" à cette question vus les éléments que j'ai pu trouvé sur le net. La VM est en refresh COMPLETE, donc le SGBD essaye de tout mettre dans le UNDO, c'est pas assez grand, il attend au cas où de la place se libère, il finit par tomber en timeout mais pendant ce temps les autres processus se choppent des ORA 30036 car pas de place pour eux dans le UNDO.

    Pour faire mes tests, j'ai une copie de l'environnement de prod (au moins partielle). J'ai essayé hier soir de dropper et de recréer la table, ça a marché, elle contient bien 189 millions de lignes comme avant d'avoir été droppé. J'ai effectué quelques requêtes pour voir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    /* Espace alloue dans les tablespaces */
    SELECT TABLESPACE_NAME
    , SUM(BLOCKS) AS alloue
    FROM dba_data_files
    WHERE TABLESPACE_NAME = 'APPS_UNDOTS1'
    GROUP BY TABLESPACE_NAME
    ;
     
     
    /* Espace occupe dans les tablespaces */
    SELECT TABLESPACE_NAME
    , SUM(BLOCKS) AS occupe
    FROM dba_segments
    WHERE TABLESPACE_NAME = 'APPS_UNDOTS1'
    GROUP BY TABLESPACE_NAME
    ;
     
     
    /* Espace libre dans les tablespaces */
    SELECT TABLESPACE_NAME
    , SUM(BLOCKS) AS libre
    FROM dba_free_space
    WHERE TABLESPACE_NAME = 'APPS_UNDOTS1'
    GROUP BY TABLESPACE_NAME
    ;
     
     
    /* Liste des tables avec la taille en blocs pour l'utilisateur XXCN */
    SELECT OWNER
    , TABLE_NAME
    , TABLESPACE_NAME
    , NUM_ROWS
    , BLOCKS
    , EMPTY_BLOCKS
    , LAST_ANALYZED 
    FROM  DBA_TABLES
    WHERE TABLE_NAME = 'XXCN_DETAILPAIEMENTLOT_VM'
    ;


    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    TABLESPACE_NAME                ALLOUE                 
    ------------------------------ ---------------------- 
    APPS_UNDOTS1                   4731392                
     
    TABLESPACE_NAME                OCCUPE                 
    ------------------------------ ---------------------- 
    APPS_UNDOTS1                   4698472                
     
    TABLESPACE_NAME                LIBRE                  
    ------------------------------ ---------------------- 
    APPS_UNDOTS1                   32768  
     
    OWNER                          TABLE_NAME                     TABLESPACE_NAME                NUM_ROWS               BLOCKS                 EMPTY_BLOCKS           LAST_ANALYZED             
    ------------------------------ ------------------------------ ------------------------------ ---------------------- ---------------------- ---------------------- ------------------------- 
    XXCN                           XXCN_DETAILPAIEMENTLOT_VM      APPS_TS_TX_DATA                                                                                                               
    APPS                           XXCN_DETAILPAIEMENTLOT_VM      APPS_TS_TX_DATA


    Auriez-vous des éléments pour valider ma théorie ou alors m'aiguiller sur une autre piste SVP ?

    Merci d'avance !

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 496
    Billets dans le blog
    1
    Par défaut
    PS : et aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT OWNER
    , MVIEW_NAME
    , REFRESH_MODE
    , REFRESH_METHOD
    , LAST_REFRESH_TYPE
    , LAST_REFRESH_DATE
    , FAST_REFRESHABLE
    , STALENESS
    , STALE_SINCE
    FROM DBA_MVIEWS
    WHERE MVIEW_NAME = 'XXCN_DETAILPAIEMENTLOT_VM'
          AND OWNER = 'XXCN';
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    OWNER                          MVIEW_NAME                     REFRESH_MODE REFRESH_METHOD LAST_REFRESH_TYPE LAST_REFRESH_DATE         FAST_REFRESHABLE   STALENESS           STALE_SINCE               
    ------------------------------ ------------------------------ ------------ -------------- ----------------- ------------------------- ------------------ ------------------- ------------------------- 
    XXCN                           XXCN_DETAILPAIEMENTLOT_VM      DEMAND       COMPLETE       COMPLETE          10/05/11 19:07:02         DIRLOAD_DML        UNUSABLE
    Le champ STALENESS à UNUSUABLE ne veut-il pas dire que la VM ne s'est pas si bien que ça créée ?

Discussions similaires

  1. tablespace UNDO offline
    Par olivanto dans le forum Administration
    Réponses: 2
    Dernier message: 16/05/2007, 09h37
  2. Pb de tablespace UNDO qui augmente toujours
    Par foster06 dans le forum Oracle
    Réponses: 2
    Dernier message: 08/12/2006, 18h32
  3. Changement de tablespace UNDO
    Par guigui_cwoco dans le forum Administration
    Réponses: 17
    Dernier message: 15/11/2006, 10h40
  4. supprimer ou modifier tablespace UNDO en 9.2.0
    Par big1 dans le forum Oracle
    Réponses: 3
    Dernier message: 27/10/2006, 11h06
  5. Etat et taille du tablespace UNDO sous Oracle 10g
    Par couak dans le forum Oracle
    Réponses: 2
    Dernier message: 21/06/2006, 13h37

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