Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/12/2010, 11h54   #1
Membre du Club
 
Étudiant
Inscription : mars 2007
Messages : 163
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 163
Points : 42
Points : 42
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 :
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
mamid1706 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 12h36   #2
Membre chevronné
 
Avatar de 13thFloor
 
Homme
DBA Oracle freelance
Inscription : janvier 2005
Messages : 558
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 45
Localisation : France

Informations professionnelles :
Activité : DBA Oracle freelance

Informations forums :
Inscription : janvier 2005
Messages : 558
Points : 718
Points : 718
Bonjour,
perso, pour le suivi des TS j'utilise les requêtes suivantes :
Code :
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 :
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 :
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;
13thFloor est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/12/2010, 13h55   #3
Membre du Club
 
Étudiant
Inscription : mars 2007
Messages : 163
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 163
Points : 42
Points : 42
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
mamid1706 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 14h47   #4
Membre chevronné
 
Avatar de 13thFloor
 
Homme
DBA Oracle freelance
Inscription : janvier 2005
Messages : 558
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 45
Localisation : France

Informations professionnelles :
Activité : DBA Oracle freelance

Informations forums :
Inscription : janvier 2005
Messages : 558
Points : 718
Points : 718
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 :
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.
13thFloor est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/12/2010, 15h01   #5
Membre du Club
 
Étudiant
Inscription : mars 2007
Messages : 163
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 163
Points : 42
Points : 42
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 :
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
mamid1706 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h27.


 
 
 
 
Partenaires

Hébergement Web