smguenther
Goto Top

30 GB Unterschied zwischen den Ausgaben von df -h und du -sh

Hallo,

ich habe auf einem Red Hat Enterprise 4 eine Partition in den Ordner /oradata2 gemountet, hier die Ausgabe von mount:

/dev/cciss/c0d1p1 on /oradata2 type ext3 (rw)

Wie unschwer zu erraten ist, läuft auf dieser Partition eine Oracle-DB. Darauf befanden sich zwei 15 GB große Dateien die ich mittels rm entsorgt habe und die auch nicht mehr sichtbar sind.

Wenn ich mir nun die Ausgabe von df -h anschaue

Filesystem Size Used Avail Use% Mounted on
/dev/cciss/c0d1p1 134G 93G 34G 74% /oradata2

und mit der Ausgabe von du vergleiche

[root@db]# du -sh /oradata2/
66G /oradata2/

so ergibt sich ein Unterschied von 93G zu 66G. Ich hatte dieses Problem zuvor schon einmal, nach einem Reboot sind beide Werte identisch.

Nun kann ich aber nicht nach jedem Löschen einer großen Datei den Datenbankserver neu starten.

Kennt jemand eine Möglichkeit, dieses Phänomen zu beseitigen, der Befehl sync hat mir nicht weitergeholfen.

Danke und viele Grüße,

Stefan

Content-ID: 97985

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

Ausgedruckt am: 13.11.2024 um 12:11 Uhr

6890
6890 28.09.2008 um 02:32:03 Uhr
Goto Top
Nabend,

ich bin mal so böse und mach hier einfach ein copy&paste aus ner mailingliste:

- df zählt die i-nodes mit, du nicht. Normal.

- Wenn eine Datei gelöscht wird, die von irgend einem Prozess noch
geöffnet ist, dann nimmt diese Datei Platz ein, der von df, aber
nicht von du gesehen wird. Das geht weg, wenn der Prozess beendet
wird. Das kann normal sein, kann aber auch ein Problem z.B. mit
einem hängenden Prozess sein. <-- hier die lösung deines problems, oracle hat da sicher noch ein filehandle offen.

- Wenn eine nicht-leeres Verzeichnis als Mountpoint benutzt wird, dann
sind die Dateien darin für du und auch sonst unsichtbar, nehmen aber
Platz weg. Das sollte normalerweise nicht sein.

- Wenn man es schafft, ein nicht-leeres Verzeichnis zu löschen (mit
unlink(2) geht das, mit rmdir oder rm -r nicht), dann hat man auch
einen Unterschied zwischen df und du. Da hilft nur fsck.

mfg
linuxtester
linuxtester 04.12.2008 um 20:35:46 Uhr
Goto Top
vermutlich wird noch eine Datei von einem Prozess "festgehalten". hast Du mal mit lsof (List open files) geprüft, welche Datei noch offen ist? Welche Dateien von oracle hast Du gelöscht?
Logfiles vom Listener werden beim löschen z.B. erst nach dem Restart des Listeners freigegeben.

Gruß Olaf