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 :

Tablespace et allocation d'extent


Sujet :

Oracle

  1. #1
    Membre confirmé Avatar de Doctor Z
    Inscrit en
    Mars 2004
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 88
    Par défaut Tablespace et allocation d'extent
    Bonjour,

    J'ai un tablespace Oracle composer de 4 fichiers (occupation/total) :

    F1 : 1603 Mo/1800 Mo
    F2 : 937 Mo/1536 Mo
    F3 : 857 Mo/ 1024 Mo
    F4 : 663 Mo/1100 Mo

    Un outil que j'utilise pour monitorer ma base de données m'indique qu'Oracle
    ne peut pas allouer un extent de 250 Mo.

    Quel fichier dois-je agrandir pour que le prochain extent de 250 Mo puisse
    être alloué ? Ou comment puis-je savoir sur quel(s) fichier(s) de données
    va intervenir Oracle pour me dire qu'il ne peut pas allouer le prochain extent ?

    Par avance, je vous en remercie.

  2. #2
    Membre émérite
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Par défaut
    n'importe lequel si ces fichiers appartiennent bien au même tablespace...

  3. #3
    Membre confirmé Avatar de Doctor Z
    Inscrit en
    Mars 2004
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 88
    Par défaut
    Effectivement ils appartiennent au même tablespace, simplement le fichier
    qu'Oracle va choisir n'a pas 250 Mo d'espace libre ...

    Si j'augmente la taille de F1 et de F3, tu crois que cela peut solutionné le
    problème ... ?

    Il n'y a pas un moyen de savoir lequel de ces fichiers Oracle va choisir pour
    l'allocation de son prochain extent de 250 Mo ?

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    à mon avis, l'interprétation du message n'est pas bonne puisque F2 ferait très bien l'affaire... pourrais-tu donner le message exact d'Oracle ? C'est pas un problème de MAXEXTENT par hasard ?

  5. #5
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Par défaut
    F2 pourrait très bien faire l'affaire mais peut être que l'espace libre est trop fragmenté...


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    effectivement, j'ai vu l'autre topic

    Je pense qu'il va falloir passer par une réorg des tablespaces, cela consiste à déplacer les segments de du tablespace dans un tablespace temporaire et de les redéplacer dans le tablespace d'origine. A noter que les indexes peuvent simplement être rebuildé

  7. #7
    CD
    CD est déconnecté
    Membre éprouvé
    Inscrit en
    Septembre 2004
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 127
    Par défaut
    D'après ce que j'ai lu dans l'autre thread, le problème n'est pas la place disponible sur le tablespace, mais la taille des blocs contigus qui n'atteint pas les 250 Mo requis pour créer l'extent de ta table.

    Exemple, un tablespace T avec 2 tables, T1 et T2, stockées comme suit (F pour Free) :

    T1 T1 T2 T2 F T1 F F T2 F F T1 F F T2 F

    Si pour créer la table T3 il faut 3 blocs contigus libres afin d'avoir la taille de l'extent désiré, dans ce cas, on aura la même erreur. Il ne trouvera pas ses 3 blocs contigus, alors qu'il y a 8 blocs libres !

    Pour corriger ce problème, il y a plusieurs solutions possibles :
    1/ Augmenter l'un des fichiers du tablespace pour avoir les 250 Mo contigus sur le tablespace.

    1/ Reconstruire les objets du tablespace :
    Avec les commandes suivantes, il est possible de faire une réorganisation du tablespace afin de récupérer les blocs "génants" du tablespace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    alter table T1 move tablespace X;
    alter index I1 rebuild tablespace X;
    2/ Passer en mode de gestion d'extents LMT
    Cela permet de ne plus avoir ce genre de problèmes. Il faut créer un tablespace LMT avec des extents de tailles uniformes, puis déplacer les objets dans le tablespace LMT avec les commandes alter table move et alter index rebuild

  8. #8
    Membre confirmé Avatar de Doctor Z
    Inscrit en
    Mars 2004
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 88
    Par défaut
    Merci à tous pour vos réponses.

    Effectivement la solution qui permettrait de solutionner "à plus long terme"
    le problème passe par une réorganisation complète du tablespace (défragmentation),
    puisque même si je dispose au final de 1,4 Go de libre, je n'ai que 224 Mo
    d'espace libre contigu, ce qui ne permet donc pas d'allouer 250 Mo de
    blocs contigus.

    Cependant, n'étant qu'un "DBA backup", je laisserai le soin au DBA de ma
    boîte de faire cela, néanmoins sachant que nous avons suffisament de place
    de libre sur le serveur, j'ai opté pour augmenter la taille du fichier le plus
    petit de 600 Mo (250 Mo x 2 plus un peu de marge) de manière à ce que
    Oracle puisse allouer au moins 2 extents de 250 Mo chacun.

    Merci à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/12/2009, 00h25
  2. Réponses: 2
    Dernier message: 20/10/2008, 15h06
  3. ORA-01658: unable to create INITIAL extent for segment in tablespace
    Par farenheiit dans le forum Administration
    Réponses: 11
    Dernier message: 05/06/2007, 17h49
  4. [8.1.7.4] unable to allocate an extent in TEMP
    Par Débéa dans le forum Oracle
    Réponses: 5
    Dernier message: 30/01/2007, 08h54
  5. unable to create INITIAL extent for segment in tablespace
    Par Ludolitaliano dans le forum Administration
    Réponses: 4
    Dernier message: 11/09/2003, 16h43

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