Veeam Backup & Replication im Enterprise Umfeld hatte ich schon ein paar Mal erwähnt. Nach wie vor echt klasse diese Software. Kürzlich war ich auf aber eine Problematik gestoßen, die mich einige Stunden Suche gekostet haben.
Was war passiert? Auf sämtlichen virtuellen Maschinen, die eine oder mehrere Microsoft SQL Server Instanzen halten, erfolgt eine periodische Sicherung der Transaktionsprotokolle. Dies klappt normalerweise auf Anhieb, wenn die entsprechenden Einstellungen gesetzt sind:
- Wiederherstellungsmodell (Recovery Model) in den Eigenschaften der Datenbank auf „Vollständig“ („Full“) setzen
- Im Veeam B&R Job die Option „Enable application-aware processing“ aktivieren und entsprechenden SQL-Einstellungen setzen
Dennoch wurde die Datenbank auf einem Server nicht korrekt gesichert. Folglich wuchs das Transaktionsprotokoll (LDF-Datei) massiv an, erreichte einige Gigabyte und ließ die Partition langsam, aber sicher volllaufen.
Hätte ich das Protokoll vom Veeam etwas aufmerksamer gelesen, wäre ich vielleicht sogar schneller auf die Ursache gestoßen 🙄 Dennoch, eine fehlgeschlagene Sicherung wurde nie gemeldet, sodass ich mir zunächst nichts dabei gedacht habe. Bis ich dann auf folgende Zeile aufmerksam wurde: „Skipping AutoClose databases: XXXX“
Was hat es damit auf sich? Ich muss zugeben, AutoClose ist eine Option, auf die ich vorher nicht sonderlich geachtet habe. Standardmäßig ist diese Option bei einer SQL-Datenbank eigentlich deaktiviert. AutoClose ist ein Überbleibsel aus grauer Vorzeit und von Microsoft wird schon seit Jahren die Deaktivierung empfohlen.
Normalerweise soll die Einstellung sicherstellen, dass der SQL Server sämtliche beanspruchten Ressourcen (Speicher, CPU, I/O etc.) wieder freigibt, sobald die letzte User-Session getrennt worden ist. Nun kann es aber passieren, dass sich der letzte User für ein paar Sekunden (oder Zehntel Sekunden) abmeldet, dann aber sofort wieder anmeldet. Dennoch werden die Ressourcen freigegeben und sofort wieder beansprucht. Folglich kann dieser vermeintlich gut gemeinte Vorgang das System deutlich verlangsamen. Weitere Informationen zu der AutoClose-Funktion könnt ihr bei SQL Server Pro und Microsoft nachlesen.
Genau an dieser Einstellung stört sich auch Veeam und überspringt entsprechende Datenbanken. Nach Rücksprache mit dem Software-Hersteller, welcher die Datenbank für seine Software verwendet, bestand aber kein Grund, diese Option aufrecht zu erhalten. Folglich konnte ich AutoClose wieder auf False setzen und Veeam sichert nun ohne Probleme die Datenbank 🙂