J'ai une base de données SQL Server 2008 qui a un fichier de données d'environ 2 Go, mais le fichier journal dépasse 8 Go. Avec les bases de données antérieures à 2008, je pouvais utiliser le «journal de sauvegarde» et l' TRUNCATE_ONLY
option, mais ce n'est plus disponible avec les bases de données 2008 et ultérieures.
J'ai un script qui tronque le fichier journal:
USE [MyDatabase]
GO
ALTER DATABASE [MyDatabase] SET RECOVERY SIMPLE WITH NO_WAIT
DBCC shrinkfile('MyDatabase_log', 1)
ALTER DATABASE [MyDatabase] SET RECOVERY FULL WITH NO_WAIT
GO
Cela tronque complètement le fichier journal, mais ma question est: cela affecte-t-il les performances?
J'effectue deux sauvegardes complètes par jour afin que le journal ne soit pas vraiment nécessaire en ce qui concerne le transfert de données.
OK d'abord oui le journal est nécessaire même avec les sauvegardes complètes quotidiennes si vous souhaitez recovoer en cas de problème. Nous sauvegardons notre journal des transactions toutes les 15 minutes. Le problème est que vous ne sauvegardez pas votre journal des transactions et c'est pourquoi le journal se développe de manière scandaleuse. Vous ne devriez presque jamais avoir besoin de réduire un journal des transactions si vous effectuez des sauvegardes correctes du journal des transactions.
Vous devrez sauvegarder la base de données avant de tronquer le journal. Je suggère de le faire en dehors des heures d'ouverture afin qu'aucune nouvelle donnée ne soit insérée entre la sauvegarde et la troncature. Ensuite, configurez les sauvegardes de journal des transactions appropriées afin que vous n'ayez plus jamais ce problème.
Quant à affecter les performances, bien sans connaître les détails du matériel et de l'utilisation de votre système, ce serait difficile à dire.
la source
À quelle vitesse le journal des transactions se développe-t-il? S'il est plutôt rapide, vous affecterez les performances en les réduisant à presque rien, car il devra passer du temps à les repousser. Cela ne signifie pas que vous ne devriez pas le réduire de temps en temps, mais vous devez penser au problème de taille plutôt que de le réduire au minimum. Le perf est-il énorme? Probablement pas, mais cela dépend de la charge sur le serveur (nombre de transactions, etc.).
Une chose que je trouve problématique est "J'effectue 2 sauvegardes complètes par jour, donc le journal ne devrait pas vraiment être nécessaire en ce qui concerne le transfert de données." Le journal est extrêmement important pour les points entre vos sauvegardes complètes. Même deux fois par jour n'élimine pas la nécessité d'un fichier journal pour la reprise après sinistre, sauf s'il s'agit d'une base de données en lecture seule (si c'était le cas, vous ne verriez pas l'énorme augmentation du fichier journal, cependant).
la source