Wenn Oracle so konfiguriert ist, dass die Datendateien nicht automatisch mit dem Datenbestand wachsen, können diese voll laufen und die DB zum Stillstand bringen. Damit dann auch alle Anwendungen, die auf die DB zugreifen wollen… ein Arbeiten ist also nicht mehr möglich.
Nachfolgend eine Info, wie man per SQLPLUS den Status der Datendateien prüft.
Zunächst sollte man folgendes SQL als Textdatei erstellen und auf dem DB-Server ablegen. Im Beispiel heißt die Datei dann SQLPLUS_Auslastung_Datendateien.sql:
SET FEEDBACK OFF SET PAGESIZE 2000 SET LINESIZE 260 COLUMN "Tablespace Name" FORMAT A16 COLUMN "File Name" FORMAT A40 SELECT substr(df.tablespace_name,1,20) "Tablespace Name", substr(df.file_name,1,40) "File Name", round(df.bytes/1024/1024,2) "Size (M)", round(e.used_bytes/1024/1024,2) "Used (M)", round(f.free_bytes/1024/1024,2) "Free (M)", rpad(' '|| rpad ('X', round(e.used_bytes*10/df.bytes,0), 'X') ,11,'-') "Used" FROM DBA_DATA_FILES DF, (SELECT file_id, sum(Decode(bytes,NULL,0,bytes)) used_bytes FROM dba_extents GROUP by file_id) E, (SELECT Max(bytes) free_bytes, file_id FROM dba_free_space GROUP BY file_id) f WHERE e.file_id (+) = df.file_id AND df.file_id = f.file_id (+) ORDER BY df.tablespace_name, df.file_name;
Aufgerufen wird dieses SQL aus SQLPLUS heraus und ein Ergebnis (hier von recht ausgelasteten Dateien) würde dann z.B. so aussehen:
Als ‚Gimmick‘ wurde in der letzten Spalte eine ‚optische Anzeige‘ der Auslastung angefügt. Dadurch kann man sehr schnell erfassen, wie die aktuelle Auslastung aussieht ohne die Werte beachten zu müssen, das kann gerade bei vielen Dateien hilfreich sein.
Je nach Ergebnis kann dann entsprechend gehandelt werden…
Quelle: [1]