2009-03-06 3 views
4

J'ai été tester la charge d'une application et quand je me suis connecté à la console d'entreprise, j'ai remarqué que mon espace table UNDOTBS est plein.UNDOTBS Tablespace est plein quoi maintenant?

Je sais que l'espace table UNDOTBS est utilisé pour conserver une copie des données qui existent avant le début d'une transaction. Je pensais que ces données seraient transitoires et expireraient une fois qu'une transaction se termine/recule? Est-ce que je supprime simplement l'espace table, le développe ou y a-t-il un moyen de le purger?

MISE À JOUR: Le db n'a eu aucune activité pendant la nuit. Quelqu'un peut-il expliquer pourquoi Oracle a encore besoin de ces données?

Répondre

14

Laissez-le. Voilà comment il est censé être. Oracle va le gérer et le réutiliser si nécessaire.

Réponse à jour:

THe UNDOTBS ne se comporte pas comme les autres ... tablespaces les données sont laissées là-bas et marqué utilisé quand il est plus nécessaire plutôt que d'être explicitement supprimé.

En général, vous ne devez pas vous inquiéter à ce sujet à moins que vous faites DML assez important et commencer à obtenir des erreurs, au cours de laquelle vous pouvez regarder augmenter la taille UNDOTBS, réduire votre rétention d'undo etc.

+0

Et c'est la même chose avec les tablespaces temporaires, où les segments sont alloués puis réutilisés entre différentes sessions. –

1

Have un coup d'oeil à votre période de rétention d'annulation - assurez-vous qu'il n'est pas trop grand, sinon oracle gardera juste les données de mise en mémoire tampon jusqu'à ce que l'espace de table se remplisse. Une période appropriée dépendra de votre application

2

Outre ce que cagcowboy a déjà posté, si votre annulation est constamment pleine et vous obtenez des erreurs. Assurez-vous que votre annulation est correctement dimensionnée et que la rétention d'annulation est définie sur une valeur appropriée à la taille. Si la rétention de l'annulation est définie sur élevée, vous aurez besoin de plus d'espace alloué pour annuler pour conserver les informations pour la limite de temps spécifiée dans la rétention d'annulation. Seule une transaction hors service basée sur la rétention d'annulation sera nettoyée et supprimée.