Comment tronquer le journal des transactions dans une base de données SQL Server 2008?
Quels sont les meilleurs moyens possibles?
J'ai essayé ceci à partir d'un blog comme suit:
1) De la base de données de configuration à la récupération simple, en réduisant le fichier et en définissant à nouveau la récupération complète, vous perdez en fait vos précieuses données de journal et ne pourrez pas restaurer à un moment donné. Non seulement cela, vous ne pourrez pas non plus utiliser les fichiers journaux suivants.
2) La réduction du fichier ou de la base de données ajoute une fragmentation.
Il y a beaucoup de choses que vous pouvez faire. Tout d'abord, commencez à effectuer une sauvegarde de journal appropriée à l'aide de la commande suivante au lieu de les tronquer et de les perdre fréquemment.
BACKUP LOG [TestDb] TO DISK = N'C:\Backup\TestDb.bak'
GO
Supprimez le code de réduction du fichier. Si vous effectuez des sauvegardes de journal appropriées, votre fichier journal généralement (encore une fois généralement, les cas spéciaux sont exclus) ne grossit pas très.
la source
Réponses:
La façon la plus sûre et la plus correcte de tronquer un fichier journal si la base de données est en mode de récupération complète consiste à effectuer une sauvegarde du journal des transactions (sans
TRUNCATE_ONLY
. Cela va être déconseillé dans les versions futures et n'est pas conseillé).Il semble que vous souhaitiez réduire votre fichier journal par la suite, auquel cas vous exécuteriez une
DBCC SHRINKFILE(yourTLogName)
commande. Il existe un deuxième paramètre facultatif pour la taille demandée pour le réduire.la source
Vous pouvez sauvegarder le journal sur le périphérique nul:
Ou vous pouvez basculer le modèle de récupération sur simple, puis revenir à nouveau à plein / en masse.
la source
Si vous ne vous souciez pas de vos données de journal et que vous souhaitez simplement vous en débarrasser:
Modifiez le modèle de récupération de complet à simple, puis revenez à complet. Réduire le fichier à l'aide de DBCC SHRINKFILE avec l'argument TRUNCATEONLY
La commande suivante fera passer le modèle de récupération de complet à simple
La commande suivante changera le modèle de récupération en full
Pour trouver le nom du fichier journal, vous pouvez utiliser la requête suivante
Rétrécir le fichier
Voir Quelle est la commande pour tronquer un fichier journal SQL Server? pour plus d'informations à ce sujet
la source