Ich habe eine Solaris 8-Box, die meldet, dass ein Dateisystem voll ist:
db% tail -2 /var/adm/messages
Nov 22 08:32:27 db ufs: [ID 845546 kern.notice] NOTICE: alloc: /u03: file system full
Nov 22 08:34:51 db last message repeated 12 times
Aber df sagt, dass noch genügend freie Blöcke vorhanden sind und auch noch nicht genügend freie Inodes:
db% df -k /u03
Filesystem kbytes used avail capacity Mounted on
/dev/md/dsk/d6 282330903 254957403 24550191 92% /u03
db% df -o i /u03
Filesystem iused ifree %iused Mounted on
/dev/md/dsk/d6 29663278 4230866 88% /u03
Ich dachte also, dass vielleicht ein Prozess offene Dateideskriptoren für über 20 GB gelöschte Dateien hält. Aber lsof meldet beim Sortieren nach Größe nichts über 2 GB, und das ist eine legitime Datei:
db% lsof /u03 | sort -n +6
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
[...]
oracle 1257 oracle 278u VREG 85,6 2097160192 9685782 /u03/oradata/(redacted)/data/foo_tab_14.dbf
db%
Ich würde mich über alle Hinweise auf andere Ressourcen freuen, abgesehen von freien Blöcken und Inodes, deren Erschöpfung ein Dateisystem füllen kann, oder über eine andere Möglichkeit, verwendete Blöcke/Inodes zu „verstecken“, oder über jede andere Idee, die jemand hat. Das Neustarten dieser Box oder das Herunterfahren von Oracle ist keine gültige Untersuchungsoption.
Bearbeiten: Khaled, das konnte ich damals nicht. Ich kann die Ausgabe nicht posten, weil einer der DBAs etwa 4 GB freigegeben hat, was bedeutet, dass die Maschine weiter funktionieren kann, und wenn ich sie testweise noch einmal „auffülle“, wird es kaputtgehen. Aber das ist das zweite Mal in 24 Stunden, dass sie zu etwa 92 % voll und „aufgefüllt“ ist (d. h., es können keine neuen Dateien erstellt werden und es /var/adm/messages
wird „Dateisystem voll“ gemeldet), und ja, wenn das passiert, wird die Erstellung oder Erweiterung von Dateien auf diesem FS definitiv unterbrochen.
Antwort1
Überprüfen Sie den nbfree
Wert mit
fstyp -v | head -18
Wenn das einen niedrigen Wert anzeigt,diesen Blog-Beitrag habe ich gefundenkönnte dir helfen. Ich zitiere den Anfang des Beitrags:
Bei der Arbeit haben wir ein Solaris 8 mit einem UFS, das der Anwendung mitteilte, dass es keine neuen Dateien erstellen kann. Der df-Befehl zeigte viele freie Inodes an, und im FS war auch genügend freier Speicherplatz vorhanden. Der Grund für den Fehler bei der Anwendung war, dass zwar noch viele Fragmente frei waren, aber kein freier Block mehr verfügbar war. Sie können keine neue Datei nur mit Fragmenten erstellen, Sie müssen für jede neue Datei mindestens einen freien Block haben.
Um die Anzahl der freien Blöcke eines UFS zu sehen kann man „fstyp -v | head -18“ aufrufen und sich den Wert hinter „nbfree“ anschauen.