Nettoyage des journaux de transactions créés lorsque RecoveryManager Plus effectue des opérations de sauvegarde et de restauration

Problème

Une fois que vous déployez Exchange local, l'espace disque disponible diminue rapidement en raison de l'augmentation des journaux générés par les boîtes aux lettres. Ce problème des journaux de grandes tailles est prédominant dans les versions 2013 et ultérieures d'Exchange.

Lorsque vous installez RecoveryManager Plus pour sauvegarder vos boîtes aux lettres Exchange locales, le produit utilise l'API Exchange Web Services (EWS) pour accéder aux boîtes aux lettres situées sur le serveur Exchange. Chaque fois que le produit accède à ces API pour effectuer une action telle qu'une sauvegarde ou une restauration, Microsoft Exchange crée un journal. Si votre environnement comporte un grand nombre de boîtes aux lettres et que vous avez planifié des sauvegardes incrémentielles quotidiennes, l'espace disque disponible se réduira rapidement.

En plus des journaux générés par le serveur lors de l'exécution d'une opération de sauvegarde, de nombreux journaux sont générés quotidiennement par le serveur Exchange. À moins de nettoyer régulièrement les anciens fichiers journaux, il est très fréquent que les bases de données de boîtes aux lettres se démontent automatiquement et provoquent des perturbations pour vos utilisateurs avec l'erreur 452 4.3.1 Erreur de ressources système insuffisantes.

Solution

Le moyen le plus efficace de résoudre ce problème consiste à effacer périodiquement les anciens journaux créés par le serveur Exchange en raison de sauvegardes et d'autres activités normales. Ces journaux étant créés par le serveur Microsoft Exchange, ils ne peuvent pas être supprimés par RecoveryManager Plus.

Cet article explique comment vous pouvez automatiser l'effacement des fichiers journaux de transactions.

Clause d’exclusion de responsabilité : Veuillez noter que RecoveryManager Plus ne crée pas directement de journaux sur votre serveur Exchange et ne supprime pas les journaux existants. Cet article explique comment effacer automatiquement les journaux qui ont été et seront créés par votre serveur Exchange.

Étape 1 : Création du script PowerShell requis

  1. Créez un script PowerShell.
    # Set execution policy if not set
    $ExecutionPolicy = Get-ExecutionPolicy
    if ($ExecutionPolicy -ne "RemoteSigned") {
    	Set-ExecutionPolicy RemoteSigned -Force
    }
    # Cleanup logs older than the set of days in numbers
    $days = 2
    
    # Path of the logs that you like to cleanup
    $LogPaths = "C:\Program Files\Microsoft\Exchange Server\V15\Logging\Ews\"
    
    # Clean the logs
    Function CleanLogfiles($TargetFolders) {
     foreach ($TargetFolder in $TargetFolders) {
    	Write-Host -Debug -ForegroundColor Yellow -BackgroundColor Cyan $TargetFolder
    
    	if (Test-Path $TargetFolder) {
    		$Now = Get-Date
    		$LastWrite = $Now.AddDays(-$days)
    		$Files = Get-ChildItem $TargetFolder -Recurse | Where-Object { $_.Name -like "*.log" } 
    | Where-Object { $_.lastWriteTime -ge "$lastwrite" } | Select-Object FullName foreach ($File in $Files) { $FullFileName = $File.FullName Write-Host "Deleting file $FullFileName" -ForegroundColor "yellow"; Remove-Item $FullFileName -ErrorAction SilentlyContinue | out-null } } Else { Write-Host "The folder $TargetFolder doesn't exist! Check the folder path!"
    -ForegroundColor "red" } } } CleanLogfiles($LogPaths)
    Remarque 1 : Dans cet exemple de script, nous avons fourni la valeur 2 à la ligne 7 du script. En fonction de la valeur fournie ici, les journaux ayant un nombre de jours supérieur à la valeur fournie seront supprimés. Vous pouvez modifier la valeur en n'importe quel nombre en fonction de la fréquence de sauvegarde incrémentielle que vous avez configurée. Si votre planification est quotidienne, nous vous recommandons de fournir la valeur 1. De même, utilisez les valeurs 7 et 31 si votre fréquence de sauvegarde incrémentielle est respectivement hebdomadaire et mensuelle.
    Remarque 2 : Si vous avez installé Exchange dans un autre répertoire que le chemin d'accès par défaut, indiquez le chemin d'accès dans la ligne 10 du script. En fonction de la version de votre serveur Exchange, la valeur .. /V15/... doit être modifié pour le numéro correspondant. Si vous souhaitez effacer périodiquement d'autres journaux de votre système, ajoutez l'emplacement des journaux à la fin de $LogPaths, séparés par une virgule.
  2. Stockez le script sous le nom CleanupLogs.ps1 et placez-le dans le dossier C:\Scripts\. Si vous n'avez pas de dossier Scripts, créez-le dans le lecteur C:\.

Étape 2 : Automatisez la procédure de nettoyage des journaux avec le planificateur des tâches

  1. Démarrez le planificateur des tâches

    cleaning-up-transaction-logs-in-exchange-server

  2. Cliquez sur Bibliothèque du planificateur des tâches dans le volet gauche, puis sur Nouveau dossier dans le volet droit. Nommez le dossier RecoveryManager Plus et cliquez sur OK.

    cleaning-up-transaction-logs-in-exchange-server

  3. Cliquez sur le dossier Exchange que vous venez de créer dans le volet gauche, puis cliquez sur Créer une tâche dans le volet droit.

    cleaning-up-transaction-logs-in-exchange-server

  4. Une fenêtre Créer une tâche s'affiche.
  5. Cliquez sur l'onglet Général.
  6. Dans le champ Nom, entrez EWSLogsCleanup.
  7. Sous les options de sécurité,
    • Cliquez sur le bouton Changer d'utilisateur ou de groupe et sélectionnez SYSTEM.
    • Activez l'option Exécuter avec les privilèges les plus élevés.
    • Sélectionnez Configurer pour Windows Server 2016 si vous avez Windows Server 2016. Si vous avez une autre version de Windows Server, sélectionnez celle qui convient.

      cleaning-up-transaction-logs-in-exchange-server

  8. Cliquez sur l'onglet Déclencheurs, puis sur Nouveau.

    cleaning-up-transaction-logs-in-exchange-server

  9. Dans la section Paramètres, sélectionnez Quotidien et indiquez l'heure d’exécution souhaitée du nettoyage du journal dans le champ Démarrage. Assurez-vous qu'il est Activé et cliquez sur OK.
    Remarque : Dans cet exemple, nous avons sélectionné Quotidien. Toutefois, si vous avez planifié RecoveryManager Plus pour effectuer des sauvegardes incrémentielles hebdomadaires ou mensuelles, vous pouvez le modifier en conséquence.

    cleaning-up-transaction-logs-in-exchange-server

  10. Cliquez sur l'onglet Actions, puis sur Nouvelle.

    cleaning-up-transaction-logs-in-exchange-server

  11. Dans la section Paramètres,
    • Sélectionnez PowerShell.exe dans le champ Programme/script.
    • Entrez -ExecutionPolicy Bypass C:\Scripts\CleanupLogs.ps1 dans le champ Ajouter des arguments (option) :.
    • Cliquez sur OK.

      cleaning-up-transaction-logs-in-exchange-server

  12. Cliquez sur OK.

    cleaning-up-transaction-logs-in-exchange-server

La tâche a maintenant été planifiée et vos journaux Exchange EWS seront désormais effacés à l'heure et à la fréquence spécifiées.

Étape 3 : Exécutez et testez manuellement la tâche de nettoyage des journaux Exchange

  1. Cliquez sur la tâche créée CleanupLogs dans le volet central, puis cliquez sur Exécuter dans le volet droit.
  2. Vous pouvez vérifier l'état de la dernière opération exécutée dans la colonne Résultat de la dernière exécution dans le volet central.

    cleaning-up-transaction-logs-in-exchange-server

  3. Vérifiez si la tâche CleanupLogs a effacé les journaux dans le ou les dossiers suivants.
    C:\Program Files\Microsoft\Exchange Server\V15\Logging\Ews\
    Remarque : Si vous avez ajouté des journaux supplémentaires à effacer avec le script (ligne 10 du script), vérifiez si ces journaux ont également été effacés.
Remarque : Veuillez noter que RecoveryManager Plus ne crée pas directement de journaux sur votre serveur Exchange et ne supprime pas les journaux existants. Cet article explique comment vous pouvez effacer des journaux qui ont été et seront créés par votre serveur Exchange.