Recuperar base de datos Exchange

31 mayo 2016
Josep Ma Solanes 0

Como recuperar una base de datos de Exchange sin una copia de seguridad, aparte de la pérdida segura de todo el correo electrónico, no es una tarea fácil. No basta volver a crear una base de datos nueva, también hay que recrear los buzones del propio sistema de Exchange. Estos buzones están asociados a unos usuarios del Active Directory concretos según la edición o ediciones de Exchange que disponemos y que, normalmente, se encuentran dentro de la Unidad Organizativa Users. Estos usuarios son:

Para los buzones de servicio:

  • SystemMailbox{1f05a927-ffd5-45ea-b50a-60ac5a4fa8e1} – Esta cuenta es un poco especial, siempre empieza por 1f05a927, pero el resto es aleatorio.
  • SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}
  • SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}
  • Migration.8f3e7716-2011-43e4-96b1-aba62d229136
  • FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042

Buzón de detección:

  • DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852}

Buzón de auditoría, sólo en Exchange 2016:

  • SystemMailbox{8cc370d3-822a-4ab8-a926-bb94bd0641a9}

 

Iniciando una consola PowerShell de administración de Exchange, ya sea 2013 o 2016, se puede validar en que base de datos están ubicados estos buzones con el comando:

get-mailbox -arbitration

recuperar-base-de-dades-exchange-005

 

Destruir la base de datos de un servidor Exchange

Para entender lo que voy a hacer os pongo un poco en situación. Dispongo de un servidor de Active Directory. Un servidor Exchange 2013 con los buzones de usuarios y en producción. Y un servidor Exchange 2016, con su base de datos de buzones y perteneciendo a la misma organización de Exchange, terminado de desplegar en la infraestructura.
Recuperar-base-de-dades-exchange-diagrama

Recordar que las bases de datos se deben montar en discos aparte, separando los datos de los logs. Sin embargo, en este ejemplo y para simplificarlo, tengo los datos y los logs sobre el mismo disco duro.

Para ver correctamente el efecto, he desplazado el buzón de un usuario a la nueva base de datos de Exchange 2016 a la que borraremos y para practicar un poco de deportes de riesgo, este buzón es el del jefe.

Hacemos un poco el malote y simulamos una pérdida total de la base de datos de correos. Naturalmente, no os recomiendo hacer esta operación en un entorno en producción. Sólo en los casos justos y necesarios que hayamos tenido la desgracia de perder la base de datos.
Con el Explorador de Windows, se puede validar la ubicación de la base de datos (el nombre de la base de datos con extensión .EDB) y los archivos de log.

Recuperar-base-de-dades-exchange-008

Vamos a hacer limpio de papeles, botón derecho del ratón sobre la unidad y hacer clic en Formatear.

Recuperar-base-de-dades-exchange-009

Hacer clic en el botón Iniciar para realizar el proceso de formateado. Recordar que en caso de disponer de base de datos grandes el tamaño de asignación que sea lo más grande posible para optimizar el rendimiento.

Recuperar-base-de-dades-exchange-010

Confirmación de lo que se va a hacer. ¡Ojo que esto es serio! No continuéis si no estáis seguros de lo que vais a hacer. Hacer clic en el botón Aceptar.

Recuperar-base-de-dades-exchange-011

Advertencia que hay alguna aplicación utilizando la unidad, hacer clic en el botón .

Recuperar-base-de-dades-exchange-012

¡Nos acabamos de cargar una base de datos de buzones de Exchange! Hacer clic en el botón Aceptar para ver como ha quedado todo esto.

Recuperar-base-de-dades-exchange-013

Si accedemos al panel de control del Exchange, en el apartado de Servidores y Base de datos, mediante el servidor que no ha sufrido la desgracia, se visualiza la base de datos como desmontada y en un estado desconocido. En definitiva, no está.

Recuperar-base-de-dades-exchange-014

 

Recuperar la base de datos

Primero que todo, como no, hay que volver a crear los archivos de la base de datos. Basta con un intento de montar la que tenemos desmontada.

Desde el administrador de Exchange del servidor que tiene la base de datos montada, con el otro no podremos acceder al panel de control, seleccionar servidores y base de datos. Marcar la base de datos desmontada y hacer clic en el botón de más opciones y hacer clic en Montar.

Recuperar-base-de-dades-exchange-015

Confirmación para montar la base de datos, hacer clic en el botón Si.

Recuperar-base-de-dades-exchange-016

Confirmación para sobreescribir la base de datos, al no encontrar los archivos que necesita se puede confirmar tranquilamente para que los vuelva a crear desde cero. Hacer clic en el botón Aceptar.

Recuperar-base-de-dades-exchange-017

La base de datos se vuelve a montar, vacía, claro, pero en buena forma.

Recuperar-base-de-dades-exchange-018

Desde la consola PowerShell de administración de Exchange, lo comprobamos con:

get-mailboxdatabase

Comprobar que usuarios tienen el buzón perdido o afectado revisando la base de datos donde está alojado el buzón:

get-mailbox

 

Recuperar los buzones de sistema

Al perder la base de datos de Exchange se han perdido los buzones de sistema alojados en la misma base de datos, pero no las cuentas de usuario. Sin embargo, para evitar problemas de datos que puedan quedar huérfanos, y que en alguna ocasión me han dado más de un dolor de cabeza, recomiendo borrar las cuentas de estos usuarios. Sí, lo habéis oído bien, borrar las cuentas del Active Directory correspondientes a los usuarios de SISTEMA, ojo, no el jefe, de Exchange.

Desde la consola de Usuarios y Equipos de Active Directory, localizar las cuentas de sistema, normalmente en la unidad organizativa de Users, y eliminarlos con el botón Suprimir.

Recuperar-base-de-dades-exchange-019

Borradas las cuentas replicados los cambios en todos los servidores de Active Directory (repadmin /syncall), en el servidor de Exchange, cargar la ISO correspondiente de la versión instalada de Exchange 2013 o 2016. También se puede hacer con una versión superior, pero no inferior por compatibilidad con el esquema de Active Directory. Y ejecutar el comando de preparación del Active Directory para la instalación de Exchange Server:

setup /PrepareAD /IAcceptExchangeServerLicenseTerms

El asistente se encarga de volver a crear las cuentas en el Active Directory con la información correcta.

Comprobar que se han creado correctamente los usuarios de sistema de Exchange, desde la consola de PowerShell de Exchange.

Get-User -Filter {Name -like "*SystemMailbox*"}
Get-User -Filter {Name -like "Federated*"}
Get-User -Filter {Name -like "Migration*"}
Get-User -Filter {Name -like "Discovery*"}

Crear los buzones para estas cuentas. ¡Alerta el buzón de auditoría y descubrimiento que la creación es diferente!. Recordar que la cuenta SystemMailbox{8cc370d3* corresponde por instalaciones sólo con Exchange 2016:

Get-User -Filter {Name -like "*SystemMailbox*"} | ?{$_.Name -notlike "*8cc370d3*"} | Enable-Mailbox -Arbitration

Get-User -Filter {Name -like "Federated*"} | Enable-Mailbox -Arbitration

Get-User -Filter {Name -like "Migration*"} | Enable-Mailbox -Arbitration

Get-User -Filter {Name -like "Discovery*"} | Enable-Mailbox -Discovery

Get-User -Filter {Name like "*SystemMailbox{8cc370d3*"} | Enable-Mailbox -AuditLog

Una vez creadas, comprobar que todo está correcto con los comandos:

get-mailbox -Arbitration
get-mailbox -AuditLog
get-mailbox "discovery*"

Finalmente, para la correcta gestión de la Libreta de Direcciones fuera de línea, es importante revisar los valores del parámetro PersistedCapabilities:

get-mailbox -arbitration | fl Identity,Name, PersistedCapabilities

Para que todo sea correcto, debe aparecer alguna cosa parecida a:

Name : SystemMailbox{1f05a927-69f6-48e0-9255-0e19b34a5069}
PersistedCapabilities : {}

Name : SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}
PersistedCapabilities : {OrganizationCapabilityUMDataStorage}

Name : SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}
PersistedCapabilities : {OrganizationCapabilityUMGrammarReady, OrganizationCapabilityPstProvider,
 OrganizationCapabilityMessageTracking, OrganizationCapabilityMailRouting,
 OrganizationCapabilityClientExtensions, OrganizationCapabilityGMGen,
 OrganizationCapabilityOABGen, OrganizationCapabilityUMGrammar}

Name : Migration.8f3e7716-2011-43e4-96b1-aba62d229136
PersistedCapabilities : {OrganizationCapabilityManagement}

Name : SystemMailbox{8cc370d3-822a-4ab8-a926-bb94bd0641a9}
PersistedCapabilities : {}

Name : FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042
PersistedCapabilities : {}

Y los atributos correctos de msExchCapabilityIdentifiers:

get-mailbox -arbitration | %{Get-ADUser $_.distinguishedname -Properties *} |fl Name,msExchCapabilityIdentifiers

La respuesta correcta debe ser parecida a:

Name : SystemMailbox{1f05a927-69f6-48e0-9255-0e19b34a5069}
msExchCapabilityIdentifiers : {}

Name : SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}
msExchCapabilityIdentifiers : {41}

Name : SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}
msExchCapabilityIdentifiers : {46, 52, 51, 47, 44, 43, 42, 40}

Name : Migration.8f3e7716-2011-43e4-96b1-aba62d229136
msExchCapabilityIdentifiers : {48}

Name : SystemMailbox{8cc370d3-822a-4ab8-a926-bb94bd0641a9}
msExchCapabilityIdentifiers : {}

Name : FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042
msExchCapabilityIdentifiers : {}

 

¡Ya volvemos a tener la base de datos operativa!

 

¿Te ha gustado el artículo? Lo puedes compartir en las redes sociales. También puedes dejar tu opinión, comentario o sugerencia. ¡Gracias!

Similar Posts by The Author:

 

Deixar un comentari

Recorda que no es contestaran preguntes personals, només d´interés comú que ens enriqueixin a tots.
La teva adreça de correu electrònic no serà publicada. Els camps obligatoris estan indicats.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.