Base de dados de conhecimento

Limpeza de logs de transações criados quando o RecoveryManager Plus executa operações de backup e restauração

Problema

Depois de implantar o Exchange local, o espaço livre em disco diminuirá rapidamente devido ao aumento nos logs gerados pelas caixas de correio. Esse problema de tamanhos de log grandes é predominante nas versões 2013 e superiores do Exchange.

Quando você instala o RecoveryManager Plus para fazer backup de suas caixas de correio locais do Exchange, o produto usa a API Exchange Web Services (EWS) para acessar caixas de correio localizadas no Servidor Exchange. Sempre que o produto acessa essas APIs para qualquer ação, como fazer um backup ou realizar uma restauração, o Microsoft Exchange cria um log. Se o seu ambiente tiver um grande número de caixas de correio e você tiver backups incrementais diários agendados, o espaço em disco disponível será reduzido rapidamente.

Além dos logs gerados pelo servidor quando uma operação de backup é executada, há muitos logs gerados diariamente pelo servidor Exchange. A menos que você limpe regularmente arquivos de log antigos, é muito comum que bancos de dados de caixas de correio sejam desmontados automaticamente e causem interrupções aos usuários com o erro 452 4.3.1 Erro de recursos insuficientes do sistema.

Solução

A maneira mais eficiente de resolver esse problema é limpar periodicamente logs antigos criados pelo servidor Exchange devido a backups e outras atividades normais. Como esses logs são criados pelo servidor Microsoft Exchange, eles não podem ser excluídos pelo RecoveryManager Plus.

Este artigo irá elucidar como você pode automatizar a limpeza de quaisquer arquivos de log de transações.

Aviso de isenção de responsabilidade: Esteja ciente de que o RecoveryManager Plus não cria nenhum log diretamente no seu servidor Exchange nem exclui logs existentes. Este artigo explica como você pode limpar automaticamente os logs que foram e serão criados pelo seu servidor Exchange.

Etapa 1: Criação do script do PowerShell necessário

  1. Crie um script do 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)
    Observação 1: Neste script de exemplo, fornecemos o valor 2 na linha 7 do script. Dependendo do valor fornecido aqui, os logs anteriores ao número de dias do valor fornecido serão excluídos. Você pode modificar o valor para qualquer número, dependendo da frequência de backup incremental configurada. Se você tiver um agendador diário, recomendamos que forneça o valor 1. Da mesma forma, use os valores 7 e 31 se a frequência de backup incremental for semanal e mensal, respectivamente.
    Observação 2: Se você instalou o Exchange em um diretório diferente em vez do caminho padrão, forneça o caminho na linha 10 do script. Dependendo da versão do seu Servidor Exchange, o valor ../V15/... deve ser alterado para o número relevante. Se você deseja limpar periodicamente outros logs em seu sistema, adicione a localização dos logs no final de $LogPaths separados por vírgula.
  2. Armazene o script como CleanupLogs.ps1 e coloque-o na pasta C:\Scripts\. Se você não tiver uma pasta Scripts, crie uma na unidade C:\.

Etapa 2: Automatize o procedimento de limpeza de log usando o Agendador de tarefas

  1. Iniciar Agendador de tarefas

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

  2. Clique em Biblioteca do agendador de tarefas no painel esquerdo e clique em Nova pasta no painel direito. Nomeie a pasta de RecoveryManager Plus e clique em OK.

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

  3. Clique na pasta do Exchange recém-criada no painel esquerdo e clique em Criar tarefa no painel esquerdo.

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

  4. Uma janela Criar tarefa é exibida.
  5. Clique na guia Geral.
  6. No campo Nome, insira EWSLogsCleanup.
  7. Mas opções de segurança,
    • Clique no botão Alterar usuário ou grupo e selecione SISTEMA.
    • Habilite Executar com os privilégios mais altos.
    • Selecione Configurar para Servidor Windows 2016 caso você tenha um Servidor Windows 2016. Se você tiver uma versão diferente do Servidor Windows, selecione a versão apropriada.

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

  8. Clique na guia Gatilhos e clique em Novo.

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

  9. Na seção Configurações, selecione Diariamente e forneça o horário em que você deseja que a limpeza do log seja executada no campo Início. Certifique-se de que esteja Habilitado e clique em OK.
    Observação: Neste exemplo, selecionamos Diariamente. No entanto, se você programou o RecoveryManager Plus para realizar backups incrementais semanais ou mensais, poderá alterá-lo adequadamente.

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

  10. Clique na guia Ações e clique em Nova.

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

  11. Na seção Configurações,
    • Selecione PowerShell.exe no campo Program/script.
    • Insira -ExecutionPolicy Bypass C:\Scripts\CleanupLogs.ps1 no campo Adicionar argumentos (opcional).
    • Clique em OK.

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

  12. Clique em OK.

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

A tarefa foi agendada e seus logs EWS do Exchange serão apagados no horário e frequência especificados.

Etapa 3: Executar e testar manualmente a tarefa de limpeza de logs do Exchange

  1. Clique na tarefa criada CleanupLogs no painel do meio e clique em Executar no painel direito.
  2. Você pode verificar o status da última operação executada na coluna Resultado da última execução no painel do meio.

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

  3. Verifique se a tarefa CleanupLogs limpou os logs nas seguintes pastas.
    C:\Program Files\Microsoft\Exchange Server\V15\Logging\Ews\
    Observação: Se você adicionou logs adicionais para serem limpos usando o script (linha 10 do script), verifique se esses logs também foram limpos com êxito.
Observação: Esteja ciente de que o RecoveryManager Plus não cria nenhum log diretamente no seu servidor Exchange nem exclui logs existentes. Este artigo explica como você pode limpar logs que foram e serão criados pelo seu servidor Exchange.

Precisa de mais ajuda?

Preencha este formulário e entraremos em contacto consigo imediatamente.

Solicitar suporte

  •  
  • *
     
  • *
     
  • *
     
  • Clicando em 'Enviar', você concorda com o processamento de dados pessoais, de acordo com a Política de Privacidade.

"Obrigado por enviar o seu pedido.

Nossa equipe de suporte técnico entrará em contato com você o o mais rápido possível."