Zum Inhalt springen

[Oracle] Database File verkleinern


Scratch

Empfohlene Beiträge

Hi,

ich habe hier ein Problem mit einem dbf das mir etwas zu groß geworden ist, um genau zu sein ist es exakt 32 GB groß :-)

Ich möchte es wieder verkleinern erhalte aber jedes mal den Fehler:

ORA-03297: file contains used data beyond requested RESIZE value

Laut EM sind von diesen 32 GB gerade mal 8 GB belegt. Wie kann ich dieses Problem den lösen?

Grüße

Scratch

Link zu diesem Kommentar
Auf anderen Seiten teilen

das liegt wohl daran, dass die sogenannte "high water mark" über der bei ALTER ... RESIZE angegeben grösse liegt. ein blick auf die dba_extents und dort die höchste block_id verrät über umwege die maximal einsparbare grösse.

ein beispiel zeigt z.b. http://www.oracleadvice.com/Tips/dfhwm.htm

alles was darunter liegt, müsste IMO exportiert, gedroppt und wieder neu eingespielt werden.

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

nicht zwingend es kann auch sein das am ende des Datenfiles noch ein extent belegt ist auch wenn der größte teil des DBF-Files leer ist, verkleinern geht immer nur bis zum letzten verwendeten Extent.

Welche Oracle Version?

ab 9i könntest du die Objekte in dem Tablespace per "ALTER TABLE name MOVE neuer Tablespace name" in einen neuen TS umziehen und den zu großen alten hinterher löschen.

select für TS angaben

select nvl(b.tablespace_name,

                                     nvl(a.tablespace_name,'UNKNOWN')) "Tablespace",

                                     kbytes_alloc "Allocated MB",

                                     kbytes_alloc-nvl(kbytes_free,0) "Used MB",

                                     nvl(kbytes_free,0) "Free MB",

                                     ((kbytes_alloc-nvl(kbytes_free,0))/kbytes_alloc) "Used",

                                     data_files "Data Files"

                                from ( select sum(bytes)/1024/1024 Kbytes_free,

                                              max(bytes)/1024/1024 largest,

                                              tablespace_name

                                         from sys.dba_free_space

                                        group by tablespace_name ) a,

                                     ( select sum(bytes)/1024/1024 Kbytes_alloc,

                                              tablespace_name,

                                              count(*) data_files

                                         from sys.dba_data_files

                                        group by tablespace_name )b

                               where a.tablespace_name (+) = b.tablespace_name

                               order by 1

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ab Version 10 folgende Möglichkeit:

du kannst alle objekte die in dem Tablespace liegen

shrinken.

Alter ..... shrink space [cascade];

damit rückt der Speicherplatz der Tabellen zusammen und sie rücken wohl auch wieder hintereinander und du kannst dann das file resizen.

Bevor du das machst musst du aber rowmovement anstellen... (und darauf hoffen das in deinen Applikationen sauber gearbeitet wird und keine Schweinereien mit rowids gemacht werden. Die können sich nämlich ändern)....

(alter table ... enable row movement;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...