Después de implementar Exchange, es posible que observe que el espacio libre en disco comienza a disminuir muy rápidamente. Además del crecimiento de las bases de datos de los buzones de correo, los distintos registros ocupan mucho espacio en los servidores de Exchange. El problema de los tamaños de registro grandes es especialmente notable en las versiones que comienzan con Exchange 2013. A menos que esté utilizando alguna solución para limpiar archivos de registro antiguos, es muy común que las bases de datos de los buzones de correo se desmonten y el servicio de Exchange no esté disponible para los usuarios debido a los registros de Exchange ocupando todo el espacio disponible en disco (a menudo acompañado por el error 452 4.3.1 Insufficient system resources). En este artículo, veremos diferentes formas de limpiar, truncar y mover archivos de registro en Exchange Server 2013/2016/2019.
¿Cómo truncar / purgar registros de transacciones en Exchange?
Los registros de transacciones de las bases de datos de los buzones de correo son uno de los elementos de Exchange más importantes. Por ejemplo: al enviar / recibir un mensaje de correo electrónico, Exchange primero escribe la información en el archivo de registro de transacciones y solo entonces guarda el elemento directamente en la base de datos del buzón. Los registros transaccionales contienen todas las operaciones que se realizan en la base de datos y son extremadamente importantes para la recuperación de la base de datos del buzón dañada. Un solo archivo de registro de transacciones tiene un tamaño de 1 MB y puede haber miles de ellos en la carpeta de la base de datos del buzón (su número depende de la actividad de los usuarios en la base de datos del buzón).
Hay varias formas de limpiar los registros de transacciones en Exchange:
- Realice copias de seguridad periódicas de las bases de datos de su buzón de Exchange. Después de una copia de seguridad correcta, los registros de transacciones que ya no son necesarios para restaurar la base de datos se purgan automáticamente. Utilice cualquier solución de copia de seguridad de Exchange moderna (Exchange solo admite copias de seguridad basadas en Volumen sombra copia, VSC). Incluso puede utilizar la función de copia de seguridad de Windows Server incorporada (consulte el artículo);
- Habilite el Registro circular para sus registros de transacciones. Cuando el registro circular está habilitado, el registro de transacciones se purga inmediatamente después de que las transacciones se hayan aplicado a la base de datos. Puede habilitar el registro circular a través de EAC (habilitar el registro circular en las propiedades de la base de datos del buzón) o usando PowerShell:
Set-MailboxDatabase mbxDBname1 -CircularLoggingEnabled $true(para aplicar los cambios, debe desmontar y montar la base de datos del buzón); - Mueva la base de datos de Exchange con registros de transacciones a otra unidad grande. De forma predeterminada, cuando instala Exchange, la primera base de datos de buzones de correo se guarda en la carpeta C: Archivos de programa Microsoft Exchange Server …. Es aconsejable mover las bases de datos de los buzones de correo desde la unidad del sistema C :. Para hacer esto, use el Move-DatabasePath cmdlet. Por ejemplo, para mover la base de datos y los registros de transacciones a la unidad M:, ejecute el comando:
Move-Databasepath “MDB1” –EdbFilepath “M:DBMDB1databasesmdb1.edb” –LogFolderpath “M:DBMDB1logs”
Registros de la base de datos de cola de correo en Exchange 2013/2016/2019
La base de datos de colas Mail.que almacena temporalmente los mensajes en espera de la siguiente etapa de procesamiento. Todos los elementos de cada cola son procesados por el servidor de transporte en un orden específico. La base de datos de la cola es una base de datos ESE normal. Las colas se ubican solo en los servidores de transporte de buzones o perimetrales (aquí depende de la versión de Exchange, ya que la arquitectura es diferente en 2013, 2016 y 2019). La ubicación de la base de datos de la cola y sus registros transaccionales se especifica en el archivo de configuración XML % ExchangeInstallPath% Bin EdgeTransport.exe.config (comprobar el QueueDatabasePath y QueueDatabaseLoggingPath parámetros). Si la base de datos de la cola y sus registros transaccionales ocupan mucho espacio, puede moverla desde el directorio predeterminado %ExchangeInstallPath%TransportRolesdataQueue a otra unidad (para obtener información bastante detallada sobre cómo mover la base de datos de la cola, consulte Cambiar la ubicación de la base de datos de la cola.)
¿Cómo mover registros de transporte en Exchange Server?
Los registros de transporte de Exchange almacenan información sobre todos los mensajes procesados por el servicio MSExchangeTransport. Para obtener información detallada sobre cómo habilitar, deshabilitar o mover registros de transporte en Exchange, consulte el artículo Registros de transporte.
Puede verificar si los registros de transporte están habilitados en su servidor y sus rutas mediante los siguientes comandos de PowerShell (EMS):
Get-TransportService -Identity mun-exch1 | fl *logpath*
Get-TransportService -Identity mun-exch1 | fl *logenabled*
Los principales registros de transporte de Microsoft Exchange Server se almacenan en las siguientes carpetas de forma predeterminada:
| % ExchangeInstallPath% TransportRoles Logs Hub Connectivity |
| % ExchangeInstallPath% TransportRoles Logs MessageTracking (utilizado al buscar mensajes a través de Get-MessageTrackingLog) |
| % ExchangeInstallPath% Logging IRMLogs |
| % ExchangeInstallPath% TransportRoles Logs Hub ActiveUsersStats |
| % ExchangeInstallPath% TransportRoles Logs Hub ServerStats |
| % ExchangeInstallPath% TransportRoles Logs Hub ProtocolLog SmtpReceive |
| % ExchangeInstallPath% TransportRoles Logs Hub Routing |
| % ExchangeInstallPath% TransportRoles Logs Hub ProtocolLog SmtpSend |
| % ExchangeInstallPath% TransportRoles Logs Hub QueueViewer |
| % ExchangeInstallPath% TransportRoles Logs Hub AgentLog |
Puede cambiar la carpeta para almacenar registros de envío / recepción SMTP (Protocolos) a través de EAC (Servidores -> servidores -> select_a_server -> Registros de transporte -> Registro de protocolo).

Puedes cambiar el Registro de seguimiento de mensajes camino a través de EAC.
Además, puede utilizar los enlaces simbólicos para redirigir de forma segura cualquiera de las carpetas de registro de transporte a otra unidad o incluso a una carpeta de red compartida (por ruta UNC). Para crear un enlace simbólico, use la herramienta mklink incorporada:
mklink /d "D:HubReceiveSMTPLogs" \filesServer1HubReceiveSMTPLog
Todo lo que queda es cambiar la ruta al directorio de registro usando el cmdlet:
Set-TransportService mun-exch1 –ReceiveProtocolLogPath “D:ReceiveSMTPLosg”
Por lo tanto, puede almacenar cualquier registro de transporte de Exchange en una carpeta de red compartida en un servidor remoto. Este método es adecuado para otros registros de Exchange.
Rotar y eliminar archivos de registro de IIS en Exchange
Los registros de IIS contienen información sobre las conexiones a los buzones de correo de Exchange a través de OWA y ActiveSync. Con el tiempo, los registros de IIS que los usuarios crean cuando acceden a Exchange pueden crecer demasiado, si no se controlan.
Puede limpiar automáticamente los registros antiguos de IIS. Puede realizar una tarea automática en el Programador de tareas de Windows que se ejecute todos los días y elimine los registros de IIS de más de 28 días:set-location c:inetpublogsLogFilesW3SVC1
foreach ($File in get-childitem) {
if ($File.LastWriteTime -lt (Get-Date).AddDays(-28)) {
del $File
}
}
Queda por crear una nueva tarea en el Programador de tareas, que debería ejecutar su script de limpieza de registro de PS1.
Puede ejecutar el script de PowerShell a través del Programador de tareas de la siguiente manera:
- Crear una tarea en el Programador de tareas
- Crear acción: iniciar un programa;
- En el programa de campo / script agregue:
C:WindowsSystem32WindowsPowerShellv1.0powershell.exe - En el campo agregue argumentos (opcional):
-command "c:psclear_iis_logs.ps1"

Si necesita conservar los registros de IIS antiguos para su posterior análisis y resolución de problemas, puede moverlos a otra ubicación (unidad):
- Abra el Administrador de IIS desde Herramientas administrativas y seleccione Sitio web predeterminado;

- Abierto Inicio sesión;
- Cambiar la ubicación predeterminada del registro (Directorio);

- Guarde los cambios y reinicie IIS. El siguiente archivo de registro se escribirá en la nueva ubicación.
También puede cambiar la ruta a los registros de IIS con PowerShell:Import-Module WebAdministration
Set-ItemProperty ‘IIS:SitesDefault Web Site’ -name logfile.directory "M:IISLogs"
Borrado de la carpeta de registro en Exchange
Una gran cantidad de registros de diferentes servicios de Exchange se almacenan en el Inicio sesión carpeta (por ejemplo, en Exchange 2013, es C: Archivos de programa Microsoft Exchange Server V15 Logging). Con el tiempo, pueden consumir una cantidad significativa de espacio en disco. De particular interés son los registros de diagnóstico y rendimiento en C: Archivos de programa Microsoft Exchange Server V15 Logging Diagnostics (con diagnósticos altamente detallados habilitados, pueden ocupar decenas de gigabytes).
Puede usar PowerShell para eliminar archivos de registro de Exchange antiguos en estas carpetas. La siguiente secuencia de comandos eliminará todos los registros de estas carpetas que tengan más de 21 días:
Get-ChildItem 'C:Program FilesMicrosoftExchange ServerV15Logging','C:inetpublogs' -Directory | gci -Include '*.log','*.blg' -Recurse | ? LastWriteTime -lt (Get-Date).AddDays(-21) | Remove-Item
Puede preferir eliminar solo los archivos de registro de diagnóstico:
Get-ChildItem 'C:Program FilesMicrosoftExchange ServerV15LoggingDiagnostics' -Directory | gci -Include '*.log','*.blg' -Recurse | ? LastWriteTime -lt (Get-Date).AddDays(-5) | Remove-Item
Puede agregar estos scripts de PowerShell a su Programador de tareas para borrar automáticamente los registros antiguos de Exchange.
Limpieza de registros de Exchange con secuencia de comandos de PowerShell
Puede unir todos los comandos anteriores para limpiar los registros antiguos de Exchange en un script de PowerShell que puede ejecutar según una programación:
$days = 14
$dirs=@(
"C:inetpublogsLogFiles",
"C:Program FilesMicrosoftExchange ServerV15Logging",
"C:Program FilesMicrosoftExchange ServerV15BinSearchCeresDiagnosticsETLTraces",
"C:Program FilesMicrosoftExchange ServerV15BinSearchCeresDiagnosticsLogs",
"C:Program FilesMicrosoftExchange ServerV15TransportRolesLogs"
)
Get-ChildItem $dirs -Recurse -File | Where-Object { $_.Name -like "*.log" -or $_.Name -like "*.blg" -or $_.Name -like "*.etl" } | Where-Object LastWriteTime -lt (Get-Date).AddDays(-$days) | Remove-Item -ErrorAction "SilentlyContinue"





