Qué sucede con la información de un OST luego de restaurar una base de datos de Exchange más antigua?

Recientemente recibo la siguiente consulta:

Remitente:  U.A.

Asunto: Duda OST y EDB restaurada más vieja. ¿qué ocurre? se sincroniza la EDB con los correos más recientes del ost o se eliminan de este?

En el caso de que por alguna razón se me corrompa la EDB y tenga que restaurar de un backup, ¿qué va a pasar con los usuarios que tienen OST con mensajes más nuevos que los de la EDB recuperada?

La realidad es que la respuesta no es tan sencilla, en este artículo vamos a ver qué puede implicar esto.

Para empezar, aclarar que únicamente Outlook en modo cache utiliza un archivo OST para almacenar la información localmente. El usar Outlook en modo cache ofrece varias ventajas por ejemplo desde el punto de vista de tráfico en la red.

Volviendo a la consulta, lo primero a considerar es que deberíamos tomar las medidas necesarias para evitar la situación donde dependamos de la información almacenada en los OST. Para esto tenemos varias posibilidades, por ejemplo:

1. A partir de Exchange 2010 es bastante accesible contar con Alta Disponibilidad del correo y de ser posible esta sería la recomendación. Esto implica la creación de un DAG y replicación de bases para redundancia de los datos.

2. Si no se cuenta con alta disponibilidad la recomendación sería separar bases de datos de logs de transacciones. De esta manera si se pierde la unidad que contiene el EDB (archivo de la base) es posible restaurar una base de datos “vieja” y aplicando los logs dejar la base actualizada. Esto no sería una posibilidad si configuramos Circular Logging en las bases de datos.

3. Si tenemos el EDB pero no los logs es probable que sea posible reparar la base y en este caso potencialmente contaríamos con la información actualizada. Si bien esto solo sería recomendable en un caso extremo, podría ser la única posibilidad. Para reparar el EDB usamos Eseutil con el parámetro “/p”. Si vamos por este camino la recomendación luego de montar la base es crear una nueva base de datos y mover los buzones a esta. No es recomendable dejar una base reparada en producción.

Asumiendo que igualmente no nos quede otra alternativa que recuperar la información desde el cache del Outlook (OST) tener en consideración que el proceso puede resultar tedioso, requiere intervención por parte del usuario y el resultado puede variar dependiendo de varios factores.

Así que empecemos.


Escenario de punto de partida

Las pruebas detalladas en este artículo fueron realizadas en un ambiente de laboratorio con un servidor con Exchange 2016 y un cliente con Outlook 2013. Si bien es probable que el comportamiento sea  similar en otras versiones de Exchange, la única forma de asegurarlo sería probándolo.

Cliente Outlook

En el cliente Outlook se crearon 2 carpetas; “Carpeta1” en la raíz del buzón y “Carpeta 2” como subcarpeta de la bandeja de entrada. Tanto en la bandeja de entrada como en estas carpetas se incluyeron correos:

Recuperar información desde OST luego de restaurar una base de datos de Exchange más antigua

Esta información la validamos desde el shell de Exchange con Get-MailboxFolderStatistics, en este caso nos interesa el nombre de las carpetas y la cantidad de elementos:

Get-Mailbox usuariotest | Get-MailboxFolderStatistics | FT name,itemsinfolder

Recuperar información desde el cache de Outlook luego de restaurar una base de datos de Exchange más antigua

Vemos que el usuario “usuariotest” tiene 1 elemento en cada carpeta (Carpeta 1 y 2) y 0 elementos en Elementos enviados.

Ya con el usuario de pruebas preparado estamos listos para avanzar. Para esto realizamos un respaldo completo de la base de datos siguiendo los pasos del siguiente artículo:

Cómo hacer un respaldo completo de las bases de datos de Exchange?

Luego de haber respaldado la base de datos generamos más actividad en la casilla de “usuariotest”.

En este caso se enviaron 2 correos a bandeja de entrada y se crearon 2 carpetas adicionales; «Carpeta 4» debajo de la bandeja de entrada y «Carpeta 3» en la raíz del buzón:

Recuperar correos desde OST luego de restaurar un EDB más antiguo

Esto  mismo lo verificamos con Get-MailboxFolderStatistics:

Get-Mailbox usuariotest | Get-MailboxFolderStatistics | FT name,itemsinfolder

Sincronización de OST con base recuperada de Exchange

Vemos que nos figuran las nuevas carpetas y la bandeja de Elementos Enviados (sent items) ya no figura en 0.


Restauración de base de datos antigua

Así que estamos listos para restaurar la base de datos vieja.

Para asegurarnos que no quede ningún rastro de la base actual hacemos lo siguiente:

1. Desmontar la base de datos

2. Eliminar base y logs de transacciones

Una vez realizado esto, restauramos los datos (a la ubicación original) siguiendo las instrucciones del procedimiento a continuación:

Cómo restaurar una base de datos de Exchange?

Ya con la base restaurada repetimos Get-MailboxFolderStatistics:

Get-Mailbox usuariotest | Get-MailboxFolderStatistics | FT name,itemsinfolder

image

Vemos que ya no tenemos las carpetas 3 y 4 y tenemos la bandeja de elementos enviados en 0 nuevamente.


Prueba 1 – Recuperación de datos desde OST

Para esta primer prueba se mantuvo el cliente Outlook abierto durante todo el proceso.

Así que vamos al Outlook y en paralelo abrimos OWA:

Recuperar datos desde un OST cuando se restaura una base de datos de Exchange más antigua

Acá vemos varias cosas interesantes:

1. Las carpetas 3 y 4 desaparecieron del OST

2. La Bandeja de Entrada en el Outlook muestra elementos que solo se encuentran localmente, no estan sincronizados con Exchange y por eso no los vemos en OWA

3. Si vamos a Elementos Enviados en Outlook al igual que en el caso de la Bandeja de entrada los elementos se encuentran localmente (en el OST) pero no están sincronizados con Exchange (no los vemos en OWA):

Recuperar correos desde un OST cuando se restaura una base de datos más antigua de Exchange

Lo primero que me interesa saber en este caso es como hacer para que se sincronicen los elementos que aun se muestran en Outlook con el buzón de Exchange.

Veamos que sucede si creamos una carpeta temporal “Bandeja de Entrada 2” y movemos los elementos no sincronizados de la Bandeja de entrada y lo mismo para el caso de los elementos enviados con “Elementos enviados 2”:

Sincronización de OST de Outlook con base recuperada de Exchange

En este punto vemos que la información se sincroniza y se puede ver tanto en OWA como en Outlook.

Luego de confirmar que al mover un elemento este se sincroniza con Exchange movemos los elementos a las bandejas originales y posteriormente eliminamos las carpetas temporales:

Sincronización de OST de Outlook con base restaurada de Exchange

Ahora vemos los elementos sincronizados en la carpeta que corresponde.

Si repetimos Get-MailboxFolderStatistics vemos por ejemplo que ya figuran los correos de la carpeta de Elementos enviados:

Sincronización de cache de Outlook con base restaurada de Exchange


Prueba 2 – Recuperación de datos desde OST

En esta prueba repetimos el procedimiento pero esta vez con el cliente Outlook cerrado durante todo el proceso.

En este caso creamos las carpetas “Carpeta 5” y “Carpeta 6”, adicionalmente enviamos algunos correos.

Sincronización de OST de Outlook con EDB recuperado de Exchange

Ya con el cliente preparado repetimos lo mencionado en la sección de restauración:

  1. Desmontar la base
  2. Eliminar EDB y logs de transacciones
  3. Restaurar la base de datos
  4. Verificar la información restaurada con Get-MailboxFolderStatistics

Ahora abrimos el cliente Outlook y en paralelo el OWA:

Qué sucede con el OST de Outlook al sincronizar con una base recuperada de Exchange

Varias cosas interesantes:

1. En el cliente Outlook seguimos viendo las carpetas 5 y 6 (posteriores al backup)

2. En el OWA vemos sincronizada la carpeta que se encuentra en la raíz del buzón (Carpeta 6) pero no la subcarpeta de Bandeja de Entrada (Carpeta 5)

Confirmamos la información contenida en la carpeta que sincronizó:

Qué sucede con el cache de Outlook al sincronizar con una base recuperada de Exchange

Lo único que se sincroniza es la estructura pero no el contenido, por lo que seguimos viendo la información localmente pero en el OWA solo vemos la carpeta.

Si revisamos desde el shell con Get-MailboxFolderStatistics vemos que figura la Carpeta 6 con 0 elementos:

Get-Mailbox usuariotest | Get-MailboxFolderStatistics | ?{$_.name –like “carpeta*”} | FT name,itemsinfolder

Qué sucede con el cache de Outlook al sincronizar con una base recuperada de Exchange

Al igual que en el caso anterior si movemos los elementos, estos se sincronizan correctamente:

Qué sucede con el OST de Outlook al sincronizar con una base restaurada de Exchange


Conclusión

Se sincronizan los correos más recientes del OST con la base de datos de Exchange luego de haber sido restaurada?

En principio vemos que la información no se sincroniza y dependiendo de si el cliente Outlook se encuentra abierto o cerrado el comportamiento puede variar.

Es posible recuperar la información desde el OST?

“Depende”

Según las pruebas detalladas en este artículo depende de si el cliente Outlook se encuentra abierto o cerrado durante el proceso de recuperación:

  • Si Outlook está abierto, la información contenida en carpetas que no existen dentro del respaldo se pierde. Si por ejemplo tengo una carpeta «clientes» y esta carpeta no existía al momento de respaldar la base esta información desaparece del OST.
  • Si Outlook está cerrado, la información en todos los casos se mantiene localmente en el OST y moviendo los elementos es posible resincronizar (o complementando con PSTs)

Es posible usar el cache de Outlook (OST) como método de recuperación?

Claramente no sería un método confiable ni recomendado, pero teniendo en mente las consideraciones mencionadas puede servir frente al peor de los escenarios.


Por último, tener en cuenta que estas pruebas fueron ejecutadas en ambiente de laboratorio con versiones específicas y en este caso vimos un comportamiento diferente dependiendo de si Outlook estaba abierto o cerrado, si agregamos particularidades específicas a un entorno en producción potencialmente podríamos encontrar resultados diferentes.


About Daniel Núñez Banega

Consultor IT especializado en Microsoft Exchange, Active Directory y Microsoft 365.
Principales Certificaciones: Microsoft Certified Trainer | Microsoft Certified Solutions Expert | Microsoft Certified Systems Engineer | Microsoft Certified Systems Administrator | Microsoft Certified IT Professional | Microsoft Certified Technology Specialist | Microsoft 365 Certified: Enterprise Administrator Expert | Microsoft 365 Certified: Security Administrator Associate | Microsoft Certified: Cybersecurity Architect Expert | Comptia Pentest+ | EC-Council Certified Ethical Hacker Master

Reader Interactions

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *