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 :

[9i] Surveillance des tablespace


Sujet :

Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 6
    Points : 6
    Points
    6
    Par défaut [9i] Surveillance des tablespace
    Bonjour à tous,

    Je souhaiterais ecrire le script suivant pour surveiller mes tablespace.

    Passe au crible chaque tablespace de la base de données. Pour chacun, il recherche le plus grand espace libre et l'objet qui utilise le plus grand extent, puis détermine si l'objet pourra s'agrandir dans le tablespace.
    Si ce n'est pas le cas, une alerte pour le tablespace est remontée.

    Je ne connais pas tres bien les tables du dictionnaire. Je penser passer par la colonne next_extent de la vue DBA_TABLES mais cette colonne est vide car mes tablespaces sont en "LOCALLY MANAGED".

    Quelqu'un a une idée, un truc dans le même genre.

    Merci,

    Caboche

  2. #2
    Membre du Club Avatar de Devlop++
    Inscrit en
    Avril 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Avril 2006
    Messages : 86
    Points : 45
    Points
    45
    Par défaut
    salut,
    je ne sais pas ci cela peut t'aider mais voici un script a utilser sur SQL *PLUS :

    //*************************

    select T1.TABLESPACE_NAME,
    T1.BYTES bytes_used,
    T2.BYTES bytes_free,
    T2.largest,
    round(((T1.BYTES-T2.BYTES)/T1.BYTES)*100,2) percent_used
    from
    (
    select TABLESPACE_NAME,
    sum(BYTES) BYTES
    from dba_data_files
    group by TABLESPACE_NAME
    )
    T1,
    (
    select TABLESPACE_NAME,
    sum(BYTES) BYTES ,
    max(BYTES) largest
    from dba_free_space
    group by TABLESPACE_NAME
    )
    T2
    where T1.TABLESPACE_NAME=T2.TABLESPACE_NAME
    order by ((T1.BYTES-T2.BYTES)/T1.BYTES) desc

    //*************************
    AstaLaVista

  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

  4. #4
    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
    Si on utilise des locally managed tablespaces (LMT), on a 2 possibilités:
    - soit le tablespace est créé avec la clause UNIFORM SIZE et tous les extents ont la même taille: le premier, les suivants et le dernier
    - soit le tablespace est crée avec la clause AUTOALLOCATE et c'est Oracle qui choisit la taille des extents et il n'est pas facile de prévoir le NEXT.

    Dans les 2 cas je pense qu'il est plus facile et plus intéressant de se contenter de surveiller l'espace libre dans le tablespace et de pouvoir paramètrer le seuil d'alerte.

  5. #5
    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
    en AUTOALLOCATE on peux connaitre le NEXT en suivant l'algo qui fonctionne de la manière suivante (en gros parce que je ne me rappelle plus exactement ) : 10k sur les 10 premiers, 100k jusqu'à 100, 1M jusqu'à un millions d'extents, etc...

    reste plus qu'à vérifier l'algo et savoir où tu en es

  6. #6
    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
    Voir ce qui dit en détail Tom Kyte à ce sujet dans http://asktom.oracle.com/pls/ask/f?p...25322140091802

    t is not documented.
    It will change over time.
    It is "automatic"

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Merci pour vos pistes.

    Mes tablespaces sont locally manged AUTOALLOCATE.

    Je n'est pas trouvé de traces de l'algo indiqué par fred_d.

    Apres recherches, il apparait qu'on ne peut pas etimer le next_extent dans cette configuration.

    fred_d si tu retrouve des infos sur ton alogo d'estimation je suis preneur.

    Je pense faire une première version de mon script en passant par la valeur du plus gros extent donné par exemple par une requète du type


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT bytes, segment_name from dba_extents
    WHERE
    tablespace_name = 'XXXX'
    AND segment_type = 'TABLE'
    ORDER BY bytes DESC;

    J'ai conscience que le prochain extent alloué ne sera pas forcément plus gros que le plus gros des extent mais cela peut donner un indicateur perminant.

    Quelqu'un peut il me donner un avis sur cette méthode ?

    Mon but, vous l'aurez compris, est de prévenir les tablespace full avec une démarche plus précise qu'estimé le % d'utilisation du tablespace car je gère des bases de tailles vraiment différentes et que 2% d'espace disponible sur 20 go c'est beaucup plus de place que 2% de 2go

    Caboche

Discussions similaires

  1. Surveiller les tablespaces
    Par big1 dans le forum Oracle
    Réponses: 6
    Dernier message: 19/10/2006, 17h53
  2. [Oracle 9i] Gestion des tablespaces
    Par Herveg dans le forum Oracle
    Réponses: 3
    Dernier message: 04/01/2006, 16h54
  3. [XP SP2] Surveillance des impressions
    Par sorry60 dans le forum Windows XP
    Réponses: 9
    Dernier message: 02/03/2005, 13h57

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