Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels 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 19/02/2007, 09h00   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 102
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 102
Points : 14
Points : 14
Par défaut L'undo tablespace reste à 99% d'occupation

Bonjour,
En oracle 9.2.0.5 sur AIX 5.3, nous avons une instance dont l'undo rétention est de 900 s., et systématiquement au moindre traitement il arrive à 99% de remplissage , on a beau agrandir l'espace disque, il réutilise la totalité.
Avez vous une explication qui me permettrait de comprendre pourquoi il ne "shrink" pas.

Merci
debdba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 09h59   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
est-ce qu'il est en autoextend ? Quel est la taille du INITIAL ? Comment vérifies tu le remplissage ? Est-ce que tu as des erreurs de UNDO trop petit ? Quelle est sa taille ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 12h39   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 102
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 102
Points : 14
Points : 14
Oui il est en autoextend, l'initial fait 65536k, le control d'espace se fait par une requete recoupant dba_free_space et dba_datafiles comme suit
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SELECT nvl(b.tablespace_name,                        
             nvl(a.tablespace_name,'UNKOWN')) name,  
       kbytes_alloc kbytes,                          
       kbytes_alloc-nvl(kbytes_free,0) used,         
       nvl(kbytes_free,0) free,                      
       ((kbytes_alloc-nvl(kbytes_free,0))/           
                          kbytes_alloc)*100 pct_used,
       nvl(largest,0) largest                        
FROM ( SELECT sum(bytes)/1024 Kbytes_free,           
              max(bytes)/1024 largest,               
              tablespace_name                        
       FROM  sys.dba_free_space                      
       GROUP BY tablespace_name ) a,                 
     ( SELECT sum(bytes)/1024 Kbytes_alloc,          
              tablespace_name                        
       FROM sys.dba_data_files                       
       GROUP BY tablespace_name )b                   
WHERE a.tablespace_name (+) = b.tablespace_name      
ORDER BY 1 
/
Il n'y a pas d'erreur dans la log, mais il semble ne jamais libérer la place prise et grossit continuellement.
Pour info l'instance n'est jamais arrétée
debdba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 13h51   #4
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Peut-être qu'il faudrait quand même spécifier une taille maximale pour le tablespace. Il y avait un bug à ce sujet en 9.2.0.4 mais corrigé en 9.2.0.5 (Bug 2660394 Auto extensible undo tablespace may grow before reusing expired extents).

Est-ce que vous avez des transactions dont la durée dépasse votre valeur de undo_retention soit 15 minutes ? Que donne la requête suivante qui calcule le nombre de blocs d'undo utilisé par toutes les transactions en cours d'exécution:
Code :
1
2
 
SELECT sum(used_ublk) FROM v$transaction;
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 14h21   #5
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 102
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 102
Points : 14
Points : 14
Désolé, j'avais confondu le niveau de release avec ma base de recette, celle où j'ai le problème est bien en 9.2.0.4, ce qui correspond au bug référencé par Oracle.
Sinon la requette sur v$transaction = 10, je n'ai pas de transaction plus longue que le temps d'undo.

De savoir qu'il s'agit d'un problème connu, car je n'arrivais pas à comprendre pourquoi.
En attendant de migrer vers 9.2.0.5, existe t-il un moyen de forcer la libération des extents ?
Merci
debdba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 14h28   #6
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Modifier le(s) datafile(s) de l'undo tablespace pour les mettre en AUTOEXTEND OFF devrait forcer Oracle à libérer les extents: http://download-uk.oracle.com/docs/c...files.htm#7426
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 14h42   #7
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 102
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 102
Points : 14
Points : 14
Le tablespace UNDO est en autoextent depuis logtemps mais cela n'a rien changé.
Je cherche une commande qui force la libération des extents
debdba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 14h48   #8
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Il faut mettre les datafiles en AUTOEXTEND OFF et non ON pour forcer Oracle à libérer les extents: dans la requête suivante, il faut que la colonne AUTOEXTENSIBLE soit à NO pour les datafiles de l'undo tablespace:

Code :
1
2
3
 
SELECT file_name, tablespace_name, autoextensible 
FROM dba_data_files;
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 15h27   #9
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 102
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 102
Points : 14
Points : 14
Merci de votre aide.
Je vais le repasser en autoextend OFF.
je pensais bien faire en le plaçant à ON, car je craignais le plantage.

Si je suis sur qu'il libère ses vieux extents plutôt que d'aller jusqu'au plantage par manque de place, je suis rassuré....
debdba 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 04h21.


 
 
 
 
Partenaires

Hébergement Web