Löscht SQL Server jemals alte Fehlerprotokolldateien?

12

Ich weiß, dass ich das aktuelle Fehlerprotokoll einfach durch Ausführen von sp_cycle_errorlog durchlaufen kann, aber ich frage mich, ob SQL Server jemals die alten / archivierten Fehlerprotokolldateien löschen wird. Kann nirgendwo eine Antwort darauf finden ...

Tuseau
quelle

Antworten:

19

In SQL Server Management Studio, in Object Explorer> Managementgibt es eine Einstellung, wenn Sie mit der rechten Maustaste klicken SQL Server Logsund auswählen Configure. Sie können angeben, wie viele Protokolldateien Sie behalten möchten. Sobald diese Zahl erreicht ist, werden die alten entfernt.

Bildbeschreibung hier eingeben

Kenneth Fisher
quelle
8

Starten Sie SQL Server 7-mal neu. Sie werden sehen, dass Sie nur noch 7 ERRORLOG*Dateien haben (je nach Version). Dies ist die aktuelle Protokolldatei und die 6 neuesten Protokolldateien.

Hinweis: Möglicherweise müssen Sie 7 in etwas anderes ändern, falls Sie die Anzahl der von SQL Server gespeicherten Fehlerprotokolle geändert haben . Ich glaube, der Maximalwert liegt bei 99. Unabhängig von Ihrer aktuellen Einstellung werden jedoch möglicherweise alte Dateien recycelt und gelöscht.

Ich habe dies getestet und wenn Sie das Kontrollkästchen deaktivieren, heißt es:

☐ Begrenzen Sie die Anzahl der Fehlerprotokolldateien, bevor sie wiederverwendet werden

... was bedeutet (zumindest für mich), dass alle Protokolldateien beibehalten werden , es wird jedoch nur die aktuelle Fehlerprotokolldatei plus 6 Sicherungen beibehalten . Wenn Sie den von @RLF angegebenen Registrierungsschlüssel geändert haben , wird die Einstellung des Registrierungsschlüssels außer Kraft gesetzt (als hätten Sie das Kontrollkästchen nicht deaktiviert), Sie sind jedoch weiterhin auf eine bestimmte Anzahl von Sicherungsfehlerprotokolldateien zwischen 6 beschränkt und 99.

Die kurze Antwort lautet also: Ja, in allen Fällen kann SQL Server eventuell alte Fehlerprotokolldateien löschen.

Aaron Bertrand
quelle
7

SQL Server recycelt Fehlerprotokolle automatisch, solange Sie es richtig konfigurieren.

Siehe http://msdn.microsoft.com/en-us/library/ms177285.aspx . Ich habe die wichtigsten Punkte unten kopiert:

Erweitern Sie im Objekt-Explorer die Instanz von SQL Server, erweitern Sie Verwaltung, klicken Sie mit der rechten Maustaste auf SQL Server-Protokolle, und klicken Sie dann auf Konfigurieren.

Wählen Sie im Dialogfeld SQL Server-Fehlerprotokolle konfigurieren eine der folgenden Optionen aus.

  • Begrenzen Sie die Anzahl der Fehlerprotokolldateien, bevor sie wiederverwendet werden

    • Aktivieren Sie diese Option, um die Anzahl der Fehlerprotokolle zu begrenzen, die vor dem Recycling erstellt werden. Jedes Mal, wenn eine Instanz von SQL Server gestartet wird, wird ein neues Fehlerprotokoll erstellt. SQL Server behält Sicherungen der vorherigen sechs Protokolle bei, sofern Sie diese Option nicht aktivieren und eine andere maximale Anzahl von Fehlerprotokolldateien angeben.
  • Maximale Anzahl Fehlerprotokolldateien

    • Geben Sie die maximale Anzahl der Fehlerprotokolldateien an, die vor dem Recycling erstellt wurden. Der Standardwert ist 6. Dies ist die Anzahl der vorherigen Sicherungsprotokolle, die SQL Server vor dem Recycling aufbewahrt.
Max Vernon
quelle
2

Ja, es gibt eine Konfiguration für die Anzahl der zu wartenden Fehlerprotokolle.

Es befindet sich im Registrierungsschlüssel unter:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\NumErrorLogs

Möglicherweise müssen Sie diesen Schlüssel hinzufügen.

RLF
quelle
1
Beachten Sie, dass Sie die erste Instanz von MSSQLServerdurch Ihre Instanz-ID ersetzen müssen, wenn es sich um eine benannte Instanz handelt (z. B. MSSQL12.SQL2014für meine 2014 benannte benannte Instanz SQL2014).
Aaron Bertrand