Comment réduire le fichier journal sur toutes les bases de données

     Voici une façon de le faire rétrécir del journal des transactions (fichier .ldf) qui croît souvent de manière disproportionnée dans Sql Server.

    Comment réduire le fichier journal sur toutes les bases de données

     Pour éviter de répéter l'instruction sur chaque base de données sur le serveur, le script sous-jacent fonctionne sur le toutes les bases de données sur le serveur

    EXÉCUTER sp_msforeachdb 'USE ?; TRANSACTION DE dumping ? AVEC NO_LOG ; DÉCLARER @LogLogicalName nvarchar(100); SELECT @LogLogicalName = nom_fichier(2); DBCC SHRINKFILE(@LogLogicalName, 100);'
     sp_msforeachdb: est une procédure stockée Microsoft non documentée qui vous permet d'exécuter du code T-SQL sur toutes les bases de données d'un serveur. ?: est le nom de la base de données renvoyé par la procédure stockée. nom_fichier(2): est une fonction qui renvoie le nom logique du fichier journal de la base de données. Une autre solution est cet autre script, qui réduit le journal sur la base de données via une boucle :  



    CREATE TABLE #TDatabases( DBName nvarchar(128), DBLogicalName nvarchar(128) ) INSERT INTO #TDatabases SELECT db.name DBName, mf.name DBLogicalName FROM sys.databases db join sys.master_files mf on db.database_id = mf.database_id O db.name not in ('master', 'tempdb', 'model', 'msdb', 'distribution') AND type_desc LIKE 'log' SET NOCOUNT ON DECLARE @VarDBLogicalName nvarchar(128) DECLARE @VarDBName nvarchar(128) DECLARE @VarRowCount int SELECTIONNER top 1 @VarDBName = DBName, @VarDBLogicalName = DBLogicalName FROM #TDatabases SET @VarRowCount = @@rowcount WHILE @VarRowCount <> 0 BEGIN PRINT @VarDBLogicalName EXEC(' use ' + @VarDBName + ' backup log '+ VarDBName + ' with no_log dbcc Shrinkfile(''' + @VarDBLogicalName + ''', TRUNCATEONLY) WITH NO_INFOMSGS') DELETE FROM #TDatabases WHERE DBName = @VarDBName SELECT top 1 @VarDBName = DBName, @VarDBLogicalName = DBLogicalName FROM #TDatabases SET @VarRowCount = @@ROWCOUNT END DROP TABLE #TDatabases SET NOCOUNT OFF 



    ajouter un commentaire de Comment réduire le fichier journal sur toutes les bases de données
    Commentaire envoyé avec succès ! Nous l'examinerons dans les prochaines heures.