the-brain-one
Goto Top

Oracle Datenbankfile viel zu groß

Hallo,

ich habe bei einem Kunden folgendes Problem:

Es gibt dort einen Oracle 8i-Server. Darauf greifen wir mit einem Toad 8 zu. Das Datenbankfile ist ca. 1,5 GB groß. Ziehe ich nun einen Dump dieser Instanz ist dieser gepackt nur noch ca. 250MB groß. Es gibt dort auch eine Testinstanz. Diese Instanz unterscheidet sich im wesentlichen nicht zu der Produktivinstanz. Diese Instanz ist allerdings nur ca. 500 MB groß. Eigentlich kann es nicht sein, dass das File 1,5 GB groß ist.

Vermutlich steht irgendwo, dass er sich den Speicherplatz reservieren soll. Meine Frage ist nun, ob man das irgendwo ändern kann. Eine Rebuild Table hab ich bereits ausprobiert. Das erbrachte aber nicht den gewünschten Erfolg.

Hat vielleicht jemand eine Idee zu dem Thema?

Vielen Dank schon mal im Vorraus

Content-Key: 74686

Url: https://administrator.de/contentid/74686

Printed on: April 26, 2024 at 18:04 o'clock

Member: Supaman
Supaman Nov 28, 2007 at 10:23:53 (UTC)
Goto Top
bei datenbanken ist es oft so, das datensätze nicht durch überschreiben gelöscht werden, sondern der datensatz wird als ungültig/gelöscht markiert und am ende neu drangehängt. bei änderungen das gleiche. dadurch wächst die datenbank ständig.

man kann dann per script/tool etc die datenbank bereinigen oder exportieren und neu aufbauen. wie das bei oracle genau funktioniert weis ich leider nicht.
Member: the-brain-one
the-brain-one Nov 28, 2007 at 10:30:00 (UTC)
Goto Top
Danke für die schnelle Antwort.
Die Tabellen, die für die Größe verantwortlich sind, hab ich auch schon ausmachen können. Lösche ich jetzt einfach mal deren Inhalt, mache dannach ein Rebuild-Table, ziehe danach einen Dump und spielen diesen wieder ein, hab ich wieder genau die gleiche größe. Irgendwo scheint drinn zu stehen, dass er sich diese 1,5 GB reservieren soll. Die Tabellen ansich sind nach dem Rebuild Table auch wieder sehr klein (24kb hab ich mal eingestellt). Aber da scheine ich irgendwie an der falschen Stelle zu suchen.
Member: Kovold
Kovold Nov 28, 2007 at 15:54:06 (UTC)
Goto Top
Du meinst sicherlich die *.dbf Datei (1.5GB). Die representiert entweder einen speziellen Tablespace oder den allgemeinen. Mann den tablespace normalerweiser reduzieren, wenn dieser nicht gebraucht wird. Bei Oracle 9 und 10 geht das mit den entsprechenden Management Tools. Bei Oracle 8 bin ich mir nicht sicher - duefte sich aber sicherlich per SQL machen lassen. Es kann jedoch sein das das ganze nicht zum Erfolg fuehrt, da z.B. die undo, temp tabellen im selben tablespace liegen.

Gruss

-.> Rico
Member: Biber
Biber Nov 28, 2007 at 17:13:46 (UTC)
Goto Top
Moin the-brain-one,

ich weiß nicht, ich weiß nicht... ich denke ähnlich wie kovold, Du bist irgendwo ein bisschen auf dem falschen Dampfer.

Die Größe des datafiles (das, was standardmäßig die Endung ".dbf" hat, wenn Du es nicht änderst, ist die INITIALgröße der Datenbank. Diese kann (und sollte!!!) natürlich größer sein als der tatsächliche Dateninhalt/Füllungsgrad.
Weil - eskönnte sonst evtl auch diese kleinen friedlichen Blonden aus der Lohnbuchhaltung irgendwie ein bisschen fuchtig machen, wenn sie eben mal eine Stundenbuchung vor dem Nachhausegehen eintippseln wollte und es zwei Minuten dauert, bis dieser Satz INSERTed werden kann.
Weil die Datenbank erstmal aufgeblasen werden muss.
<Off Topic>
wieso ist denn "auf-ge-bla-sen" ein Äbäh-Wort?? @scholl. Was hast Du denn für Fantasien??
</OffTopic>
Also: die Initialgröße siehst Du, wenn Du den TOAD und die Rechte hast
  • im Schema-Browser: "Tablespaces" ->"Properties" oder als DDL unter "Scripts", je nachdem,was Dir übersichtlicher und lesbarer erscheint
  • in epischer Breite im "Database Browser" ...alle Reiter, speziell "Space Usage".

Dass die Produktive Datenbank 3x größer als die Test/Entwicklungsinstanz angelegt ist ist richtig, gut und vollkommen normal.

Wenn ihr Probleme damit habt, dass auf dem Unternehmens-SQLServer ein Datenfile 1,5 Gbyte groß ist --> such Dir schnell eine andere Firma.
Wenn jemand Probleme damit hat, dieses *dbf -File direkt irgendwohin zu kopieren (also keinen Dump/Export macht, sondern eine einfache File-Kopie einer Oracle-DB-Instanz--> schraub ihm/ihr die Finger ab.

Grüße
Biber
Member: the-brain-one
the-brain-one Nov 29, 2007 at 10:32:04 (UTC)
Goto Top
Danke für die Tips,

ich hab jetzt mal reingeschaut. Angeblich ist die Datenbank zu 99 % voll?!? Das könnte ich ja noch verstehen, wenn von dem riesen Teil dann auch wirklich nur 1/3 belegt ist. Des Weiteren ist die Datenbank grottenlangsam. Wenn ich ein paar Tabellen (die großen) leer mach und, wie schon beschrieben, einen Dump ziehe und diesen wieder einspiele, bekomme ich wieder das Gleiche bzw. das dbf-file wird noch größer.

Mmmmhhh????
Member: Biber
Biber Nov 29, 2007 at 11:56:55 (UTC)
Goto Top
Moin the-brain-one,

...einen Dump ziehe und diesen wieder einspiele, bekomme ich wieder das Gleiche bzw. das dbf-file wird noch größer.

Das deutet IMHO relativ eindeutig hin, dass die Log/Protokolloptionen ein bisschen zu geschwätzig eingestellt sind.
  • Wie groß sind denn die Log/Tracefiles und was wird alles für dokumentierenswert gehalten?
  • Wie groß ist der TEMP-Tablespace in Prozent des Gesamtkuchens?
  • Bist Du mal im TOAD unter "Server Statistics" auf die Suche gegangen? Wo sind denn da die roten Punkte?
  • Bist Du sicher, dass der fließende Übergang von "dbf-File zu groß" nach "Datenbank grottenlangsam" auch richtig ist? Wenn der Anfang der Aktion eine Recherche "wieso ist das Teil so träge?" war, sollten wir nicht unbedingt bei der absoluten Filegröße der DB anfangen.

Grüße
Biber