Troncation du journal des transactions et réduction du fichier journal pour SQL Server

Acronis Backup ne tronque pas les journaux des transactions après la création d'une sauvegarde de disque. Si vous n'utilisez pas le moteur de sauvegarde natif de Microsoft SQL Server ou toute autre solution de sauvegarde tierce qui gère automatiquement les journaux des transactions, vous pouvez gérer les journaux à l'aide des méthodes suivantes.

Troncation de journal à l'aide de SQL Server Management Studio

Lorsque vous faites basculer une base de données dans le mode de restauration simple, les journaux des transactions sont tronqués automatiquement.

  1. Pour faire basculer la base de données dans le mode de restauration simple :
    1. Lancez Microsoft SQL Server Management Studio et connectez-le à l'instance.
    2. Cliquez avec le bouton droit de la souris sur la base de données, puis cliquez sur Propriétés. Cela ouvrira la boîte de dialogue Propriétés de la base de données.
    3. Dans le volet Sélectionner une page, cliquez sur Options.
    4. Dans la zone de liste Mode de restauration, sélectionnez le mode Simple.
  2. Les fichiers journaux des transactions seront automatiquement tronqués.
  3. Vous pouvez refaire basculer la base de données dans le mode de restauration complet ou utilisant les journaux de transactions de la même façon que dans l'étape 1.

Automatiser la troncation et la réduction du journal

Vous pouvez automatiser la procédure de troncation ci-dessus à l'aide d'un script et (éventuellement) ajouter la réduction du fichier journal. Si vous ajoutez le script à la commande de sauvegarde Post, les journaux seront tronqués et réduits immédiatement après une sauvegarde. Cette méthode suppose que vous possédez des compétences de scripting Transact-SQL et que vous êtes familier avec l'utilitaire sqlcmd.

Pour plus d'informations sur Transact-SQL et sqlcmd, reportez-vous aux articles suivants :

Pour automatiser la troncation et la réduction du journal des transactions pour une instance SQL

  1. En utilisant le modèle suivant, créez un script qui tronquera et réduira les fichiers journaux pour les bases de données de l'instance :

    USE database_name
    ALTER DATABASE nom_de_base_de_données SET RECOVERY SIMPLE;
    DBCC SHRINKFILE(nom_du_fichier_journal);
    ALTER DATABASE nom_de_base_de_données SET RECOVERY FULL;

    Dans la dernière chaîne, la valeur SET RECOVERY dépend du mode de restauration d'origine de la base de données particulière et pourrait être FULL ou BULK_LOGGED.

    Exemple pour une instance ayant deux bases de données (TestBD1 et TestBD2) :

    USE TestDB1;
    ALTER DATABASE TestBD1 SET RECOVERY SIMPLE;
    DBCC SHRINKFILE(TestBD1_log);
    ALTER DATABASE TestBD1 SET RECOVERY FULL;

    USE TestDB2;
    ALTER DATABASE TestBD2 SET RECOVERY SIMPLE;
    DBCC SHRINKFILE(TestBD2_log);
    ALTER DATABASE TestBD2 SET RECOVERY BULK_LOGGED;

  2. Ajoutez la commande sqlcmd suivante à la commande de sauvegarde Post :

    sqlcmd -S monServeur\NomInstance -i C:\monScript.sql

    Où :

Pour automatiser la troncation et la réduction du journal des transactions pour plusieurs instances SQL

Si vous avez plus d'une instance sur la machine et que vous souhaitez appliquer la procédure ci-dessus pour ces instances, procédez comme suit.

  1. Créez un fichier script distinct pour chaque instance (par ex. C:\script1.sql et C:\script2.sql).
  2. Créez un fichier de commandes (par ex. C:\troquer.bat) qui contiendra les commandes pour l'instance correspondante :

    sqlcmd -S myServer\instance1 -i C:\script1.sql
    sqlcmd -S myServer\instance2 -i C:\script2.sql

  3. Dans la commande de sauvegarde Post, spécifiez le chemin d'accès au fichier de commandes.