Quelle est la commande pour tronquer un fichier journal SQL Server ?
-
09-06-2019 - |
Question
Je dois vider un fichier LDF avant de l'envoyer à un collègue.Comment forcer SQL Server à tronquer le journal ?
La solution
Si je me souviens bien...dans l'analyseur de requêtes ou équivalent :
BACKUP LOG databasename WITH TRUNCATE_ONLY
DBCC SHRINKFILE ( databasename_Log, 1)
Autres conseils
En studio de gestion :
- Ne faites pas cela dans un environnement réel, mais pour vous assurer de réduire autant que possible votre base de données de développement :
- Cliquez avec le bouton droit sur la base de données, choisissez
Properties
, alorsOptions
. - Assurez-vous que « Modèle de récupération » est défini sur « Simple » et non sur « Complet ».
- Cliquez sur OK
- Cliquez avec le bouton droit sur la base de données, choisissez
- Cliquez à nouveau avec le bouton droit sur la base de données, choisissez
Tasks
->Shrink
->Files
- Changez le type de fichier en "Journal"
- Cliquez sur OK.
Alternativement, le SQL pour le faire :
ALTER DATABASE mydatabase SET RECOVERY SIMPLE
DBCC SHRINKFILE (mydatabase_Log, 1)
Pour SQL Server 2008, la commande est :
ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
Cela a réduit mon fichier journal de 14 Go à 1 Mo.
Pour SQL 2008, vous pouvez sauvegarder le journal sur nul
appareil:
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
Et puis utilisez DBCC SHRINKFILE
pour tronquer le fichier journal.
journal de sauvegarde nom du journal avec truncate_only suivi d'une commande dbcc Shrinkfile
Une autre option consiste à détacher la base de données via Management Studio.Ensuite, supprimez simplement le fichier journal ou renommez-le et supprimez-le plus tard.
De retour dans Management Studio, attachez à nouveau la base de données.Dans la fenêtre de pièce jointe, supprimez le fichier journal de la liste des fichiers.
La base de données joint et crée un nouveau fichier journal vide.Après avoir vérifié que tout va bien, vous pouvez supprimer le fichier journal renommé.
Vous ne devriez probablement pas l'utiliser pour les bases de données de production.