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 :

Quotas unlimited tablespace


Sujet :

Oracle

  1. #1
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 16
    Par défaut Quotas unlimited tablespace
    Bonsoir à tous,

    J'aimerais avoir une précision sur les quotas.
    j'ai créé un utilisateur pour j'avais defini un quota (2go) sur un tablespace (usr). Par la suite j'ai modifié les droits de l'utilisateur en lui donnant le quota illimité

    alter user test unlimited quota on usr;

    mais lors d'un traitement insert il ya eu une erreur
    ORA-01536: space quota exceeded for tablespace 'usr'
    j'ai augmenté le tablespace et le traitement est passé.

    en monitorant dans la vue DBA_TS_QUOTAS, il ya toujours le 2go (column bytes) présent .

    Faut-il que je le mette à 0 --> alter user test quota 0 on usr
    si oui quel serait l'impact sur ma base ?

    Merci de bien vouloir me repondre

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par ouaton Voir le message
    Faut-il que je le mette à 0 --> alter user test quota 0 on usr
    Non, ça ça signifie vraiment 0 octets de quota, ce n'est pas un cas dans lequel 0 est considéré comme illimité.

    Je pense que votre tentative de passer à UNLIMITED n'a pas vraiment réussi.

  3. #3
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 16
    Par défaut
    Bonjour,

    Mais dans ce cas comment pourrais-je être sûr que le user est vraiment en UNLIMITED.

    Sinon comment faire pour qu'il soit effectivement en UNLIMITED?

  4. #4
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Un petit exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SYSTEM@DEMO>create user pom identified by pom;
     
    Utilisateur créé.
     
    SYSTEM@DEMO>select * from dba_ts_quotas where username='POM';
     
    aucune ligne sélectionnée
     
    SYSTEM@DEMO>alter user pom 
    quota unlimited on users 
    quota 100M on example 
    quota 0 on system;
     
    Utilisateur modifié.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SYSTEM@DEMO>select * from dba_ts_quotas where username='POM';
     
    TABLESPACE_NAME                USERNAME                            BYTES  MAX_BYTES     BLOCKS MAX_BLOCKS DRO
    ------------------------------ ------------------------------ ---------- ---------- ---------- ---------- ---
    USERS                          POM                                     0         -1          0         -1 NO
    EXAMPLE                        POM                                     0  104857600          0      12800 NO
    Comme on le voit, UNLIMITED se traduit par -1 dans la colonne MAX_BYTES.

  5. #5
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 16
    Par défaut
    Merci pour ton retour.

    Dans mon cas précis voici le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SQL> SELECT * FROM dba_ts_quotas WHERE username='TEST';
    TABLESPACE_NAME                USERNAME                          BYTES MAX_BYTES   BLOCKS MAX_BLOCKS
    ------------------------------ ------------------------------ -------- --------- -------- ----------
    USR                            TEST                           2.99E+09        -1  1706048         -1

    comment explique t on la valeur la valeur de la colonne BYTES?

  6. #6
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par ouaton Voir le message
    comment explique t on la valeur la valeur de la colonne BYTES?
    C'est l'espace actuellement consommé par l'utilisateur dans ce tablespace.

  7. #7
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 16
    Par défaut
    J'avoue que je suis un peu confus.
    Mon tablespace (USR) était utilisé a 60% . Avec votre explication , l'utilisateur (TEST) occupait donc environ 3Go du tablespace. comment le problème a donc pu arriver?

    ORA-01536: space quota exceeded for tablespace 'usr'
    Merci encore pour les explications...

  8. #8
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 16
    Par défaut
    Hi,

    J'ai besoin de votre aide pour comprendre ce phénomène. please

    Merci

  9. #9
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par ouaton Voir le message
    J'ai besoin de votre aide pour comprendre ce phénomène.
    Je ne suis pas convaincu qu'il y ait vraiment quelque chose d'anormal. Parfois on croit faire telle ou telle action, et à la place on s'est pris les pieds dans le tapis.

    Par contre, si vous êtes capable de nous fournir un jeu de test, on pourra probablement vous aider.
    Par jeu de test, j'entends un bout de script prêt à l'emploi qu'on n'a plus qu'à copier/coller pour reproduire le problème à volonté.

  10. #10
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 16
    Par défaut
    Peut-être comme vous dites
    Je ne suis pas convaincu qu'il y ait vraiment quelque chose d'anormal. Parfois on croit faire telle ou telle action, et à la place on s'est pris les pieds dans le tapis.
    Noté que le problème ne c'est pas encore reproduit depuis l'ajout de fichier de données au TBS ( et pourtant il n'était qu'a 60% du taux d'utilisation).

    pb peut être ailleurs, mais je n'arrive pas à le reproduire. Peut - être que quelqu'un d' expérimenté à déjà été confronté à ce problème.

  11. #11
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    peut-être qu'il fallait écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter user test quota unlimited on usr
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter user test unlimited quota on usr

  12. #12
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 16
    Par défaut
    Oui c'est ce qui a été fait

    ALTER user test quota unlimited ON usr
    L'autre était une erreur . Mais le problème c’était reproduire bien plus tard après.

  13. #13
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    difficile de deviner, si tu peux le reproduire, essayer de créer un trace file.

    bon, technique boule de cristal

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SQL> grant create table to u1 identified by u1;
    Grant succeeded.
    SQL> alter user u1 quota unlimited on users;
    User altered.
    SQL> create user u2 identified by u2;
    User created.
    SQL> alter user u2 quota 0 on users;
    User altered.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SQL> create table u1.t(x number);
    Table created.
    SQL> grant index on u1.t to u2;
    Grant succeeded.
    SQL> create index u2.i on u1.t(x);
    Index created.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> select username,TABLESPACE_NAME,max_bytes from dba_ts_quotas where username like 'U_';
     
    USERNAME                       TABLESPACE_NAME                 MAX_BYTES
    ------------------------------ ------------------------------ ----------
    U1                             USERS                                  -1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> insert into u1.t values (1);
    insert into u1.t values (1)
                   *
    ERROR at line 1:
    ORA-01536: space quota exceeded for tablespace 'USERS'

  14. #14
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 16
    Par défaut
    Effectivement, testé planifié pour éssayer de reproduire l'incident.

    Je vous tiendrai informé de la suite.

    Merci pour tout!!!!

  15. #15
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par laurentschneider Voir le message
    ...
    SQL> create index u2.i on u1.t(x);
    Index created
    Dont il faut déduire que vous êtes en 11.2 Edition Entreprise, avec l'option DEFERRED_SEGMENT_CREATION=TRUE...

  16. #16
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    je ne savais pas que l'option était spécifique à EE (ou j'avais oublié). Mais oui, j'utilise une version récente d'Oracle ...

    Pour reproduire l'effet sur une vieille croute :
    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
    40
    41
    42
    43
    44
     
    SQL> select version from v$instance;
     
    VERSION
    -----------------
    9.2.0.6.0
     
    SQL> GRANT CREATE TABLE TO u1 IDENTIFIED BY u1;
     
    Grant succeeded.
     
    SQL> ALTER user u1 quota unlimited ON users;
     
    User altered.
     
    SQL> CREATE user u2 IDENTIFIED BY u2;
     
    User created.
     
    SQL> ALTER user u2 quota unlimited ON users;
     
    User altered.
     
    SQL> CREATE TABLE u1.t(x number) tablespace users;
     
    Table created.
     
    SQL> GRANT INDEX ON u1.t TO u2;
     
    Grant succeeded.
     
    SQL> CREATE INDEX u2.i ON u1.t(x) tablespace users;
     
    Index created.
     
    SQL> ALTER user u2 quota 0 ON users;
     
    User altered.
     
    SQL> INSERT INTO u1.t select rownum from dba_objects;
    INSERT INTO u1.t select rownum from dba_objects
                   *
    ERROR at line 1:
    ORA-01536: space quota exceeded for tablespace 'USERS'

  17. #17
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par laurentschneider Voir le message
    Mais oui, j'utilise une version récente d'Oracle ...
    Genre une 12.1 beta de derrière les fagots ?

    Pour en revenir à la vieille croûte, vous êtes bien obligé de retirer explicitement le quota pour démontrer l'effet recherché, et dans ce cas il n'est plus très probable que ça arrive "par accident"... Même si on peut tout imaginer, surtout en mode boule de cristal !

  18. #18
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    rien d'artificiel dans mon scenario...

    si l'utilisateur u1 a un quota illimité sur tbs1, et que tu obtiens une erreur de quota sur tbs1, alors il y a un objet dépendent (index, mview, trigger) d'un autre utilisateur qui coince. A 0k ou 2G, quoi qu'il en soit

Discussions similaires

  1. [10gR2] Problème tablespace malgré unlimited
    Par H.ile dans le forum Administration
    Réponses: 1
    Dernier message: 12/02/2013, 10h27
  2. quota sur tablespace
    Par r83 dans le forum Oracle
    Réponses: 7
    Dernier message: 15/03/2011, 09h27
  3. ORA-01536: space quota exceeded for tablespace 'SYSTEM'
    Par stegaud dans le forum Administration
    Réponses: 1
    Dernier message: 19/04/2007, 17h33
  4. Gestion de tablespace
    Par blids dans le forum Administration
    Réponses: 20
    Dernier message: 24/09/2004, 09h45
  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