Compartir vía


Escala horizontal de las bases de datos de BizTalk Server

Para proporcionar alta disponibilidad para las bases de datos de BizTalk Server, configure dos equipos que ejecutan SQL Server en un clúster de Windows. Estos equipos pueden ejecutarse en una configuración activa,activa/pasiva o activa/activa/pasiva (requiere tres equipos) para la redundancia y pueden almacenar datos en una unidad compartida (por ejemplo, una matriz de disco SCSI RAID 1+0) o una red de área de almacenamiento (SAN).

Si el servicio SQL Server deja de estar disponible por alguna razón, el clúster de base de datos transfiere los recursos del equipo activo al equipo pasivo. Durante este proceso de conmutación por error, las instancias del servicio BizTalk Server experimentan errores de conexión y se reinician automáticamente para conectarse de nuevo a las bases de datos. El equipo de base de datos en funcionamiento (antes el equipo pasivo) comienza a procesar las conexiones de base de datos después de asumir los recursos durante la conmutación por error.

La agrupación en clústeres de las bases de datos BizTalk Server se describe en Agrupación en clústeres de bases de datos BizTalk Server 2. Esta sección se centra en el escalado horizontal de las bases de datos de BizTalk Server para proporcionar alta disponibilidad.

Proporcionar alta disponibilidad para la base de datos de Cuadro de mensajes de BizTalk

En esta sección se proporciona información sobre cómo configurar la base de datos de Cuadro de mensajes de BizTalk para lograr una alta disponibilidad.

Ejecutar varias bases de datos de cuadro de mensajes

Para mejorar la escalabilidad de las bases de datos de BizTalk Server y abordar el uso elevado de la CPU en el equipo de SQL Server de base de datos de Cuadro de mensajes, puede configurar BizTalk Server para almacenar datos en varias bases de datos de Cuadro de mensajes. Cree la primera base de datos cuando ejecute el Asistente para configuración. Esta base de datos es la base de datos de cuadro de mensajes principal. En una implementación de BizTalk Server, hay solo una base de datos de cuadro de mensajes principal. Esta base de datos contiene la información de suscripción principal y enruta los mensajes hacia la base de datos de cuadro de mensajes correspondiente. Normalmente, desea dedicar la base de datos maestra messageBox para realizar el enrutamiento solo y permitir que las demás bases de datos de Cuadro de mensajes realicen el procesamiento. Para que una base de datos de Cuadro de mensajes solo realice el enrutamiento, seleccione Deshabilitar nueva publicación de mensajes en las propiedades del Cuadro de mensajes en la consola de administración de BizTalk.

Un ejemplo del flujo de procesamiento de la base de datos messageBox es el siguiente:

  1. Cuando la base de datos maestra MessageBox recibe un nuevo mensaje de activación (una nueva instancia de un proceso empresarial o un mensaje de suscripción), la base de datos maestra messageBox distribuye el mensaje de activación a la siguiente base de datos de Cuadro de mensajes disponible. Por ejemplo, si tiene una base de datos de cuadro de mensajes principal y dos bases de datos de cuadro de mensajes, la base de datos de cuadro de mensajes principal enruta el primer mensaje de activación hacia la base de datos de cuadro de mensajes 1, el segundo mensaje de activación hacia la base de datos de cuadro de mensajes 2, el tercer mensaje de activación hacia la base de datos de cuadro de mensajes 1, y así sucesivamente en un modelo de operación por turnos. La base de datos de cuadro de mensajes principal utiliza lógica integrada para el equilibrio de carga y no necesita mecanismos de equilibrio de carga adicionales.

  2. Una vez que la base de datos de cuadro de mensajes principal enruta el mensaje de activación hacia una base de datos de cuadro de mensajes concreta (por ejemplo, la base de datos 1), el proceso empresarial pasa a la memoria y se ejecuta.

  3. Si el proceso de negocio tiene que esperar un mensaje y el tiempo de espera es superior a varios segundos, el proceso de negocio se conserva de nuevo en la base de datos de Cuadro de mensajes 1. El proceso de negocio está esperando un mensaje de correlación.

  4. Cuando el mensaje de correlación llega a la base de datos maestra messageBox, el motor de mensajes realiza una operación de búsqueda en la base de datos de la base de datos messageBox que contiene el estado del mensaje de correlación (en este ejemplo, Cuadro de mensaje 1). La base de datos maestra messageBox entrega el mensaje a la base de datos MessageBox que contiene el proceso de negocio.

  5. El proceso de negocio se devuelve a la memoria para continuar procesando hasta que finalice o hasta que tenga que esperar a otro mensaje de correlación.

    BizTalk Server almacena todos los estados en las bases de datos de cuadro de mensajes y cada una de estas bases de datos contiene información de estado de los diferentes procesos empresariales. Para mayor confiabilidad, debe agrupar todas las bases de datos de cuadro de mensajes, incluidas las bases de datos de cuadro de mensajes principal y secundarias.

    Para configurar varias bases de datos de Cuadro de mensajes, use la consola de administración de BizTalk Server para agregar los equipos que ejecutan SQL Server. Desde la perspectiva de administración, solo tiene que agregar nuevas bases de datos de cuadro de mensaje. BizTalk Server controla automáticamente la distribución por turnos de los mensajes de activación y envía mensajes de correlación a las bases de datos de cuadro de mensajes correctas.

    Si configura varias bases de datos messageBox en su entorno, debe crear un mínimo de tres bases de datos messageBox para el grupo de BizTalk Server y debe deshabilitar la publicación de mensajes en la base de datos maestra de Cuadro de mensajes. Esta recomendación se realiza porque agregar bases de datos messageBox adicionales incurre en una sobrecarga por parte de la base de datos maestra del cuadro de mensajes para enrutar los mensajes entre las bases de datos de cuadro de mensajes. Si solo configura dos bases de datos messageBox, la mayoría de las ventajas adquiridas por la base de datos de Cuadro de mensajes adicional se desplaza por la sobrecarga consumida por la base de datos maestra de Cuadro de mensajes para el enrutamiento de mensajes.

Importante

BizTalk Server almacena todos los estados en las bases de datos de cuadro de mensajes y cada una de estas bases de datos contiene información de estado de los diferentes procesos empresariales. Para mayor confiabilidad, debe agrupar todas las bases de datos de cuadro de mensajes, incluidas las bases de datos de cuadro de mensajes principal y secundarias.

Proporcionar alta disponibilidad a varias bases de datos de cuadro de mensajes

Aunque agregar bases de datos messageBox a la implementación de BizTalk Server mejora la escalabilidad, no proporciona alta disponibilidad porque cada base de datos de Cuadro de mensajes es única e independiente y es posiblemente un único punto de error para el entorno de BizTalk Server. Para agregar redundancia, se debe configurar un clúster de servidores para cada base de datos de cuadro de mensajes. BizTalk Server distribuye los datos entre varias bases de datos de cuadro de mensajes; por tanto, las bases de datos no comparten los datos ni proporcionan redundancia de ningún otro modo sin un clúster de servidores.

Proporcionar alta disponibilidad a la base de datos de seguimiento de BizTalk

En función de los requisitos particulares de la implementación, es posible que desee mejorar el rendimiento de las operaciones de seguimiento aislando la base de datos de seguimiento de BizTalk en un equipo diferente con SQL Server y creando un host de BizTalk aparte para alojar las operaciones de seguimiento. En la ilustración siguiente se muestra un host de seguimiento dedicado con dos instancias de host y bases de datos en clúster.

Escalado horizontal de las bases de datos de seguimiento

Si la implementación tiene un alto rendimiento e implica el seguimiento de gran cantidad de datos para estos mensajes, la sobrecarga por operaciones de seguimiento podría consumir gran cantidad de recursos en el equipo que ejecuta SQL Server. Si se produce esta situación y continúa una alta tasa de mensajes entrantes, BizTalk Server llega a un punto en el que no puede procesar nuevos mensajes porque los recursos necesarios para realizar un seguimiento de los mensajes son mayores que los recursos necesarios para ejecutar los demás componentes de BizTalk Server (como recibir mensajes y conservarlos en la base de datos de Cuadro de mensajes).

Para mejorar el rendimiento y la seguridad, se recomienda dedicar un host a las operaciones de seguimiento que no contenga otros elementos (como ubicaciones de recepción, orquestaciones o canalizaciones) y deshabilitar el seguimiento en los hosts de recepción, procesamiento y envío. Para proporcionar alta disponibilidad al host de seguimiento, cree más de una instancia de este host. Consulte Crear un nuevo host.

Para cada base de datos de Cuadro de mensajes, BizTalk Server usa solo una instancia de host de seguimiento para mover mensajes de la base de datos cuadro de mensajes a la base de datos de seguimiento de BizTalk (BizTalkDTADb). Si otros equipos ejecutan instancias del host de seguimiento, BizTalk Server escala automáticamente el control de cada base de datos de cuadro de mensajes a una instancia diferente del host de seguimiento. Si el número de bases de datos de cuadro de mensajes es mayor que el número de instancias del host de seguimiento, una o varias instancias del host de seguimiento recibirán más de una base de datos de cuadro de mensajes.

Para proporcionar alta disponibilidad a la base de datos de seguimiento de BizTalk, utilice la Organización por clústeres de Windows para configurar dos equipos de base de datos que ejecuten SQL Server en una configuración activa/pasiva.

Proporcionar una alta disponibilidad a las bases de datos de BAM

La supervisión de actividades empresariales (BAM) proporciona visibilidad sobre los procesos empresariales independientemente de la implementación de TI o en una implementación heterogénea de TI. Las bases de datos de BAM de SQL Server (base de datos de esquema de estrella de BAM , base de datos de importación principal de BAM y base de datos de archivo de BAM) y la base de datos de análisis de BAM almacenan los datos de actividad empresarial que no son los de supervisión del funcionamiento. En el diagrama siguiente se muestra la infraestructura de base de datos bam.

Infraestructura de base de datos bam

Para garantizar que la infraestructura de BAM tiene una alta disponibilidad, realice lo siguiente:

  • Agrupe la base de datos de importación principal de BAM y la base de datos de análisis de BAM. La base de datos de importación principal de BAM es el centro del sistema de Supervisión de la actividad económica. Por tanto, es importante aportar a esta base de datos una alta disponibilidad utilizando Organización por clústeres de Windows y seguir las dos recomendaciones siguientes para evitar que se llene esta base de datos. La base de datos de análisis de BAM es una base de datos de Analysis Services que almacena los datos que utilizan los analistas empresariales para crear agregaciones de actividad y cubos OLAP y, por tanto, cualquier tiempo de inactividad de esta base de datos afecta a la productividad. Aunque no es necesario agrupar la base de datos de archivo de BAM, se recomienda supervisar el registro de eventos para detectar errores cuando se ejecuten los paquetes de SQL Server Integration Services (SSIS) para asegurarse de que los datos se han transferido correctamente y para supervisar el tamaño de la base de datos para que pueda reemplazarlo antes de que se rellene.

  • Defina una ventana en línea. Para permitir un mejor rendimiento y evitar tiempos de inactividad, BAM particiona los datos de la base de datos de importación principal de BAM en tablas en función de la marca de tiempo cuando se completó la actividad. BAM consigue esto intercambiando con regularidad la tabla llena con otra tabla vacía de idéntico formato. Una vez que BAM hace esto, las demás actividades finalizadas pasan a la nueva partición (tabla), mientras que BAM mantiene las particiones antiguas durante el tiempo definido en la ventana en línea. Debe definir una ventana en línea para garantizar que el número de particiones de la base de datos de importación principal de BAM no llegue a ser muy alto. Para obtener más información sobre cómo programar ventanas en línea, vea Archivar datos de base de datos de importación principal.

  • Programe paquetes SSIS para que se ejecuten periódicamente. A la hora de definir una ventana en línea, asegúrese de que no se llena la base de datos de importación principal de BAM con particiones de actividad antiguas. También debe programar paquetes SSIS para que se ejecuten periódicamente para crear una nueva partición para los datos de actividad y mover los datos de las particiones antiguas en la base de datos de importación principal de BAM a la base de datos de archivo de BAM. Para obtener más información sobre la programación de paquetes SSIS, consulte Programación de paquetes de Integration Services SQL Server.

  • Elija con cuidado conjuntos de datos pequeños (puntos de control) y evite incluir datos innecesarios a la hora de definir una actividad.

  • Observe el equilibrio entre agregaciones programadas y en tiempo real cuando diseñe agregaciones. Las agregaciones en tiempo real se mantienen automáticamente con desencadenadores de SQL Server y tienen latencia cero. Son ideales para algunos escenarios de baja latencia críticos, pero incurren en un costo de rendimiento cada vez que se escriben los eventos en la base de datos de importación principal de BAM. Las agregaciones programadas se basan en paquetes SSIS de cubing programados para actualizar sus datos de agregación. Su latencia es igual o mayor que el intervalo de programación de SSIS, pero en general tienen un menor impacto en el rendimiento en la base de datos de importación principal de BAM.

  • Si elige agregaciones programadas, asegúrese de programar la SSIS de cubo para que se ejecute con más frecuencia que la SSIS de archivado. Esto se debe a que la SSIS de archivado no moverá los datos de actividad que se han procesado para la agregación programada a la base de datos de archivo de BAM.

  • Habilite el servicio BAM Event Bus en varios equipos para obtener la funcionalidad de conmutación por error.

Proporcionar una alta disponibilidad a las demás bases de datos de BizTalk Server

Para proporcionar alta disponibilidad para las otras bases de datos de BizTalk Server, configure dos equipos que ejecutan SQL Server en un clúster de Windows. Estos equipos se pueden ejecutar en una configuración activa, activa o activa/pasiva para la redundancia y pueden almacenar datos en una unidad compartida (como una matriz de discos SCSI RAID 1+0) o una red de área de almacenamiento (SAN).

Consulte también

Agrupación en clústeres de bases de datos de BizTalk Server 2