[Exchange Server 2016] – Cambiar de Ruta a un Mailbox Database y a su Registro de Transacciones (LOG) usando PowerShell.

0
2241
0
(0)

Hola Comunidad;
El día de hoy un cliente me ha solicitado un apoyo para mover sus Bases de Datos (MailBox Database) y la carpeta de registro de transacciones (Log) a un nuevo volumen, esto es debido que va a realizar un cambio en las LUNs de su servidor.

El cliente cuenta con un DAG (Database Availability Groups) y vamos a realizar este trabajo usando PowerShell, asi que empecemos.

Debemos de tener en cuenta que un DAG mantienen varias copias (puede estar en varios servidores) de una base de datos de Exchange para el Failover Automático en caso falle algún nodo.

Tenemos que ir paso a paso en esta tarea, deben de tener en cuenta que:

  • Las copias de seguridad serán removidas en todos los servidores destino.
  • Las bases de datos que se van a mover, serán desmontadas y los usuarios no podrán acceder a sus Mailbox correspondiente hasta que se termine todo el proceso.
  • Recomendable hacer este trabajo en horas donde no tenga mucho trafico de correo.
  • Las bases de datos deben de tener buena salud.
  • ¡MUCHA PACIENCIA!

Empecemos:

Como el cliente va a mover sus bases de datos y su registro de transacciones a nuevos volúmenes, el servidor destino deberá de tener (también) asignada los volúmenes con la misma letra del servidor origen, por ejemplo de la siguiente manera:

Ahora, debemos de identificar en que servidor activo se encuentra nuestra base de datos a mover, esto lo podemos identificar de manera gráfica usando el Centro de Administración de Exchange:

El servidor activo para este caso es el Servidor 1, es allí donde tenemos que abrir el Exchange Management Shell y comenzar a trabajar.

  1. Verificamos cuales son los valores de ReplyLag y TruncationLag (en caso se hayan configurado):
Get-MailboxDatabase NOMBREBDMAILBOX | Format-List *lag*

El valor 00:00:00 es el valor por defecto por lo que puedes omitir el paso 10. Si es que se muestra otro valor, tomar nota.

2. Deshabilitamos el registro circular de la Base de Datos:

Set-MailboxDatabase NOMBREBDMAILBOX -CircularLoggingEnabled $false

3. Removemos la copias de la Base de Datos en los servidores destinos, nos indicará que debemos de borrar los archivos manualmente en el servidor Destino:

Remove-MailboxDatabaseCopy -Identity NOMBREBDMAILBOX\SERVERDESTINO -Confirm:$False

4. Movemos la Base de Datos a los nuevos volúmenes:

Move-DatabasePath "MS_" -EdbFilePath "T:\Databases\MS_\MS_.edb" -LogFolderPath "Y:\LOGs\MS_"

5. Ahora, mientras esperamos a que termine el proceso en el Servidor 1, nos vamos al servidor destino (Servidor 2) donde se encontraba la copia del Mailbox y lo que vamos a hacer es copiar el EDB y el LOG en las nuevas rutas, esto con la finalidad de evitar sincronizar de nuevo.

Por ejemplo, aquí estoy copiando la carpeta Log del Volumen antiguo del Servidor 2:

Ahora, lo estoy pegando la carpeta Log de la Base de Datos en el nuevo Volumen del Servidor 2, recuerda que debes de mantener la misma estructura de carpetas (Importante)

Ahora, copiamos la carpeta donde se encuentra almacenado el EDB del Volumen antiguo del Servidor 2:

Pegamos la carpeta que contiene el EDB en el nuevo volumen del Servidor 2, siempre manteniendo la misma estructura de carpetas (Importante)

6. Luego que se ha terminado de copiar, regresamos al Servidor 1 y si es que el comando se ha terminado de ejecutar, verificamos que la Base de Datos se haya montado, para esto ejecutamos el siguiente comando:

Get-MailboxDatabase -Status -Identity "NOMBREBDMAILBOX" | ft Name, Server, Mounted -AutoSize

7. Ahora, agregamos nuevamente la copia de la Base de Datos:

Add-MailboxDatabaseCopy -Identity "NOMBREBDMAILBOX" -MailboxServer SERVIDORDESTINO -ActivationPreference 2

8. Nos dirigimos al Servidor Destino (Servidor 2) y reiniciamos los servicios de Microsoft Exchange Information Store y Microsoft Exchange Search.

9. Ahora, regresamos al servidor origen (Servidor 1) y habilitamos el registro circular:

Set-MailboxDatabase NOMBREBDMAILBOX -CircularLoggingEnabled $true

10. Configuramos de nuevo los valores de ReplyLag y TruncationLag:

Set-MailboxDatabaseCopy NOMBREBDMAILBOX\SERVIDORDESTINO -ReplayLagTime 00:00:00

Para fines de visualización, he especificado el valor de 00:00:00 con el parámetro -ReplayLagTime, recuerda que también puedes incluir -TruncationLagTime. No omitir este paso si tus valores son diferentes de 00:00:00.

11. Esperamos unos minutos y verificamos el estado de salud:

Get-MailboxDatabaseCopyStatus -Identity NOMBREBDMAILBOX

Listo, hasta aquí ya hemos movido la Base de Datos y hemos creado de nuevo el DAG con el servidor destino. Debes de tener en cuenta que es un proceso largo, te recomiendo que siempre tengas una copia de seguridad a la mano si en caso exista algún problema. Si es que te muestra algún mensaje de error no te desesperes, a veces debemos de tener paciencia.

Referencias:

Muchas Gracias!.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí