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->FilesAlternativement, le SQL pour le faire:
ALTER DATABASE mydatabase SET RECOVERY SIMPLE
DBCC SHRINKFILE (mydatabase_Log, 1)
use mydatabaseavant 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' nulappareil:
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
Et puis utilisez DBCC SHRINKFILEpour 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.