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 :

Oracle 10g: Informations tablespaces


Sujet :

Administration Oracle

  1. #1
    Membre régulier
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    163
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 163
    Points : 76
    Points
    76
    Par défaut Oracle 10g: Informations tablespaces
    Bonjour à toutes et à tous,

    Pour éviter la saturation de mon serveur et le risque de blocage de mes bases de données (ou perte de données), je voudrais suivre dans le temps l'évolution de l'espace utilisé, l'extension possible. Tout ceci en fonction de l'espace disque disponible.

    Je voudrais particulièrement surveiller la taille des auto-extensions de mes bases. Et intervenir dans le cas ou l'espace disque disponible ne permet pas l'auto-extension.

    En cherchant sur internet, j'ai pu construire la requête ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT A.tablespace_Name, A.Alloue, B.Occupe, C.Libre, D.EXT, D.EXT_INITIAL, D.NEXT_EXT, D.EXT_MIN, D.EXT_MAX
    FROM (select tablespace_name, sum(bytes)/1024/1024 AS ALLOUE from dba_data_files GROUP BY tablespace_name) a,
    (select tablespace_name, Sum(bytes)/1024/1024 AS OCCUPE from dba_segments group by tablespace_name) b,
    (select tablespace_name, Sum(bytes)/1024/1024 AS LIBRE from dba_free_space group by tablespace_name) c,
    (select tablespace_name, SUM(EXTENTS) As EXT, Sum(INITIAL_EXTENT)/1024/1024 As EXT_INITIAL, Sum(NEXT_EXTENT)/1024/1024 As NEXT_EXT, Sum(MIN_EXTENTS)/1024/1024 As EXT_MIN, Sum(MAX_EXTENTS)/1024/1024 As EXT_MAX from DBA_SEGMENTS GROUP BY tablespace_name) d
    WHERE B.tablespace_Name = A.tablespace_Name
    AND C.Tablespace_Name = B.Tablespace_Name
    AND D.Tablespace_Name = C.Tablespace_Name;
    En dépit des mes lectures sur l'extent, je n'arrive pas à comprendre et distinguer les différences entre les différentes colonnes en rapport avec l'EXTEND. Particulièrement, le NEXT_EXTENT. Et ne sais pas quelle colonne utiliser pour mon besoin.

    Merci d'avance.
    mamid

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

    Informations professionnelles :
    Activité : DBA Oracle freelance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 670
    Points : 945
    Points
    945
    Par défaut
    Bonjour,
    perso, pour le suivi des TS j'utilise les requêtes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    col Size for 999,999.90
    col Max  for 999,999.90
    col Used for 999,999.90
    select substr(rtime,1,10),v.NAME,min(TABLESPACE_SIZE*8/1024) "Size",min(TABLESPACE_MAXSIZE*8/1024) "Max",min(TABLESPACE_USEDSIZE*8/1024) "Used"
    from DBA_HIST_TBSPC_SPACE_USAGE d,
         V_$TABLESPACE v
    where d.TABLESPACE_ID=v.TS#
    and v.NAME='&tablespace_name'
    group by substr(rtime,1,10),v.NAME
    order by 1,2;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    set numformat 999,999.90
    SELECT sn.SNAP_ID, to_char(end_interval_time,'DD/MM/YY HH24:MI') mydate,
           sum(a.SPACE_USED_TOTAL)/1024/1024/1024 "Space used Total Go", sum(a.SPACE_USED_DELTA)/1024/1024/1024 "Space used delta Go",
           sum(a.SPACE_ALLOCATED_TOTAL)/1024/1024/1024 "Space allocated Total Go", sum(a.SPACE_ALLOCATED_DELTA)/1024/1024/1024 "Space allocated delta Go"
    FROM dba_hist_seg_stat a,
      dba_objects b,
      dba_hist_snapshot sn
    WHERE a.obj# = b.OBJECT_ID
    AND sn.SNAP_ID = a.SNAP_ID
    AND sn.INSTANCE_NUMBER=a.INSTANCE_NUMBER
    AND b.OWNER ='&schema'
    group by sn.SNAP_ID, to_char(end_interval_time,'DD/MM/YY HH24:MI')
    ORDER BY 1;
    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
     
    col Total_Mo for 999,999.90
    col Total_Mo_Max_size for 999,999.90 heading 'Total Mo|Max Size'
    col Total_Mo_Actual_size for 999,999.90 heading 'Total Mo|Actual Size'
    col Total_Mo for 999,999.90
    col Free_Mo  for 999,999.90
    col Used_Mo  for 999,999.90
    col Used_%_with_maxsize heading 'Used %|with maxsize'
    col Used_%_without_maxsize heading 'Used %|without  maxsize'
     
    SELECT T.tablespace_name,
       TS."Total_b"/1048576 AS "Total_Mo_Max_size",
       TS."Total_c"/1048576 AS "Total_Mo_Actual_size",
       NVL(FS."Free_b"/1048576, 0) AS "Free_Mo",
       NVL(US."Used_b"/1048576, 0) AS "Used_Mo",
       NVL(Round( 100 * US."Used_b" / TS."Total_b", 2 ), 0) AS "Used_%_with_maxsize",
       NVL(Round( 100 * US."Used_b" / TS."Total_c", 2 ), 0) AS "Used_%_without_maxsize"
    FROM dba_tablespaces T,
       (SELECT tablespace_name,
          Round(Sum(Bytes), 0) AS "Total_c",
          Round(Sum(decode(MaxBytes,0,bytes,maxbytes)), 0) AS "Total_b"
        FROM dba_data_files
        GROUP BY tablespace_name) TS,
       (SELECT tablespace_name,
          Round(Sum(Bytes), 0) AS "Free_b"
        FROM dba_free_space
        GROUP BY tablespace_name) FS,
       (SELECT tablespace_name,
          Round(Sum(Bytes), 0) AS "Used_b"
        FROM dba_segments
        GROUP BY tablespace_name) US
    WHERE T.tablespace_name = TS.tablespace_name
    AND T.tablespace_name = FS.tablespace_name (+)
    AND T.tablespace_name = US.tablespace_name (+)
    order by 1;

  3. #3
    Membre régulier
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    163
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 163
    Points : 76
    Points
    76
    Par défaut
    Bonjour 13thFloor,

    Merci pour votre réponse. Dans votre suivi, vous n'utilisez pas l'extent. Vous ne surveillez pas la taille de base dans le disque.
    Pour moi, c'est un peu nécessaire puisque mes bases sont en auto-extent.
    mamid

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

    Informations professionnelles :
    Activité : DBA Oracle freelance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 670
    Points : 945
    Points
    945
    Par défaut
    Les extents ne m'intéressent pas. J'ai la taille allouée et la max allouable, ça me suffit. Il faut ensuite croiser avec un bon vieux df.
    J'utilise de temps en temps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select substr(file_name,1,20),tablespace_name,sum(bytes)/1024/1024/1024 "size Go",
           sum(maxbytes)/1024/1024/1024 "Max Go"
      from dba_data_files
    group by  substr(file_name,1,20),tablespace_name
     order by 1;
     
    select substr(file_name,1,20),sum(bytes)/1024/1024/1024 "size Go",
           sum(maxbytes)/1024/1024/1024 "Max Go"
      from dba_data_files
    group by substr(file_name,1,20)
     order by 1;
    Pour vérifier ce qui est alloué/allouable par file-system.
    Le substr(...20) est à adapter en fonction de la longueur du point de montage des FS.

  5. #5
    Membre régulier
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    163
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 163
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par 13thFloor Voir le message
    Les extents ne m'intéressent pas. J'ai la taille allouée et la max allouable, ça me suffit. Il faut ensuite croiser avec un bon vieux df.
    J'utilise de temps en temps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select substr(file_name,1,20),tablespace_name,sum(bytes)/1024/1024/1024 "size Go",
           sum(maxbytes)/1024/1024/1024 "Max Go"
      from dba_data_files
    group by  substr(file_name,1,20),tablespace_name
     order by 1;
     
    select substr(file_name,1,20),sum(bytes)/1024/1024/1024 "size Go",
           sum(maxbytes)/1024/1024/1024 "Max Go"
      from dba_data_files
    group by substr(file_name,1,20)
     order by 1;
    Pour vérifier ce qui est alloué/allouable par file-system.
    Le substr(...20) est à adapter en fonction de la longueur du point de montage des FS.
    Je peux me contenter de cela.
    Je vous remercie.
    mamid

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/12/2007, 15h35
  2. Oracle 10G et tablespace
    Par Bruno2r dans le forum SQL
    Réponses: 42
    Dernier message: 14/11/2007, 14h46
  3. Oracle 10g et tablespace
    Par alfdev dans le forum Oracle
    Réponses: 3
    Dernier message: 21/09/2006, 17h21
  4. Etat et taille du tablespace UNDO sous Oracle 10g
    Par couak dans le forum Oracle
    Réponses: 2
    Dernier message: 21/06/2006, 13h37
  5. Oracle 10g R2 : Création tablespace de 150Gb
    Par salita dans le forum Oracle
    Réponses: 3
    Dernier message: 07/06/2006, 08h55

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