Fragensteller
Fehler: „I/O Error: There is not enough space on the disk”, obwohl ausreichend Speicher zur Verfügung steht

Frage
-
Hallo zusammen,
bei einem unserer Kunden haben wir seit Kurzem ein seltsames Problem.
Im Rahmen eines Import Prozesses, werden aus einer Tabelle Daten extrahiert. Es handelt sich um 10.859.192 Datensätze. Diese sollen in eine andere Tabelle in der gleichen Datenbank eingefügt werden.
Dabei erscheint der Fehler: „I/O Error: There is not enough space on the disk”. Der Fehler erscheint schon beim Lesen der Datensätze. Es wird nicht ein Datensatz gelesen. Nach 43 sec. erscheint dann der Fehler.
Auf der relevanten Partition des SQL – Servers sind ca. 170 GB freier Speicherplatz vorhanden. Die Einstellungen und Parameter im SQL – Server Management Studio wurden überprüft. Hier wurden testweise einige Parameter verändert. Unter anderem wurden verschiedene Werte für das „File Growth“ getestet, als auch verschiedene Einstellungen hinsichtlich der Maximalgröße für Datenbanken und Protokolle. Als Maximalgröße für die Datenbank wurde der Wert „Unlimited“ gewählt. Die Protokollgröße wurde auf 120000 MB begrenzt. Das Protokoll reizt diesen Wert jedoch nicht aus.
Der Fehler tritt leider nur sporadisch auf. Aktuell besteht das Problem nicht. Seit ca. einer Woche laufen die Importe wieder.
Welche Tatsachen können noch dazu führen, dass dieser Fehler ausgegeben wird? Zum Zeitpunkt des Fehlers finden sich weder in den SQL – Server Logs, noch in den Eventlogs des Windows Servers irgendwelche Einträge.
Zu den Spezifikationen des Systems ist folgendes zu sagen:
- Windows Server 2012 Standard
- RAM 48 GB
- 64 BIT OS
- MS SQL – Server Standard 2012 (64 BIT) (Version: 11.0.5343.0)
- Datenbank – Dateien und Logs liegen auf einer Partition. Freier Speicher hier: ca. 170 GB.
- Systempartition: freier Speicher: 19,2 GB
- Größe der relevanten Datenbankdatei: ca. 61 GB
- Es existiert eine Instanz, in welcher mehrere Datenbanken gehalten werden.
Gruß aus Berlin.
Alle Antworten
-
Hi,
liegt die Temp Datenbank evtl. auf einer eigenen Platte/Partition und falls ja, kann es sein, dass die überläuft?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Wie ist die Vergrößerung der Datenbank (mdf + ldf) eingestellt?
Wird sie proaktiv vergrößert, oder muss der Import-Job darauf warten. Könnte es sein, dass hier ein Timeout erreicht wird?
Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu
-
Ist das wirklich die gesamte Fehlermeldung?
Um welche Fehlernummer handelt es sich denn?
Normalerweise sollte die Meldung lauten "Modify file encountered operating system error 112(there is not enough space on the disk) while attempting to expand the physical file. Could not adjust the space allocation for file 'xyz_LOG'. restore database is terminating abnormally."
Andreas Wolter (Blog | Twitter)
MCSM: Microsoft Certified Solutions Master Data Platform/SQL Server 2012
MCM SQL Server 2008
MVP Data Platform
www.SarpedonQualityLab.com | www.SQL-Server-Master-Class.com -
Hallo zusammen und vielen Dank für die Hinweise.
@Stefan Falz: Die TempDB liegt auch auf Partition D, wo 170GB frei sind
@Christoph Muthmann: Autogrowth ist aktiviert: in MB 2000 und unlimited.
@Andreas Wolter: Gestartet wird der Prozess Java-basiert. Das heißt, der Prozess wird per JDBC-Treiber jtds-1.3.1 http://jtds.sourceforge.net/ ausgeführt. Das heißt. wir bekommen eine Java-Fehlermeldung, die leider nicht sehr viel mehr hergibt:
Caused by: java.sql.SQLException: I/O Error: There is not enough space on the disk
at net.sourceforge.jtds.jdbc.TdsCore.executeSQL(TdsCore.java:1093)
at net.sourceforge.jtds.jdbc.TdsCore.submitSQL(TdsCore.java:938)
at net.sourceforge.jtds.jdbc.JtdsConnection.setAutoCommit(JtdsConnection.java:2312)
at com.xxx.lisa.connections.jdbc.ln.defaultimpl.DefaultLNConnection.setAutoCommit(Unknown Source)
at com.xxx.lisa.connections.jdbc.impl.d.setAutoCommit(Unknown Source)
at com.xxx.lisa.connections.jdbc.impl.TableSchemaSupportingJDBCConnection.setAutoCommit(Unknown Source)
- Bearbeitet LNAG Mittwoch, 10. Februar 2016 14:01 Rechtschreibung
-
Hi,
schau mal hier:
Dort wird ein ähnliches Problem beschrieben, was dann allerdings auf das java.io.tmpdir Verzeichnis der JVM zurückzuführen sein soll.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hi,
klingt auf jeden Fall gut, allerdings ist das java.io.tempdir standardmäßig C:\Windows\Temp und dort ist ausreichend Platz. Der Prozess wird nachts vom Applikationsserver via Skript angestoßen, so dass die JVM des App-Servers genutzt wird. Dort schlägt er halt öfter mit der Fehlermeldung fehl. Man kann den Prozess allerdings auch von einem Client anstoßen, dann wird die JVM des Clients genutzt - selbe Phänomen: Genug Space, mal schlägt es fehl, mal funktioniert es..
-
...
@Andreas Wolter: Gestartet wird der Prozess Java-basiert. Das heißt, der Prozess wird per JDBC-Treiber jtds-1.3.1 http://jtds.sourceforge.net/ ausgeführt. Das heißt. wir bekommen eine Java-Fehlermeldung, die leider nicht sehr viel mehr hergibt:
Caused by: java.sql.SQLException: I/O Error: There is not enough space on the disk
...
Hallo
das ist ja unschön, das das Errorhandling den fehler gekürtzt wiedergibt.
Er sollte aber eigentlich dann auch im SQL Server ErrorLog stehen - wenn nicht, könnte man mal mitttracen (nur auf Fehler, SQL-seitig)
Andreas Wolter (Blog | Twitter)
MCSM: Microsoft Certified Solutions Master Data Platform/SQL Server 2012
MCM SQL Server 2008
MVP Data Platform
www.SarpedonQualityLab.com | www.SQL-Server-Master-Class.com -
Da es scheinbar keine SQL Server Fehlermeldung ist:
select * from sys.messages where text like '%There is not enough space on the disk%'
=> kein Ergebnis
wird sich dazu auch nicht im SQL Server ErrorLog finden. Ich tippe da eher auf einen Fehler vom Treiber: https://netbeans.org/bugzilla/show_bug.cgi?id=239142
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort vorgeschlagen Stefan FalzModerator Mittwoch, 8. Juni 2016 10:50