45 votes

Comment supprimer le fichier .ldf de SQL Server 2008 ?

Merci d'avance

Si j'arrête SQL-server et que je supprime le fichier .LDF (fichier transactionlog) de la base de données, que se passera-t-il ? La base de données sera-t-elle considérée comme suspecte ou SQL-server en créera-t-il automatiquement une nouvelle ? SQL Server 2008 R2 Et la taille de mon fichier .LDF est trop importante, alors comment le gérer, si je peux le réduire ou le supprimer ? Suggérez-nous dans le formulaire de requête.

Merci

54voto

Vash Points 2857

Vous ne devez supprimer aucun des fichiers de la base de données, car cela peut gravement endommager votre base de données !

Si vous manquez d'espace disque, vous pouvez diviser votre base de données en plusieurs parties. Cela peut être fait dans les propriétés de la base de données. Ainsi, vous êtes en mesure de placer chaque partie de la base de données sur un volume de stockage différent.

Vous pouvez également réduire le fichier journal des transactions si vous changez le mode de récupération de complet à simple, en utilisant les commandes suivantes :

ALTER DATABASE myDatabase SET RECOVERY SIMPLE
DBCC SHRINKDATABASE (myDatabase , 5)

Il est également possible de revenir à une récupération complète :

ALTER DATABASE myDatabase SET RECOVERY FULL

Mise à jour de SHRINKDATABASE - ou ce que je ne savais pas en répondant à cette question :

Bien que la méthode ci-dessus permette de se débarrasser d'une partie de l'espace inutilisé, elle présente de graves inconvénients pour les fichiers de base de données (MDF) - elle endommagera vos index en les fragmentant, ce qui réduira les performances de votre base de données. Vous devez donc reconstruire les index par la suite pour éliminer la fragmentation causée par la commande shrink.

Si vous voulez réduire uniquement le fichier journal, vous pouvez utiliser la méthode suivante SHRINKFILE à la place. J'ai copié cet exemple de MSDN :

USE AdventureWorks2012;
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE AdventureWorks2012
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (AdventureWorks2012_Log, 1);
GO
-- Reset the database recovery model.
ALTER DATABASE AdventureWorks2012
SET RECOVERY FULL;
GO

44voto

Armand G. Points 1397

Ne prenez pas le risque de supprimer vos fichiers LDF manuellement ! Si vous n'avez pas besoin des fichiers de transaction ou si vous souhaitez les réduire à la taille de votre choix, suivez ces étapes : (Notez que cela affectera vos sauvegardes, soyez sûr avant de le faire)

  1. Clic droit sur la base de données
  2. Choisir les propriétés
  3. Cliquez sur l'onglet "Options".
  4. Définir le modèle de récupération sur SIMPLE
  5. Ensuite, choisissez l'onglet FICHIERS
  6. Maintenant, assurez-vous de sélectionner le fichier LOG et faites défiler vers la droite. Sous le titre "Autogrowth", cliquez sur les points .....
  7. Désactivez ensuite la croissance automatique (cette option est facultative et limitera la croissance supplémentaire).
  8. Cliquez ensuite sur OK et réglez la "Taille initiale" sur la taille que vous souhaitez (j'ai réglé la mienne sur 20 Mo).
  9. Cliquez sur OK pour enregistrer les modifications
  10. Ensuite, cliquez à nouveau avec le bouton droit de la souris sur la base de données et choisissez "Tâches > Réduire > Base de données", puis appuyez sur OK.
  11. Comparez maintenant la taille de vos fichiers :)

29voto

NicoJuicy Points 892

Je l'ai fait en

  • Détacher la base de données (inclure Drop Connections)
  • Supprimer le fichier *.ldf
  • Attachez la base de données, mais supprimez le fichier *.ldf attendu.

Je l'ai fait pour 4 bases de données différentes en SQL 2012, ça devrait être la même chose pour SQL 2008.

7voto

Dalex Points 2420

Comme vous pouvez le lire dans les commentaires, ce n'est pas une bonne solution pour supprimer le journal. Mais si vous êtes sûr de ne rien perdre, vous pouvez simplement changer le mode de récupération de votre BD en mode simple et ensuite utiliser

DBCC shrinkdatabase ('here your database name')

pour effacer votre journal.

La pire chose que vous puissiez faire est de supprimer le fichier journal du disque. Si votre serveur avait des transactions non terminées au moment de l'arrêt du serveur, ces transactions ne seront pas annulées après le redémarrage et vos données seront corrompues.

2voto

cjk Points 27463

Vous devriez sauvegarder votre journal des transactions, il y aura alors de l'espace libre pour le réduire. Passer en mode simple puis rétrécir signifie que vous perdrez toutes les données de transaction qui seraient utiles en cas de restauration.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X