MODIFY FILE failed. Size is greater than MAXSIZE. (Microsoft SQL Server, Error: 5040)

6. Juni 2016 · Anwendungen · andreas · Kein Kommentar

Sofern versucht wird, in den Datenbank-Eigenschaften die maximale Dateigröße des Transaktionslogs auf einen Wert kleiner als die tatsächliche Dateigröße zu setzen wird dies vom SQL-Server mit einem

MODIFY FILE failed. Size is greater than MAXSIZE.
(Microsoft SQL Server, Error: 5040)

quittiert. Erste Suchergebnisse führen in der Regel zu Lösungsvorschlägen unter Verwendung des Befehls “backup log [DATENBANKNAME] with truncate_only”, welche von neueren Versionen des Microsoft SQL-Servers (2008 und später) mit der Fehlermeldung “’truncate_only’ is not a recognized BACKUP option.” quittiert werden.

Stattdessen muss zur Anpassung der Dateigröße das Recovery-Modell geändert werden. Hierzu wird zuerst das aktuell verwendete Modell ermittelt

SELECT name, recovery_model_desc FROM sys.databases
 GO

dann wird im nächsten Schritt das Modell auf “Simple” geändert:

ALTER DATABASE [DATENBANKNAME]
 SET RECOVERY SIMPLE;
 GO

Nach Ermittlung der anzupassenden Datei

SELECT name ,size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB
 FROM sys.database_files;

kann dann mittels

DBCC SHRINKFILE ('LOGDATEINAME', GROESSEINMB);
 GO

die Datei auf den gewünschten Wert verkleinert werden.

Als letzter Schritt sollte dann das Recovery-Modell wieder auf den Ausgangswert (i.d.R ‘FULL’) zurückgesetzt werden :

ALTER DATABASE [DATENBANKNAME]
 SET RECOVERY FULL;
 GO