2009-03-06 4 views
4

Ich habe eine Anwendung getestet und als ich mich in der Enterprise-Konsole anmeldete, bemerkte ich, dass mein UNDOTBS Tabellenbereich voll ist.UNDOTBS Tablespace ist voll was nun?

Ich weiß, dass der Tabellenbereich UNDOTBS verwendet wird, um eine Kopie der Daten zu behalten, die vor dem Start einer Transaktion vorhanden sind. Ich dachte, dass diese Daten transient sind und ablaufen, sobald eine Transaktion abgeschlossen ist/Rollback?

Löschen Sie einfach den Tabellenbereich, erweitern Sie ihn, oder gibt es eine Möglichkeit, ihn zu löschen?

UPDATE: Die DB hatte keine Aktivität über Nacht. Kann jemand erklären, warum Orakel diese Daten noch benötigt?

Antwort

14

Lassen Sie es. So sollte es sein. Oracle wird es bei Bedarf verwalten und erneut verwenden.

Antwort zu aktualisieren:

DIe UNDOTBS verhält sich nicht wie andere Tablespaces ... die Daten dort links in und als nicht verwendet markiert, wenn es nicht mehr benötigt wird, anstatt explizit gelöscht.

Sie müssen in der Regel nicht darum kümmern, wenn Sie ziemlich beträchtliche DML tun und beginnen Fehler bekommen, zu welcher Zeit Sie auf die Erhöhung der UNDOTBS Größe aussehen kann, Senken Sie Ihre Undo Retention usw.

+0

Und es ist das gleiche mit temporären Tablespaces, wo Segmente zugeordnet und dann zwischen verschiedenen Sitzungen wiederverwendet werden. –

1

Have Schauen Sie sich Ihre Aufbewahrungsfrist für Rückgängig an - stellen Sie sicher, dass sie nicht zu groß ist. Andernfalls speichert Oracle die Daten so lange, bis der Tabellenbereich voll ist. Ein angemessener Zeitraum hängt von Ihrer App ab

2

Außerdem was cagcowboy bereits gepostet hat, wenn Ihr Undo ständig voll ist und Sie Fehler bekommen. Stellen Sie sicher, dass Ihre Rückgängig Größe korrekt ist und dass die Rückgängig-Aufbewahrung auf einen Wert festgelegt wird, der für die Größe geeignet ist. Wenn die Zurückbehaltungsspeicherung auf "Hoch" gesetzt ist, benötigen Sie mehr Speicherplatz für das Rückgängigmachen, um Informationen für das in der Aufbewahrungsfrist festgelegte Zeitlimit beizubehalten. Nur die aufgrund der Rückgängig-Aufbewahrung ausgealterte Transaktion wird bereinigt und gelöscht.