web-dev-qa-db-fra.com

SQL Server supprime-t-il jamais les anciens fichiers journaux d'erreurs?

Je sais que je peux facilement parcourir le journal des erreurs actuel en exécutant sp_cycle_errorlog, mais je me demande si SQL Server supprimera jamais les fichiers journaux d'erreurs anciens/archivés. Impossible de trouver une réponse à cela n'importe où ...

13
tuseau

Dans SQL Server Management Studio, dans Object Explorer> Management, il y a un paramètre si vous faites un clic droit sur SQL Server Logs et sélectionnez Configure. Vous pouvez spécifier le nombre de fichiers journaux que vous souhaitez conserver. Une fois ce nombre atteint, il commencera à supprimer les anciens.

enter image description here

20
Kenneth Fisher

Redémarrez SQL Server 7 fois. Vous verrez que vous n'avez encore que 7 ERRORLOG* fichiers (selon la version). Il s'agit du fichier journal actuel et des 6 fichiers journaux les plus récents.

Remarque: vous devrez peut-être remplacer 7 par autre chose, dans le cas vous avez modifié le nombre de journaux d'erreurs que SQL Server conserve . Le maximum, je crois, est de 99. Mais quel que soit votre paramètre actuel, il finira par recycler et purger les anciens fichiers.

J'ai testé cela et, si vous décochez la case qui dit:

☐ Limitez le nombre de fichiers journaux d'erreurs avant leur recyclage

... ce qui implique (au moins pour moi) conserver tous les fichiers journaux, il ne conservera que le fichier journal des erreurs actuel plus 6 sauvegardes . Si vous avez modifié la clé de registre qui @ RLF a souligné , le paramètre de clé de registre remplace (comme si vous n'aviez pas décoché la case), mais vous allez toujours être limité à un certain nombre des fichiers journaux d'erreurs de sauvegarde entre 6 et 99.

Donc, la réponse courte est: oui, dans tous les cas, SQL Server finira par supprimer la suppression des anciens fichiers journaux d'erreurs.

8
Aaron Bertrand

SQL Server recycle automatiquement les journaux d'erreurs, tant que vous le configurez correctement.

Voir http://msdn.Microsoft.com/en-us/library/ms177285.aspx . J'ai copié les points saillants ci-dessous:

Dans l'Explorateur d'objets, développez l'instance de SQL Server, développez Gestion, cliquez avec le bouton droit sur Journaux SQL Server, puis cliquez sur Configurer.

Dans la boîte de dialogue Configurer les journaux d'erreurs SQL Server, choisissez parmi les options suivantes.

  • Limitez le nombre de fichiers journaux d'erreurs avant leur recyclage

    • Cochez pour limiter le nombre de journaux d'erreurs créés avant leur recyclage. Un nouveau journal des erreurs est créé à chaque démarrage d'une instance de SQL Server. SQL Server conserve les sauvegardes des six journaux précédents, sauf si vous cochez cette option et spécifiez un nombre maximal différent de fichiers journaux d'erreurs ci-dessous.
  • Nombre maximal de fichiers journaux d'erreurs

    • Spécifiez le nombre maximal de fichiers journaux d'erreurs créés avant leur recyclage. La valeur par défaut est 6, qui est le nombre de journaux de sauvegarde précédents que SQL Server conserve avant de les recycler.
7
Max Vernon

Oui, il existe une configuration pour le nombre de journaux d'erreurs à maintenir.

Il se trouve dans la clé de registre à l'adresse:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\NumErrorLogs

Vous devrez peut-être ajouter cette clé.

2
RLF