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 :

Difficulté de maitrise de la taille d'un EXTENT


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 112
    Par défaut Difficulté de maitrise de la taille d'un EXTENT
    Bonjour à tous


    j'ai tenté de créer un tablespace avec gestion des extents à ma manière, c-à-d avec une progression de 8 KiloBytes chacun,
    sachant que mon block_size est à 8Kilo, je ne vois pas de contradiction


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    create tablespace tb04
    datafile 'd:\oracle\data\tb04.ora' size 3m
    extent management local uniform size 8k
    segment space management manual
    Le tablesapce est bien créé sans problème, mais
    après vérification :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select tablespace_name, block_size, initial_extent
    from dba_tablespaces
    Je constate que le taille de l'extent est à 16K au lieu de 8k:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    TABLESPACE_N BLOCK_SIZE INITIAL_EXTENT
    ------------ ---------- --------------
    SYSTEM             8192          65536
    UNDOTBS1           8192          65536
    
    ......................................
    
    TB04               8192          16384
    ......................................
    c'est à dire que ma clause

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     extent management local uniform size 8k 
    n'a pas été prise en considération,
    j'ai pas arrêté la vérification à ce niveau là, j'ai créé des tables sur le tablespace en question et j'ai remarqué que les segments associés à ces tables avancent par Extent de 8k au lieu de 16k.

    J'ai essayé d'inclure par la suite la clause "minimum extent 8k"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create tablespace tb04
    datafile 'd:\oracle\data\tb04.ora' size 3m
    minimum extent 8k
    extent management local uniform size 8k
    segment space management manual
    pour empécher mes extents de démarrer à 16k,
    il m'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ORA-25143: la clause de stockage par défaut n'est pas compatible avec la règle d'affectation
    Quequ'un peut il me dire pourquoi je ne peux pas allouer par Extent de 8k ?

    Merci à tous.

    P.S
    je travaille sur
    Oracle 9.2.0.1.0 / Windows Xp

  2. #2
    Membre émérite Avatar de 13thFloor
    Homme Profil pro
    DBA Oracle freelance
    Inscrit en
    Janvier 2005
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle freelance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 670
    Par défaut
    Bonsoir,
    la taille minimale ne serait-elle pas égale à 2 blocs, donc 2x8=16k dans ton cas ?

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 112
    Par défaut
    Merci 13thFloor

    la taille minimale ne serait-elle pas égale à 2 blocs, donc 2x8=16k dans ton cas ?

    Justement, je ne sais pas où aller vérifier ce paramètre "Taille minimale de l'extent",
    tout ce que je sais c'est que on peut donner une valeur à ce paramètre lors de la création du tablespace, chose que j'ai faite, et que j'ai signalée dans mon premier poste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create tablespace tb04
    datafile 'd:\oracle\data\tb04.ora' size 3m
    
    • minimum extent 8k
    extent management local uniform size 8k segment space management manual
    mais que ne veut pas prendre effet, en raison d'un paramètre plus fort certainement que je n'arrive pas à localiser.

    Merci

  4. #4
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Si dans le create table tu as précisé INITIAL, alors oracle va prendre autant d'extent que necessaire pour allouer cette taille initiale.
    Cordialement,
    Franck.

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 112
    Par défaut
    Salut Franck

    Si dans le create table tu as précisé INITIAL, alors oracle va prendre autant d'extent que necessaire pour allouer cette taille initiale.
    Cordialement,
    Franck.
    non, ne n'ai pas précisé de clause INITIAL dans mon ordre de création du tablespace,
    et si je l'ai évoqué, précédemment, dans ma requête de consultation des extents

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT tablespace_name, block_size, initial_extent
    FROM dba_tablespaces
    c'est juste pour faire constater que la clause
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    extent management LOCAL uniform size 8k
    ...
    n'a pas eu d'effet,
    j'ai même vérifié dans la vue DBA_SEGMENTS et DBA_EXTENTS après création et alimentation de quelques tables, et j'ai trouvé que les extents évoluent par pas de 16k au lieu de 8k.

    j'ai été voir aussi dans la vue v$parameter, en exécutant par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Select name, value from v$parameter
    where upper(name) like upper('%EXTENT%')
    pour voir s'il y quelque chose qui traite de la taille des extents, en vain.

    Merci

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    461
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 461
    Par défaut
    Bonjour Isabella,

    As-tu été voir les clauses réellements utilisées par Oracle pour la création de ton tablespace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set long 1000000
    select dbms_metadata.get_ddl('TABLESPACE','TB04') from dual;
    Ce te permettra de voir si les clauses que tu lui fourni sont conservées ou modifiées.

  7. #7
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour Isabella,
    Et-ce que tu peux vérifier dans dba_extents pour voir leur taille (blocks=nombre de blocs oracle - a multiplier par le block size de la tablespace)
    Cordialement,
    Franck.

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 112
    Par défaut
    Merci pachot et tibal pour vos réponses,
    vos 2 suggestions

    SET long 1000000
    SELECT dbms_metadata.get_ddl('TABLESPACE','TB04') FROM dual;
    tibal
    et
    select tablespace_name, extent_id, blocks
    from dba_extents
    where tablespace_name ='TB04'
    pachot
    Permettent de vérifier à combien est la taille de l'extent en OCTETS et en BLOCKS,
    résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    - 16 KiloOctets
    - 2 blocks
    mais là , ces deux résultats m'informent sur un fait accompli, c'est à dire la taille actuelle de chaque extent de mon tablespace en l'occurrence 16k (2 blocks),
    Hélas ,
    ça , je le sais déjà et je l'ai déjà vérifié par les requêtes que j'ai avancé précédemment,
    ce que je cherche à savoir maintenant est, pourquoi est ce que cette taille (de l'extent) est elle de 16K (2 blocks) au lieu de 8k (1 block) tel que je l'ai formulé dans ma toute première requête de création du tablespace,

    pour résumer, voilà :

    je demande à oracle de me créer un nouveau tablespace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Create tablespace TB07
    DATAFILE 'd:\oracle\data\tb07.ora' size 3m
    extent management local uniform size 8k
    segment space management manual
    réponse oracle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Tablespace créé.
    Mais, à l'exécution de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT dbms_metadata.get_ddl('TABLESPACE','TB07') from dual;
    il m'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DBMS_METADATA.GET_DDL('TABLESPACE','TB07')
    --------------------------------------------------------------------------------
    
      CREATE TABLESPACE "TB07" DATAFILE
      'D:\ORACLE\DATA\TB07.ORA' SIZE 3145728 REUSE
      LOGGING ONLINE PERMANENT BLOCKSIZE 8192
      EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16384 SEGMENT SPACE MANAGEMENT MANUAL
    Merci.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    461
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 461
    Par défaut
    Je viens de faire un test sur une base Oracle 10g (pas de 9) et je ne peux pas créer de tablespace avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 8 K
    Il me sort l'errreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORA-03249: Uniform size for auto segment space managed tablespace should have atleast 5 blocks
    Pour que ça fonctionne, je dois absolument lui fournir un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 40 K
    Si non, rien sur l'erreur qui m'est remontée sur Metalink. Je continue à gratter, au cas ou ...
    @ +


  10. #10
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 112
    Par défaut
    Tiens, par exemple,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ORA-03249: Uniform size FOR auto segment space managed 
    tablespace should have atleast 5 blocks
    à l'issue de ce message, on voit bien que Oracle refuse de créer un tablespace dont les segments doivent évoluer par EXTENTS de 1 Block. le message est clair, mais doit en déduire que jamais un Extent ne peut être en deça de 5 Blocs, quelques soient les circonstances, ou bien ce sont juste quelques paramètres du TABLESPACE ou de la base qui sont en train d'imposer cette limitation.

    Bon, au moins la version 10G, signale son refus, contrairement à la 9i qui refuse sans signaler.

    Merci.

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/11/2010, 09h24
  2. [AC-2007] je ne maitrise plus la taille des mes formulaires
    Par alassanediakite dans le forum IHM
    Réponses: 5
    Dernier message: 17/04/2010, 11h39
  3. Taille du Initial extent lors de la création d'une table
    Par ArchVector dans le forum Administration
    Réponses: 0
    Dernier message: 02/03/2010, 17h43
  4. Difficulté à configurer la taille d'un panel
    Par hudony dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 12/01/2009, 00h56
  5. taille maximale d'une base de donnée paradox
    Par Anonymous dans le forum Paradox
    Réponses: 5
    Dernier message: 14/02/2004, 17h39

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