SQL Server 2008 - réduction du Journal des Transactions - Tout moyen d'automatiser?
Je suis allé et extrait de mon journal de Transaction, l'autre jour et c'était quelque chose de fou comme 15GO. J'ai couru le code suivant:
USE mydb
GO
BACKUP LOG mydb WITH TRUNCATE_ONLY
GO
DBCC SHRINKFILE(mydb_log,8)
GO
Qui a bien fonctionné, a diminué jusqu'à 8MB...mais la bd en question est un Journal de l'Expédition de l'Éditeur, et le journal est déjà de retour jusqu'à environ 500 mo et en croissance rapide.
Est-il un moyen d'automatiser ce journal rétrécissement, en dehors de la création d'une coutume "Exécuter Instruction T-SQL Tâche" Plan de Maintenance de la Tâche, et de le brancher sur mon journal de tâche de sauvegarde? Si c'est la meilleure façon, puis très bien...mais je pensais juste que SQL Server serait une meilleure façon de traiter cette question. J'ai pensé qu'il était censé pour réduire automatiquement chaque fois que vous avez pris une sauvegarde de journal, mais ce n'est pas le cas (peut-être à cause de mon journal de l'expédition, je ne sais pas).
Voici mon plan de sauvegarde actuel:
- Des sauvegardes complètes tous les soirs
- Sauvegardes du journal des transactions une fois par jour, en fin de matinée (peut-être accrocher le Journal de rétrécissement sur ce...n'a pas besoin d'être diminué tous les jours tout de même)
Ou peut-être je viens de le lancer une fois par semaine, après je lance une sauvegarde complète de la tâche? Que faites vous en pensez, vous?
- si le journal se remplit de nouveau - dans un délai assez court laps de temps - ce qui est le point de constamment réduire la taille? Tout simplement parce que le fichier n'est pas plus petite, ne signifie pas qu'il est encore plein de données une fois que vous avez une sauvegarde du journal des transactions.
- "quel est le point de constamment réduire la taille? "L'espace de disque dur...je suppose que ce n'est pas la plus énorme de problèmes, mais il n'y a pas besoin de cette chose pour prendre GO d'espace.
- Sonne comme vous avez juste besoin incrémentielle complète des sauvegardes quelques fois par jour et vous n'avez pas besoin de psy.
Vous devez vous connecter pour publier un commentaire.
Si vous fichier augmente tous les soirs à 500 MO, il n'y a qu'une seule bonne action: pré-développer le fichier de 500MO et de l'y laisser. Réduction du fichier journal est préjudiciable. Avoir le fichier journal de l'auto-grandir, c'est aussi préjudiciable.
Vous n'avez pas à prendre mon mot pour lui, vous pouvez lire sur certains de MVP des blogs de ce qu'ils ont à dire à propos de la pratique de log et le fichier de retrait sur une base régulière:
Il y a plus, j'ai juste eu marre de les relier entre eux.
Chaque fois que vous réduire un fichier journal, une fée qui perd ses ailes.
Je pense de plus en plus fréquentes sauvegardes du journal des transactions.
Je pense que ce que vous suggérez dans votre question, c'est la bonne approche. Qui est, "crochet le Journal de rétrécissement sur" votre sauvegarde nocturne/les tâches de maintenance de processus. La chose principale est que vous êtes souvent faire des sauvegardes du journal des transactions, ce qui permettra à la base de données pour être réduit lorsque vous faites la réduction de la tâche. La chose à garder à l'esprit que ce est un processus en deux étapes: 1) faire une sauvegarde de vos journaux de transactions, ce qui automatiquement "tronque" votre fichier de log; 2) exécuter un psy à l'encontre de votre fichier de log. "tronquer" ne sont pas nécessairement (ou jamais?) dire que le fichier va se rétracter...rétrécissement c'est une étape que vous devez faire.
pour SQL Server 2005
DBCC SHRINKFILE ( Database_log_file_name , NOTRUNCATE)
Cette déclaration, ne pas briser l'envoi de journaux. Mais, vous devrez peut-être exécuter plus d'un. Pour chaque course, le journal de l'expédition de sauvegarde, de copie, et remis à courir après de nouveau exécuter cette instruction.
À rétrécir et à tronquer sont différents.
Mes expériences:
AA db, 6.8 GO journal des transactions
première exécution: 6.8 GO
journal de l'expédition de sauvegarde, de copie, de restaurer après la deuxième manche: 1.9 GO
journal de l'expédition de sauvegarde, de copie, de restaurer après la troisième: 1,7 GO
journal de l'expédition de sauvegarde, de copie, de restaurer après la quatrième: 1 GO
BB db, 50 GO de journal de transaction
première exécution: 39 GO
journal de l'expédition de sauvegarde, de copie, de restaurer après la deuxième manche: 1 GO
La création d'une sauvegarde du journal des transactions ne veut pas dire que la transaction en ligne taille du fichier journal sera réduit. La taille du fichier reste le même. Lors d'une transaction de données en place, dans la ligne du journal des transactions est marqué pour l'écrasement. Il n'est pas automatiquement supprimé, et le pas d'espace est libéré, par conséquent, la taille reste la même.
Une fois que vous définissez la taille du fichier LDF, de maintenir sa taille, en définissant l'sauvegarde du journal des transactions de la fréquence.
Paul Randal fournit plus de détails ici:
La compréhension d'enregistrement et de Récupération de SQL Server
Présentation des Sauvegardes SQL Server
Basé sur la recommandation de Microsoft Avant de vous l'intention de réduire le fichier journal, vous devriez d'abord essayer d'effectuer les fonctions suivantes:
Tour auto de la croissance par l'aide de l'instruction ALTER DATABASE pour définir une valeur non nulle de l'incrément de croissance pour l'option FILEGROWTH.
MODIFIER la BASE de données EmployeeDB MODIFIER le FICHIER ( NOM = SharePoint_Config_log, TAILLE = 2 MO, MAXSIZE = 200 MO, FILEGROWTH = 10 MO );
Aussi, vous devriez être au courant de l'opération de réduction via le plan de maintenance sera en effet sur *.fichier mdf et *.fichier ldf. si vous avez besoin de créer un plan de maintenance avec SQL tâche de travail et d'écrire la commande suivante pour pouvez réduire uniquement *.fichier ldf à votre taille de la cible.
Note: 100 est appelé target_size pour le fichier en mo, exprimée comme un nombre entier. Si non spécifié, la commande DBCC SHRINKFILE réduit la taille pour la taille de fichier par défaut. La taille par défaut est la taille spécifiée lors de la création du fichier.
À mon humble avis, Il est recommandé de ne pas effectuer l'opération de réduction régulièrement! Seulement dans certaines circonstances que vous avez besoin de réduire la taille physique.
Vous pouvez également consulter ce guide utile pour Compresser un fichier journal des transactions Plan de Maintenance de SQL Server