Je dois vider un fichier LDF avant de l'envoyer à un collègue. Comment forcer SQL Server à tronquer le journal?
Je dois vider un fichier LDF avant de l'envoyer à un collègue. Comment forcer SQL Server à tronquer le journal?
Réponses:
si je me souviens bien ... dans l'analyseur de requêtes ou équivalent:
BACKUP LOG databasename WITH TRUNCATE_ONLY
DBCC SHRINKFILE ( databasename_Log, 1)
WITH TRUNCATE_ONLY
.
BACKUP LOG DatabaseNameHere TO DISK='NUL:'
.
En studio de gestion:
Properties
, puis Options
.Tasks
-> Shrink
->Files
Alternativement, le SQL pour le faire:
ALTER DATABASE mydatabase SET RECOVERY SIMPLE
DBCC SHRINKFILE (mydatabase_Log, 1)
use mydatabase
avant d'exécuterdbcc shrinkfile
Pour SQL Server 2008, la commande est:
ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
ALTER DATABASE ExampleDB SET RECOVERY FULL
Cela a réduit mon fichier journal de 14 Go à 1 Mo.
Pour SQL 2008, vous pouvez sauvegarder le journal sur l' nul
appareil:
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
Et puis utilisez DBCC SHRINKFILE
pour tronquer le fichier journal.
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 plus tard.
De retour dans Management Studio, attachez à nouveau la base de données. Dans la fenêtre d'attachement, 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.