Desfragmentar la base de datos del buzón de Exchange usando Eseutil /d PowerShell
Resumen: La desfragmentación de la base de datos Exchange elimina los fragmentos y organiza los datos o la información en un orden continuo que ayuda a garantizar la salud de la base de datos y mejorar el rendimiento de lectura. También reduce la base de datos mediante la eliminación del "espacio en blanco", lo que ayuda a reducir el tamaño de la base de datos y a ahorrar espacio en la unidad de disco. En este blog, hemos compartido los pasos para desfragmentar y optimizar la base de datos de buzones de Exchange utilizando los cmdlets de PowerShell.
En Microsoft Exchange Server, el tamaño de la base de datos aumenta a medida que se crean más buzones y los usuarios generan datos al enviar/recibir correos electrónicos.
Cuando se eliminan algunos elementos de correo de los buzones o se eliminan buzones de las bases de datos de Exchange, el almacenamiento libre dejado por los elementos eliminados no se recupera.
Por ejemplo, si el tamaño de la base de datos es de 10 GB y elimina un buzón de ~2 GB, la base de datos seguirá siendo de 10 GB. El espacio de 2GB que deja el buzón eliminado se denomina ‘Espacio en Blanco‘.
Por lo tanto, es importante y una buena práctica recuperar el espacio en blanco desfragmentando la base de datos de Exchange. Reducirá el tamaño de la base de datos y ayudará a prevenir problemas de corrupción de la base de datos causados por un almacenamiento bajo o nulo.
¿Por qué desfragmentar la base de datos de buzones de Exchange?
La desfragmentación es un proceso de limpieza de todo el almacenamiento no utilizado o de recuperación de espacio en blanco de la base de datos, eliminando fragmentos de datos y organizando la información en las regiones contiguas para un acceso rápido.
Desde el punto de vista del rendimiento, la desfragmentación (Eseutil /d) hace que el acceso a la base de datos sea más rápido, ya que Exchange Server no tendría que procesar un archivo grande en memoria o abrir y buscar el archivo, lo que puede incurrir en un gran número de entradas/salidas del almacenamiento para nada.
Otra cosa es el funcionamiento del servidor. Como sabrás, Exchange Server es sensible a la salud de la base de datos si no hay almacenamiento o escasea.
Las bases de datos tienden a llenar el disco duro con espacio no utilizado o archivos de registro. Si no se aumenta el almacenamiento o no se purgan los registros, se puede dañar la base de datos y provocar su corrupción. Como resultado, la base de datos de Exchange se desmontará, rompiendo la conectividad cliente-servidor e impidiendo a los usuarios enviar o recibir correos electrónicos.
Por lo tanto, sería conveniente establecer un calendario para comprobar el estado de la base de datos periódicamente, en función del tamaño y el número de usuarios. Una base de datos dañada puede causar pérdidas de datos, de servicio y de negocio.
Aspectos a tener en cuenta antes de desfragmentar la base de datos del buzón de Exchange con Eseutil /d
Antes de ejecutar el comando Eseutil /d para desfragmentar la base de datos Exchange, asegúrese de lo siguiente:
- Para desfragmentar una base de datos de Exchange Server, es necesario desmontar la base de datos. Lamentablemente, esto significa que los usuarios no podrán acceder a sus buzones durante esta operación.
- La desfragmentación de la base de datos Exchange sólo debe ejecutarse fuera del horario de oficina, ya que puede tardar algún tiempo en finalizar (dependiendo del tamaño de la base de datos y del servidor/almacenamiento).
- Se recomienda encarecidamente realizar una copia de seguridad de la base de datos antes de desfragmentar, por si acaso.
- Asegúrate de que la unidad donde se almacena la base de datos tiene suficiente espacio de almacenamiento libre, que sea equivalente o mayor que el tamaño de la base de datos (preferiblemente 1,1x o 1,2x el tamaño de la base de datos). Si la capacidad de almacenamiento es insuficiente, esto podría causar un problema.
Para calcular el espacio necesario, debe comprobar el tamaño de la base de datos en su Exchange Server que requiere desfragmentación. Para ello, puede utilizar el cmdlet de PowerShell Get-MailboxDatabase, como se indica a continuación.
Get-MailboxDatabase -Status | ft name, database size, availablenewmailboxspace -auto
El resultado mostrará el nombre de la base de datos, el tamaño de la base de datos y el espacio disponible para el nuevo buzón.
Como puede ver en el ejemplo anterior, la base de datos del buzón 0954395982 tiene un tamaño de 247,9 MB.
Por otro lado, también tiene 74,34 MB de espacio en blanco. Por supuesto, se trata de una base de datos pequeña con unos pocos buzones. Pero en bases de datos más grandes, la desfragmentación (Eseutil /d) mejorará significativamente el rendimiento de los discos y el funcionamiento del servidor.
Puede utilizar las siguientes fórmulas para calcular el espacio libre total necesario para desfragmentar la base de datos de buzones de Exchange.
- (DatabaseSize) – (AvailableNewMailboxSpace) = (Tamaño real de la base de datos).
- (Tamaño real de la base de datos) X 1,1= (Espacio necesario para la desfragmentación).
250MB – 75MB = 175MB
175MB X 1.1 = 192.5MB – es el espacio libre mínimo requerido para desfragmentar la base de datos de buzones de Exchange.
NOTA: Hemos redondeado 247,9MB como 250MB en los cálculos anteriores.
Pasos para desfragmentar la base de datos de buzones de Exchange utilizando el cmdlet Eseutil /d
Para desfragmentar y optimizar una base de datos de buzones de Exchange, siga estos pasos:
Paso 1: Inicie Exchange Management Shell (EMS).
Paso 2: Vaya a la ubicación de la carpeta donde se encuentra la base de datos que necesita desfragmentación utilizando el comando cd. Por ejemplo
cd "C:\Archivos de Programa\Microsoft\Exchange Server\V15\Mailbox\Mailbox Database 0954395982"
Paso 3: Ejecute el siguiente comando para desmontar la base de datos de buzones de Exchange.
Desmontar-base de datos <nombre de la base de datos>
Paso 4: Una vez desmontada la base de datos, utilice el siguiente EseUtil comando para iniciar el proceso de desfragmentación.
Eseutil /d "Base de datos del buzón 0954395982.edb" /t "temp_0954395982.edb"
Paso 5: Después de la desfragmentación (que puede llevar tiempo en función del rendimiento del servidor/almacenamiento y del tamaño de la base de datos), vuelva a montar la base de datos mediante el cmdlet de PowerShell Mount-Database.
Mount-Database "Base de datos de buzones 0954395982"
Paso 6: Después de montar la base de datos y probar la conectividad de los usuarios afectados, puede comprobar cómo se ha desfragmentado la base de datos volviendo a comprobar el tamaño de la base de datos mediante el cmdlet de PowerShell Get-MaiboxDatabase.
Get-MailboxDatabase -Status | ft name, databasesize, availablenewmailboxspace -auto
Aquí puede ver que la base de datos se ha reducido de 247,9 MB a 56 MB con sólo 512 KB de espacio en blanco.
Para concluir
Todo va bien con la operación de desfragmentación si no ha incurrido en ningún problema ni ha encontrado ningún mensaje de error durante la operación. Sin embargo, hay varios factores que pueden corromper la base de datos antes y durante el proceso de desfragmentación (Eseutil /d). Por ejemplo, si no ha calculado el espacio libre o no ha dejado espacio suficiente para que se ejecute el proceso, esto podría provocar un almacenamiento bajo o completo que detendría el servidor y corrompería la base de datos.
En tales situaciones, para cualquier administrador de Exchange, una herramienta de recuperación de Exchange de terceros como Stellar Repair for Exchange resulta muy útil para salvar la base de datos cuando se produce un desastre. Con Stellar Repair for Exchange, puede reparar cualquier base de datos de Exchange corrupta o dañada de cualquier versión y recuperar datos a PST u otros formatos. Con este software, también puede exportar directamente los buzones de correo de la base de datos de Exchange reparada a una base de datos activa en su Exchange Server y un inquilino de Microsoft 365.