Pulizia dei registri di transazione creati quando RecoveryManager Plus esegue operazioni di backup e ripristino
Problema
Una volta utilizzato Exchange in locale, lo spazio libero su disco diminuirà rapidamente a causa dell’aumento dei registri generati dalle cassette postali. Il problema dei registri di grandi dimensioni è predominante nella versione di Exchange 2013 e successive.
Quando si installa RecoveryManager Plus per eseguire il backup delle cassette postali Exchange in locale, il prodotto utilizza l’API dei servizi Web di Exchange (EWS) per accedere alle cassette di postali posizionati sul server Exchange. Ogni volta che il prodotto accede alle API per qualsiasi azione, quale backup o ripristino, Microsoft Exchange crea un registro. Se l’ambiente presenta molte cassette postali e sono stati pianificati dei backup incrementali giornalieri, lo spazio su disco si ridurrà rapidamente.
Oltre ai registri generati dal server quando viene eseguita un’operazione di backup, ci sono numerosi registri generati ogni giorni dal server Exchange. Se non viene eseguita una pulizia regolare dei vecchi file di registro, molto spesso i database della cassetta postale vengono disattivati automaticamente causando interruzioni agli utenti con errore 452 4.3.1 Errore di risorse di sistema insufficienti.
Soluzione
Il modo più efficiente per risolvere questo problema è quello di cancellare in modo regolare i vecchi registri creati dal server Exchange a causa dei backup e della normale attività. Poiché questi registri sono creati dal server Microsoft Exchange non possono essere eliminati da RecoveryManager Plus.
Questo articolo illustrerà come automatizzare la cancellazione dei file di registro di transazione.
Dichiarazione di non responsabilità: Si noti che RecoveryManager Plus non crea direttamente nessun registro nel server Exchange ne elimina i registri esistenti. Il presente articolo spiega come cancellare in modo automatico i registri già creati o che saranno creati dal server Exchange.
Fase 1: Creazione dello script PowerShell necessario
- Creare uno 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)
Nota 1: In questo semplice script, abbiamo fornito il valore 2 alla riga 7 dello script. In base al valore qui fornito, i registri più vecchi del numero di giorni del valore fornito saranno eliminati. È possibile modificare il valore in base alla frequenza di backup incrementali configurata. Se è in uso un’utilità di pianificazione giornaliera, si consiglia di fornire il valore 1. Allo stesso modo, utilizzare i valori 7 e 31 se la frequenza di backup incrementale è rispettivamente settimanale e mensile.
Nota 2: Se è stato installato Exchange in una directory diversa rispetto al percorso predefinito, fornire il percorso alla riga 10 dello script. In base alla versione del server Exchange, è necessario modificare il valore ../V15/... al numero pertinente. Se si desidera cancellare regolarmente altri registri del sistema, aggiungere la posizione dei registri alla fine di $LogPaths, separati da virgola.
- Archiviare gli script come CleanupLogs.ps1 e posizionarli nella cartella C:\Script\. Se non è presente una cartella Script, crearne una nell’unità C:\.
Fase 2: Automatizzare la procedura di pulizia tramite l’utilità di pianificazione compito
- Avviare l’utilità di pianificazione compito

- Fare clic su Raccolta utilità di pianificazione compito dal pannello a sinistra e fare clic su Nuova cartella dal pannello a destra. Chiamare la cartella RecoveryManager Plus e fare clic su OK.

- Dal pannello di sinistra fare clic sulla cartella Exchange creata di recente e fare clic su Crea compito dal pannello a destra.

- Apparirà una finestra popup Crea compito.
- Fai clic sulla scheda Generale.
- Nel campo Nome, inserire EWSLogsCleanup.
- In opzioni di sicurezza,
- Fare clic sul pulsante Modifica utente o gruppo e selezionare SISTEMA.
- Abilita Esegui con privilegi più elevati.
- Selezionare Configura per Windows Server 2016 se è in uso Windows Server 2016. Se è in uso una versione diversa di Windows Server, selezionare quella corretta.

- Fare cli sulla scheda Trigger e su Nuovo.

- Nella sezione Impostazioni, selezionare Giornaliero e indicare l’ora a cui si desidera avviare la pulizia del registro nel campo Inizia. Accertarsi che sia Abilitato e fare clic su OK.
Nota: In questo esempio abbiamo selezionato Giornaliero. Tuttavia è possibile cambiarlo di conseguenza se RecoveryManager Plus è stato impostato per eseguire backup incrementali su cadenza settimanale o mensile.

- Fare cli sulla scheda Azioni e su Nuovo.

- Alla sezione Impostazioni,
- Selezionare PowerShell.exe nel campo Program/script.
- Inserire -ExecutionPolicy Bypass C:\Scripts\CleanupLogs.ps1 nel campo Aggiungi argomenti (opzionale): field.
- Fai clic su OK.

- Fai clic su OK.

Adesso il compito è stato pianificato e i registri Exchange EWS saranno cancellati all’intervallo e frequenza specificata.
Fase 3: Eseguire e verificare manualmente il compito di pulizia dei registri Exchange
- Dal pannello centrale fare clic sul compito CleanupLogs, quindi fare clic su Esegui dal pannello a destra.
- È possible controllare lo stato dell’ultima operazione nella colonna Risultato ultima operazione nel pannello centrale.

- Controllare che il compito CleanupLogs abbia cancellato i registri nelle seguenti cartelle.
C:\Program Files\Microsoft\Exchange Server\V15\Logging\Ews\
Nota: Se sono stati aggiungi registri aggiuntivi da cancellare tramite lo script (riga 10 dello script), controllare che tali registri siano stati cancellati correttamente.
Nota: Si noti che RecoveryManager Plus non crea direttamente nessun registro nel server Exchange ne elimina i registri esistenti. Il presente articolo spiega come cancellare i registri già creati o che saranno creati dal server Exchange.