Czy SQL Server kiedykolwiek usuwa stare pliki dziennika błędów?

12

Wiem, że mogę z łatwością cyklicznie wyświetlać bieżący dziennik błędów, uruchamiając sp_cycle_errorlog, ale zastanawiam się, czy SQL Server kiedykolwiek usunie stare / zarchiwizowane pliki dziennika błędów. Nigdzie nie mogę znaleźć odpowiedzi na to pytanie ...

Tuseau
źródło

Odpowiedzi:

19

W SQL Server Management Studio, w Object Explorer> Managementistnieje ustawienie, jeśli klikniesz prawym przyciskiem myszy SQL Server Logsi wybierzesz Configure. Możesz określić, ile plików dziennika chcesz zachować. Gdy osiągnie ten numer, zacznie usuwać stare.

wprowadź opis zdjęcia tutaj

Kenneth Fisher
źródło
8

Zrestartuj SQL Server 7 razy. Zobaczysz, że nadal masz tylko 7 ERRORLOG*plików (w zależności od wersji). To jest bieżący plik dziennika i 6 najnowszych plików dziennika.

Uwaga: Może zajść potrzeba zmiany 7 na inną, w przypadku zmiany liczby dzienników błędów przechowywanych przez SQL Server . Wydaje mi się, że maksimum wynosi 99. Ale bez względu na to, jakie jest twoje obecne ustawienie, w końcu przetworzy i wyczyści stare pliki.

Przetestowałem to i, jeśli odznaczysz pole z napisem:

☐ Ogranicz liczbę plików dziennika błędów, zanim zostaną one ponownie przetworzone

... co oznacza (przynajmniej dla mnie) zachowanie wszystkich plików dziennika , nadal zachowuje tylko bieżący plik dziennika błędów plus 6 kopii zapasowych . Jeśli zmieniłeś klucz rejestru wskazany przez @RLF , ustawienie klucza rejestru zastępuje (tak jakbyś nie odznaczył pola), ale nadal będziesz ograniczony do pewnej liczby plików dziennika błędów kopii zapasowej między 6 i 99.

Krótka odpowiedź brzmi: tak, we wszystkich przypadkach SQL Server ostatecznie usunie stare pliki dziennika błędów.

Aaron Bertrand
źródło
7

SQL Server automatycznie przetwarza dzienniki błędów, o ile skonfigurujesz je poprawnie.

Zobacz http://msdn.microsoft.com/en-us/library/ms177285.aspx . Skopiowałem najważniejsze punkty poniżej:

W Object Explorer rozwiń wystąpienie SQL Server, rozwiń Zarządzanie, kliknij prawym przyciskiem myszy Dzienniki SQL Server, a następnie kliknij Konfiguruj.

W oknie dialogowym Konfiguruj dzienniki błędów programu SQL Server wybierz jedną z następujących opcji.

  • Ogranicz liczbę plików dziennika błędów, zanim zostaną one ponownie przetworzone

    • Zaznacz, aby ograniczyć liczbę dzienników błędów utworzonych przed ich przetworzeniem. Nowy dziennik błędów jest tworzony przy każdym uruchomieniu instancji SQL Server. SQL Server zachowuje kopie zapasowe poprzednich sześciu dzienników, chyba że zaznaczysz tę opcję i określisz inną maksymalną liczbę plików dziennika błędów poniżej.
  • Maksymalna liczba plików dziennika błędów

    • Określ maksymalną liczbę plików dziennika błędów utworzonych przed ich recyklingiem. Wartość domyślna to 6, czyli liczba poprzednich dzienników kopii zapasowych, które SQL Server przechowuje przed ich ponownym przetworzeniem.
Max Vernon
źródło
2

Tak, istnieje konfiguracja liczby dzienników błędów do utrzymania.

Można go znaleźć w kluczu rejestru pod adresem:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\NumErrorLogs

Może być konieczne dodanie tego klucza.

RLF
źródło
1
Pamiętaj, że musisz zastąpić pierwsze wystąpienie MSSQLServeridentyfikatorem wystąpienia, jeśli jest to wystąpienie nazwane (np. MSSQL12.SQL2014Dla mojego wystąpienia o nazwie 2014 o nazwie SQL2014).
Aaron Bertrand