Uso de la base de datos de colas en servidores de transporte

 

Se aplica a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Última modificación del tema: 2007-08-21

Una cola es una ubicación temporal para hospedar mensajes que esperan a entrar en la próxima etapa de procesamiento. Cada cola representa un conjunto lógico de mensajes que procesa un servidor de transporte de Exchange en un orden específico. Las colas sólo existen en los equipos que tienen instalada la función del servidor Transporte de concentradores o la función del servidor Transporte perimetral.

Microsoft Exchange Server 2007 usa una sola base de datos del motor de almacenamiento extensible (ESE) para el almacenamiento de los mensajes en cola. Conocido antes como JET, el motor de almacenamiento extensible (ESE) es un método que define la API de bajo nivel en las estructuras subyacentes de las bases de datos en Exchange Server.

Los siguientes escenarios pueden tener como resultado un servidor de transporte de concentradores o un servidor de transporte perimetral que no responde con una base de datos de colas que contiene mensajes no entregados:

  • Un servidor de transporte de Exchange no funciona si hay mensajes no entregados en las colas. Además, no se puede volver a conectar el servidor en el momento adecuado.

  • El servidor de transporte de Exchange tiene una base de datos de colas fragmentada que crece tanto que consume todo el espacio disponible en la unidad de disco duro.

Puede mover la base de datos de colas y los archivos de registro de transacciones asociados a una ubicación temporal de un servidor de transporte de Exchange de destino, reparar la base de datos de colas, reemplazar la base de datos de colas existente en el servidor de transporte de Exchange de destino y, a continuación, iniciar la base de datos de colas reparada en el servidor de transporte de Exchange de destino. Este servidor de transporte de Exchange de destino puede estar en su organización de Exchange o en un bosque del servicio de directorio de Active Directory distinto.

Antes de empezar

Para llevar a cabo los siguientes procedimientos, la cuenta que use debe tener delegado lo siguiente:

  • Función de administrador de servidores de Exchange

Para ejecutar los siguientes procedimientos en un equipo que tiene instalada la función del servidor Transporte perimetral, debe iniciar sesión mediante una cuenta que sea miembro del grupo local de administradores en dicho equipo.

Para obtener más información sobre los permisos, funciones de delegación y los derechos necesarios para administrar Microsoft Exchange Server 2007, consulte Consideraciones sobre permisos.

Cuando realice tareas en la base de datos de colas y sus archivos asociados (por ejemplo, mover la base de datos de colas al servidor de destino o realizar una reparación y una desfragmentación sin conexión), debe comprobar que tiene los permisos correspondientes en la siguiente lista del directorio en que se encuentra la base de datos de colas:

  • Servicio de red: Control total

  • Sistema: Control total

  • Administradores: Control total

El servidor de transporte de Exchange de destino que seleccione para recibir la base de datos de colas recuperada debe tener los mismos service packs de Exchange 2007 y actualizaciones de seguridad instalados que el servidor de Exchange de origen.

En este caso, debe seleccionar un servidor de transporte de Exchange de destino para recibir la base de datos de colas recuperada que tiene la misma función del servidor de transporte que el servidor de origen. Puede que observe un comportamiento de entrega de mensajes inesperado si alguna de las siguientes condiciones es verdadera:

  • La base de datos de colas recuperada se inicia en un servidor de transporte de Exchange con una función de servidor distinta de la del servidor de origen.

  • La base de datos de colas recuperada se inicia en un servidor de transporte de Exchange ubicado en un bosque de Active Directory distinto.

Por ejemplo, los mensajes a la espera de ser entregados en una cola de entrega del buzón puede requerir ahora una entrega mediante una cola de entrega remota. Las direcciones que antes eran remotas ahora pueden ser locales, y las direcciones que antes eran locales pueden ser remotas. Prepárese para los mensajes que aparecen en la cola inalcanzable. Puede que tenga que reenviar los mensajes manualmente al categorizador. Para obtener información, vea Cómo volver a enviar mensajes a colas.

Recuperación de una base de datos de colas en un servidor de transporte de Exchange de destino

Los pasos básicos de la recuperación de la base de datos de colas son los siguientes:

  1. Mueva la base de datos de colas a una ubicación temporal del servidor de transporte de Exchange de destino.

  2. Realice una recuperación de la base de datos de colas mediante las Utilidades de la base de datos de Exchange Server (Eseutil.exe).

  3. Realice una desfragmentación sin conexión de la base de datos de colas con Eseutil.

  4. Prepare la base de datos de colas existente en el servidor de transporte de Exchange de destino para el reemplazo por la base de datos de colas recuperada.

  5. Inicie la base de datos de colas reparada en el servidor de transporte de Exchange de destino.

Movimiento de la base de datos de colas a una ubicación temporal del servidor de transporte de destino

De forma predeterminada, la base de datos de colas y los registros de transacciones se ubican en C:\Archivos de programa\Microsoft\Exchange Server\TransportRoles\data\Queue. La ubicación de la base de datos de colas y la ubicación de los registros de transacciones se configuran en el archivo de configuración de la aplicación EdgeTransport.exe.config, que se encuentra en C:\Archivos de programa\Microsoft\Exchange Server\Bin. El parámetro QueueDatabasePath controla la ubicación de los archivos de base de datos y el parámetro QueueDatabaseLoggingPath controla la ubicación de los registros de transacciones.

La base de datos de colas consta de los siguientes archivos:

  • Mail.que   El archivo de base de datos de colas.

  • Trn.chk   El archivo de punto de control.

El registro de transacciones consta de los siguientes archivos:

  • Trn.log   El archivo de registro de transacciones actual.

  • Trntmp.log   El siguiente archivo de registro de transacciones configurado que se crea por anticipado.

  • Trnnnn.log   Otros archivos de registro de transacciones que se crean cuando Trn.log alcanza su tamaño máximo según especifica el parámetro QueueDatabaeLoggingFileSize del archivo de configuración de la aplicación EdgeTransport.exe.config. El valor predeterminado es 5 MB.

  • Trnres00001.jrs   Archivo de registro de marcadores de posición.

  • Trnres00002.jrs   Archivo de registro de marcadores de posición.

  • Temp.edb   Aunque no es un archivo de registro de transacciones, este archivo comprobador del esquema de la base de datos de colas se ubica con los archivos de registro de transacciones.

Para mover la base de datos de colas al servidor de transporte de concentradores o al servidor de transporte perimetral

  1. Detenga el servicio de transporte de Microsoft Exchange del servidor de transporte de Exchange afectado por la base de datos de colas.

    • Escriba el siguiente comando en un símbolo del sistema o en el Shell de administración de Exchange:

      Net Stop MSExchangeTransport
      
  2. Mueva todos los archivos de la base de datos de colas y de registro de transacciones a un directorio temporal del servidor de transporte de concentradores de destino o el servidor de transporte perimetral. En este ejemplo, el directorio es: C:\QueueRecovery.

  3. Una vez que se repara el servidor de transporte de Exchange 2007 afectado, se crea un base de datos de colas nueva al reiniciar el servicio de transporte de Microsoft Exchange. Esto se puede producir en cualquier momento una vez que se han terminado de copiar los archivos de la base de datos de colas en el servidor de transporte de destino.

Para obtener más información acerca de los archivos de la base de datos de colas, vea Administrar la base de datos de cola.

Realización de una recuperación de la base de datos de colas con Eseutil

Antes de intentar iniciar la base de datos de colas en el servidor de transporte de destino, debe usar Eseutil para realizar una recuperación de la base de datos. Dado que la base de datos de colas usa un registro circular, no puede reproducir los registros de transacciones anteriores en la base de datos con el modo de restauración Eseutil /C. No obstante, puede recuperar la base de datos con el modo de recuperación Eseutil /R. Puede usar Eseutil para mantener y reparar la base de datos de colas sin conexión.

Nota

Eseutil se encuentra en C:\Archivos de programa\Microsoft\Exchange Server\Bin. Este directorio se define en la ruta. Por consiguiente, puede escribir el comando sin especificar la ruta completa.

El proceso de recuperación lee el archivo de punto de control y confirma las transacciones no confirmadas en el registro de transacciones para la base de datos de colas. Si no hay ningún archivo de punto de control, la reproducción se inicia con la entrada del archivo de registro más antigua disponible en el registro de transacciones.

Para recuperar una base de datos de colas con Eseutil

  1. En un símbolo del sistema o en el Shell de administración de Exchange, abra el directorio C:\QueueRecovery.

  2. Ejecute el siguiente comando:

    Eseutil /r Trn /d. /8
    

    Trn indica el nombre del archivo base de 3 caracteres. /8 establece un tamaño de página de base de datos de 8 kilobytes para una recuperación más rápida. /d. indica que la base de datos que se va a recuperar existe en el directorio actual.

    Nota

    La recuperación de la base de datos puede ser muy lenta en el caso de una base de datos de colas de gran tamaño.

Para obtener más información acerca de cómo usar Eseutil para la recuperación de bases de datos, vea Modo de recuperación Eseutil /R.

Realizar una desfragmentación sin conexión de la base de datos de colas con Eseutil

Una vez recuperada la base de datos de colas, se recomienda realizar además una desfragmentación sin conexión de la base de datos con el modo de desfragmentación Eseutil /D para mantener el buen funcionamiento general y el rendimiento de la base de datos de colas. Una desfragmentación sin conexión de una base de datos ESE recupera el espacio en blanco de la base de datos vacía y puede reducir el tamaño de los archivos de la base de datos.

Para realizar una desfragmentación sin conexión de la base de datos de colas con Eseutil

  1. En un símbolo del sistema o en el Shell de administración de Exchange, abra el directorio C:\QueueRecovery.

  2. Ejecute el siguiente comando:

    Eseutil /d mail.que
    

    Nota

    La desfragmentación de la base de datos sin conexión puede ser muy lenta en el caso de una base de datos de colas de gran tamaño.

Para obtener más información acerca de cómo usar Eseutil para una desfragmentación de la base de datos sin conexión, vea Modo de desfragmentación Eseutil /D.

Preparación de la base de datos de colas existente en el servidor de transporte de Exchange de destino para el reemplazo por una base de datos de colas recuperada

Puede sobrescribir la base de datos de colas en el servidor de transporte de Exchange de destino con la base de datos de colas recuperada. No obstante, eso elimina todos los mensajes existentes de las colas del servidor de transporte de Exchange de destino. Para iniciar de forma segura la base de datos de colas recuperada, debe seguir primero estos pasos en el servidor de transporte de Exchange de destino:

  1. Detenga el flujo de mensajes nuevos en las colas y permita la entrega de los mensajes existentes.

  2. Supervise las colas de entrega del buzón y las colas de entrega remota hasta que se hayan entregado todos los mensajes.

  3. Reenvíe o suspenda y exporte los mensajes de la cola inalcanzable que desee guardar.

  4. Reanude o exporte los mensajes de las colas de mensajes dudosos que desee guardar.

  5. Modifique el tiempo de espera de expiración del mensaje en el servidor de transporte de Exchange para conservar los mensajes de la base de datos de colas recuperada.

Para detener el flujo de mensajes nuevos en las colas del servidor de transporte de Exchange de destino y permitir la entrega de los mensajes existentes

  • En un símbolo del sistema o en el Shell de administración de Exchange, ejecute el siguiente comando:

    Net Pause MSExchangeTransport
    

Para supervisar las colas de entrega del buzón y las colas de entrega remota del servidor de transporte de Exchange de destino hasta entregar todos los mensajes

  • Use el Visor de cola o el cmdlet Get-Queue del Shell de administración de Exchange para supervisar las colas de entrega del servidor de transporte de Exchange de destino. Espere hasta que no quede ningún mensaje en las colas de entrega del servidor según se indica mediante un número de mensajes 0.

Para reenviar o suspender y exportar los mensajes de la cola inalcanzable del servidor de transporte de Exchange de destino que desee guardar

  1. Para reenviar los mensajes de la cola inalcanzable, ejecute el siguiente comando en el Shell de administración de Exchange del servidor de transporte de Exchange de destino:

    Retry-Queue -Identity "Unreachable" -Resubmit $True
    
  2. Use el Visor de cola para suspender los mensajes que desee exportar desde la cola inalcanzable.

  3. Para exportar todos los mensajes suspendidos de la cola inalcanzable a un directorio, con la nomenclatura de archivos de mensajes automática con el formato InternalMessageID.eml, ejecute el siguiente comando en el Shell de administración de Exchange:

    Get-Message -Queue "Unreachable" | Export-Message -Path "<ExistingLocalDirectory>"
    

Para obtener más información acerca de cómo reenviar mensajes, vea Cómo volver a enviar mensajes a colas.

Para obtener más información acerca de cómo suspender los mensajes, vea Cómo suspender mensajes.

Para obtener más información acerca de cómo exportar los mensajes, vea Cómo exportar mensajes desde colas.

Para reanudar o exportar los mensajes de la cola de mensajes dudosos del servidor de transporte de Exchange de destino que desee guardar

  1. Para reanudar los mensajes de la cola de mensajes dudosos, realice uno de los siguientes pasos:

    • En el Visor de cola, seleccione la cola de mensajes dudosos, seleccione un mensaje y, en el panel de acciones, seleccione Reanudar.

    • En el Shell de administración de Exchange, ejecute los siguientes comandos:

      Get-Message -Queue "Poison" | ft Identity
      Resume-Message <IdentityofPoisonMessage>
      
  2. Para exportar todos los mensajes suspendidos de la cola de mensajes dudosos a un directorio, con la nomenclatura de archivos de mensajes automática con el formato InternalMessageID.eml, ejecute el siguiente comando en el Shell de administración de Exchange:

    Get-Message -Queue "Poison" | Export-Message -Path "<ExistingLocalDirectory>"
    

Nota

La cola de mensajes dudosos contiene mensajes que pueden dañar el sistema Exchange 2007 tras un error del servidor. Los mensajes pueden ser realmente perjudiciales por su contenido o formato, o bien pueden ser víctimas de un agente escrito de forma incorrecta que provoca un error del servidor de Exchange al procesar mensajes supuestamente perjudiciales. Si no tiene seguridad por lo que respecta a los mensajes de la cola de mensajes dudosos, exporte los mensajes a archivos para poder examinarlos. Si decide quitar los mensajes de la cola de mensajes dudosos, debe hacerlo sin enviar ningún informe de no entrega (NDR). El NDR puede incluir el contenido del mensaje original. Los mensajes de la cola de mensajes dudosos ya se encuentran en estado suspendido. Por consiguiente, no tiene que suspenderlos antes de exportarlos. La cola de mensajes dudosos no se puede reenviar mediante el cmdlet Retry-Queue con el parámetro Resubmit. Para reenviar los mensajes de la cola de mensajes dudosos, use el Visor de cola para reanudar los mensajes o use el cmdlet Resume-Message.

Para obtener más información acerca de cómo reanudar los mensajes, vea Cómo reanudar mensajes.

Para modificar el tiempo de espera de expiración del mensaje en el servidor de transporte de Exchange de destino para conservar los mensajes de la base de datos de colas recuperada

  • Ejecute el siguiente comando en el Shell de administración de Exchange.

    Set-TransportServer -MessageExpirationTimeout <LongerTimeOutIntervalIndd.hh:mm:ssFormat>
    

    De forma predeterminada, los mensajes no entregados se devuelven al remitente con un NDR y se eliminan de la cola. Si se cumple alguna de las siguientes condiciones, debe aumentar el intervalo de tiempo de espera de expiración del mensaje:

    • La base de datos de colas que intenta recuperar no ha estado conectada durante más de dos días.

    • La base de datos de colas no ha terminado de entregar mensajes en dos días tras su recuperación.

    Esto impide que los mensajes se eliminen inmediatamente tras iniciar la base de datos de colas o cuando la base de datos reiniciada entrega los mensajes antiguos.

Para obtener más información acerca de la expiración de los mensajes, vea Administración de intervalos de reintento, reenvío y caducidad de mensajes.

Inicio de la base de datos de colas reparada en el servidor de transporte de Exchange de destino

Para iniciar la base de datos de colas recuperada en el servidor de transporte de Exchange de destino

  1. En un símbolo del sistema o en el Shell de administración de Exchange, ejecute el siguiente comando en el servidor de transporte de Exchange de destino:

    Net Stop MSExchangeTransport
    
  2. Sobrescriba todos los archivos de la base de datos de colas vacía y los archivos de registro de transacciones en el servidor de transporte de Exchange de destino con todos los archivos de "C:\QueueRecovery". De forma predeterminada, la base de datos de colas y los registros de transacciones se ubican en C:\Archivos de programa\Microsoft\Exchange Server\TransportRoles\data\Queue.

  3. En un símbolo del sistema o en el Shell de administración de Exchange, ejecute el siguiente comando:

    Net Start MSExchangeTransport
    

Tareas de configuración posteriores a la recuperación

Al iniciar la base de datos de colas recuperada en el servidor de transporte de Exchange de destino, los mensajes deben empezar a fluir. En la siguiente lista se describen los posibles problemas que pueden surgir:

  • Prepárese para procesar los mensajes de la cola de mensajes dudosos si la base de datos de colas recuperada procede de un servidor de Exchange 2007 que ha generado un error. Debe decidir para cada mensaje de la cola de mensajes dudosos si el mensaje es realmente la causa de que el servidor de Exchange 2007 haya generado un error o si el mensaje se ha incluido en la cola de mensajes dudosos innecesariamente. Puede decidir reanudar el mensaje o exportar el mensaje para examinarlo. Si tiene dudas acerca de la seguridad de un mensaje de la cola de mensajes dudosos, debe exportar el mensaje a un archivo para examinarlo. Si decide quitar mensajes de la cola de mensajes dudosos, debe hacerlo sin enviar un NDR. El NDR puede incluir el contenido del mensaje dudoso.

  • Prepárese para procesar los mensajes de la cola inalcanzable y de las colas de entrega bloqueadas en el estado de reintento. Debe reenviar estos mensajes manualmente.

  • Si decide quitar los mensajes con problemas de entrega, debe decidir si enviar un NDR al hacerlo. Si quita los mensajes y envía un NDR, los mensajes del NDR se deben entregar. Además, estos mensajes pueden presentar también problemas de entrega. Puede optar por quitar los mensajes problemáticos sin enviar un NDR. Para obtener más información acerca de cómo quitar un mensaje, vea Cómo quitar mensajes de colas.

  • Debe estudiar la posibilidad de conservar de forma permanente la base de datos de colas en el servidor de transporte de Exchange de destino o reemplazarla por una base de datos de colas nueva una vez que se hayan entregado todos los mensajes bloqueados. En cuanto inicie la base de datos de colas recuperada, los mensajes nuevos se incluyen en las colas como parte de una actividad de entrega de mensajes normal del servidor de transporte de Exchange. Si decide reemplazar la base de datos de colas por una copia nueva, debe seguir estos pasos:

    1. Pause el servicio de transporte de Microsoft Exchange para permitir la descarga de todos los mensajes existentes. Durante esta pausa, no se aceptará ningún mensaje nuevo.

    2. Detenga el servicio de transporte de Microsoft Exchange.

    3. Elimine todos los archivos de la base de datos de colas y todos los archivos de registro de transacciones.

    4. Inicie el servicio de transporte de Microsoft Exchange.

Para obtener más información

Para obtener más información al respecto, vea los siguientes temas: