Lista de comprobación: mantenimiento y solución de problemas de las bases de datos de BizTalk Server

BizTalk Server bases de datos y su estado son muy importantes para un entorno de mensajería de base de datos BizTalk Server correcto. En este tema se enumeran los pasos que debe seguir al mantener o solucionar problemas de las bases de datos de BizTalk Server.

Mantenimiento de bases de datos de BizTalk Server

  • Deshabilite las opciones Estadísticas de actualización automática y Creación automática de estadísticas (solo se aplica a BizTalk Server bases de datos de cuadro de mensajes). De forma predeterminada, estas opciones se configuran como parte de la configuración de BizTalk Server. No debe realizar cambios en esta configuración.

    Para ver si esta configuración está deshabilitada, ejecute los procedimientos almacenados siguientes en SQL Server:

    SELECT DATABASEPROPERTYEX('BizTalkMsgBoxDB', 'IsAutoCreateStatistics') AS IsAutoCreateStatistics
    SELECT DATABASEPROPERTYEX('BizTalkMsgBoxDB', 'IsAutoUpdateStatistics') AS IsAutoUpdateStatistics
    

    Los valores devueltos deben ser 0 para indicar que la configuración está deshabilitada. Si no se devuelve 0, deshabilite la configuración ejecutando lo siguiente en SQL Server:

    ALTER DATABASE BizTalkMsgBoxDB SET AUTO_CREATE_STATISTICS OFF
    ALTER DATABASE BizTalkMsgBoxDB SET AUTO_UPDATE_STATISTICS OFF
    

    Para obtener más información sobre esta configuración, vaya a You experience blocking, deadlock conditions, or other SQL Server issues when you try to connect to the BizTalkMsgBoxDb database in BizTalk Server.

  • Establezca la propiedad Grado máximo de paralelismo. De forma predeterminada, esta configuración se configura como parte de la configuración de BizTalk Server. No debe realizar cambios en esta configuración.

    Establezca las propiedades Grado máximo de paralelismo run_value y config_value en un valor de uno (1) en las instancias de SQL Server que hospedan las bases de datos de cuadro de mensajes de BizTalk Server. Para comprobar la configuración Grado máximo de paralelismo, ejecute el siguiente procedimiento almacenado en la base de datos maestra en SQL Server:

    exec sp_configure 'max degree of parallelism'
    

    Si los run_value y config_value no se establecen en un valor de uno (1), ejecute el siguiente procedimiento almacenado en SQL Server:

    exec sp_configure 'max degree of parallelism', '1' reconfigure with override
    

    Para obtener más información sobre cómo afecta la configuración Grado máximo de paralelismo BizTalk Server, vaya a Experimenta problemas de bloqueo, interbloqueo u otros problemas de SQL Server al intentar conectarse a la base de datos bizTalkMsgBoxDb en BizTalk Server.

  • Determine cuándo puede volver a generar BizTalk Server índices.

    La mayoría de los índices de BizTalk Server bases de datos se agrupan (id. de índice: 1). El comando DBCC SHOWCONTIG se puede usar para mostrar información de fragmentación para las tablas de las bases de datos BizTalk Server. Estos índices se basan en GUID, por lo que es normal que se produzca la fragmentación. Si el valor de Densidad de examen de DBCC SHOWCONTIG es inferior al 30 %, los índices se pueden volver a generar durante el tiempo de inactividad. Muchas tablas de las bases de datos BizTalk Server contienen columnas que usan definiciones de DataType donde no se puede realizar la indexación en línea. Por lo tanto, los índices de las tablas de las bases de datos de BizTalk Server nunca se deben volver a generar mientras BizTalk procesa los datos.

    Para obtener más información sobre cómo recompilar los índices de BizTalk, vaya a You experience blocking, deadlock conditions, or other SQL Server issues when you try to connect to the BizTalkMsgBoxDb database in BizTalk Server.

    También puede usar la función sys.dm_db_index_physical_stats para buscar información de fragmentación en SQL Server. Para obtener más información, vea sys.dm_db_index_physical_stats (Transact-SQL).

  • Supervise la base de datos para detectar bloqueos, bloques o interbloqueos.

    Es un comportamiento esperado para que se produzcan bloqueos y bloques en las bases de datos de SQL Server usadas por BizTalk Server. Sin embargo, no se espera que estos bloqueos o bloqueos continúen durante un período de tiempo prolongado. El bloqueo extendido y el interbloqueo en las bases de datos de SQL Server usadas por BizTalk Server son indicadores de un posible problema.

    Para las causas conocidas actuales de interbloqueo y bloqueo en las bases de datos de SQL Server usadas por BizTalk Server, vaya a Experimenta problemas de bloqueo, interbloqueo u otros problemas de SQL Server al intentar conectarse a la base de datos de BizTalkMsgBoxDb en BizTalk Server.

  • Supervise el tamaño de las bases de datos y las tablas.

    El tamaño de la base de datos BizTalk Server Cuadro de mensajes normalmente no debe ser superior a 5 GB aproximadamente. La base de datos BizTalkMsgBoxDb no debe contener ningún dato y debe considerarse un búfer hasta que los datos se procesen o se muevan a la base de datos bizTalkDTADb. Un entorno con un eficaz back-end de SQL Server y numerosas orquestaciones de larga duración pueden tener una base de datos bizTalkMsgBoxDb superior a 5 GB. Un entorno de gran volumen sin orquestaciones de larga duración debe tener una base de datos de cuadro de mensajes de BizTalk Server mucho menor que 5 GB.

    La base de datos de seguimiento de BizTalk Server puede variar considerablemente, pero si el rendimiento de las consultas disminuye drásticamente, es probable que la base de datos de seguimiento sea demasiado grande. Como regla general, una base de datos de seguimiento de BizTalk Server superior a 15-20 GB se considera demasiado grande y puede afectar negativamente al rendimiento.

    Los siguientes problemas pueden atribuirse a BizTalk Server bases de datos demasiado grandes:

    • La base de datos BizTalk Server Cuadro de mensajes sigue creciendo, mientras que el tamaño de los datos (no solo el archivo de registro) sigue siendo grande. BizTalk Server tarda más tiempo que lo normal en procesar incluso un escenario sencillo de flujo de mensajes.
    • Las consultas del Concentrador de grupos tardan más tiempo que lo normal e incluso pueden expirar.
    • El archivo de registro de la base de datos nunca se trunca.
    • Los trabajos del Agente SQL de BizTalk se ejecutan más lentamente de lo normal.
    • Algunas tablas son considerablemente grandes o tienen demasiadas filas en comparación con las normales.

    Las bases de datos de BizTalk Server pueden ser grandes por varias razones, entre las que se incluyen:

    • Trabajos del Agente SQL de BizTalk que no se ejecutan
    • Instancias de servicio o mensajes suspendidos excesivos
    • Errores de disco
    • Altos niveles de seguimiento
    • limitación de BizTalk Server
    • Rendimiento deficiente de SQL Server
    • Problemas de latencia de red

    De forma similar, puede tener demasiadas filas en una tabla. No hay ningún número establecido de filas que sean demasiadas. Además, este número de filas varía según el tipo de datos almacenados en la tabla. Por ejemplo, una tabla de dta_DebugTrace que tiene más de 1 millón de filas probablemente tiene demasiadas filas. Una tabla HostNameQ_Suspended que tiene más de 200 000 filas probablemente tenga demasiadas filas.

    Asegúrese de que sabe lo que se espera en su entorno para determinar si se está produciendo un problema de datos.

  • Habilite el seguimiento en BizTalk Server host.

    De forma predeterminada, el seguimiento está habilitado en el host predeterminado. BizTalk requiere que la opción Permitir seguimiento de host esté activada en un único host. Cuando el seguimiento está habilitado, el servicio de descodificación de datos de seguimiento (TDDS) mueve los datos del evento de seguimiento de la base de datos BizTalk Server MessageBox a la base de datos de seguimiento de BizTalk Server. Si no hay ningún host de BizTalk Server configurado con la opción Permitir el seguimiento de host o si el host de seguimiento está detenido, TDDS no se ejecutará y las tablas TrackingData_x_x de la base de datos de cuadro de mensajes de BizTalk Server aumentarán sin activar.

    Por lo tanto, se debe configurar un host de BizTalk Server dedicado con la opción Permitir el seguimiento de host. Para obtener más información sobre cómo configurar un host de seguimiento dedicado, consulte Configuración de un host de seguimiento dedicado.

    Para permitir que TDDS mantenga nuevos eventos de seguimiento en escenarios de gran volumen, puede crear varias instancias de un único host de seguimiento, pero no se debe configurar más de un host para el seguimiento.

  • Use los trabajos correctos de BizTalk Agente SQL Server.

    La ejecución de los trabajos del Agente SQL de BizTalk Server es fundamental para administrar las bases de datos de BizTalk Server y para mantener un rendimiento óptimo.

    • El trabajo backup BizTalk Server Agente SQL Server es el único método admitido para realizar copias de seguridad de las bases de datos de BizTalk Server. Este trabajo requiere que configure todas las bases de datos de BizTalk Server para usar un modelo de recuperación completa. Debe configurar este trabajo para un entorno de BizTalk Server correcto. Puede usar los métodos SQL Server para realizar copias de seguridad de las bases de datos de BizTalk Server solo si el servicio de SQL Server está detenido y si se detienen todos los procesos BizTalk Server.

      Para obtener más información sobre el uso del modelo de recuperación completa SQL Server al configurar el trabajo de copia de seguridad del Agente SQL BizTalk Server, vea Trasvase de registros o Copia de seguridad en el modelo de recuperación completa.

    • El trabajo de MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb Agente SQL Server está diseñado para ejecutarse indefinidamente. Como resultado, es posible que el historial de trabajos del Agente SQL no indique que este trabajo del Agente SQL se ha completado correctamente; este comportamiento es por diseño. Si se produce un error, el trabajo se reiniciará en 1 minuto y continuará ejecutándose sin tener en cuenta. Por lo tanto, las notificaciones de error para este trabajo normalmente se pueden omitir.

      Si el historial de trabajos del trabajo de MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb Agente SQL Server indica que este trabajo produce errores constantemente y se reinicia, es posible que se requiera una investigación más detallada sobre la causa del ciclo de error o reinicio.

    • El MessageBox_Message_Cleanup_BizTalkMsgBoxDb Agente SQL Server trabajo es el único trabajo que no debe habilitarse manualmente porque el trabajo MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb lo inicia.

    • El trabajo de purga y archivo de DTA Agente SQL Server mantiene la base de datos de seguimiento de BizTalk Server purgando y archivando mensajes de seguimiento. Este trabajo lee todas las filas de la tabla y compara la marca de tiempo de cada fila para determinar si se debe quitar el registro.

      Al solucionar problemas de los trabajos de BizTalk Server Agente SQL Server, compruebe que todos los trabajos del Agente SQL excepto el MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb se completan sin errores.

    Para obtener más información sobre los trabajos del Agente SQL de BizTalk Server usados en SQL Server:

  • Supervise y finalice las instancias suspendidas.

    Las instancias de servicio se pueden suspender (reanudables) o suspenderse (no reanudables). Estas instancias de servicio pueden ser mensajería, orquestación o puerto. BizTalk Server admite la finalización y eliminación de estas instancias mediante la página Concentrador de grupo de la consola de administración de BizTalk Server o mediante el uso del script de Terminate.vbs. Para obtener más información sobre el script de Terminate.vbs, consulte Eliminación de instancias de servicio suspendidas.

    También puede usar la herramienta Terminador para quitar instancias suspendidas. La herramienta Terminador se incluye con el BizTalk Health Monitor.

    Los términos "huérfanos" y "zombies" a menudo se usan indistintamente. Un mensaje huérfano o zombie es un mensaje que no tiene una instancia de servicio asociada, normalmente porque la instancia de servicio ha finalizado antes de recibir el mensaje. Un servicio huérfano o zombie es un servicio que no tiene ningún mensaje asociado. Para obtener más información sobre los mensajes zombis y las instancias de servicio en BizTalk Server vea Zombies en BizTalk Server.

  • Supervise los contadores de rendimiento del objeto de rendimiento PhysicalDisk .

    BizTalk Server hace un gran número de transacciones cortas y muy rápidas para SQL Server en un minuto. Si el SQL Server no puede mantener esta actividad, puede experimentar problemas de rendimiento BizTalk Server. Supervise los contadores de monitores de rendimiento Avg. Disk sec/Read, Avg. Disk sec/Transfer y Avg. Disk sec/Write performance monitor en el objeto de rendimiento PhysicalDisk . El valor óptimo es inferior a 10 ms (milisegundos). Un valor de 20 ms o mayor se considera un rendimiento deficiente.

    Para obtener más información sobre BizTalk Server alta disponibilidad de bases de datos, consulte Proporcionar alta disponibilidad para bases de datos de BizTalk Server.

  • Siga los procedimientos recomendados para BizTalk Server bases de datos. Consulte Procedimientos recomendados para mantener bases de datos de BizTalk Server.

Solución de problemas de bases de datos de BizTalk Server

Realice las siguientes tareas para solucionar cualquier problema con las bases de datos de BizTalk Server.

  • Asegúrese de que todos los trabajos necesarios de BizTalk Agente SQL Server estén habilitados y en ejecución.

    Todos los trabajos de Agente SQL Server de BizTalk excepto el trabajo de MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb deben habilitarse y ejecutarse correctamente. No deshabilite ningún otro trabajo.

    Si se produce un error, use la opción Ver historial en SQL Server para ver la información de error y, a continuación, solucione el error en consecuencia. Recuerde que el cuadro de mensajes _Message_ManageRefCountLog_BizTalkMsgBoxDb Agente SQL Server trabajo se ejecuta infinitamente. Por lo tanto, solo debe preocuparse si el historial de trabajos informa de que el trabajo genera un error constante y se reinicia.

  • Use la herramienta MsgBoxViewer para analizar el Cuadro de mensajes de BizTalk y otras bases de datos.

    La herramienta MsgBoxViewer se incluye con el BizTalk Health Monitor. La herramienta MsgBoxViewer es útil para solucionar problemas porque proporciona un informe HTML que tiene información detallada sobre los tamaños de tabla y el recuento de filas. El informe también puede ayudar a determinar si BizTalk Server está limitando. Además, la herramienta proporciona una instantánea de las bases de datos de BizTalk Server y la configuración de BizTalk Server.

    Cuando BizTalk Server se ejecuta más lentamente de lo habitual, ejecute la herramienta MsgBoxViewer, haga clic para seleccionar todas las consultas en la pestaña Consultas opcionales y, a continuación, revise el informe HTML generado para ver si hay problemas. En la sección Informe de resumen se muestran advertencias en amarillo y posibles problemas en rojo.

    Además, puede usar la herramienta MsgBoxViewer para determinar qué tablas son las más grandes y tienen la mayoría de los registros. Para obtener una lista de las tablas que suelen aumentar los tamaños grandes y para obtener instrucciones sobre cómo administrar esas tablas, consulte Tablas de base de datos de gran crecimiento BizTalk Server.

  • Use la herramienta Terminador para resolver problemas, si los hay, identificados por la herramienta MsgBoxViewer.

    La herramienta Terminador se incluye con el BizTalk Health Monitor. Esta herramienta permite a los usuarios resolver fácilmente los problemas identificados por la herramienta MsgBoxViewer de BizTalk.

  • Investigue escenarios de interbloqueo.

    En un escenario de interbloqueo, habilite el seguimiento de DBCC en el SQL Server para que la información de interbloqueo se escriba en el registro SQLERROR. En SQL Server, ejecute la siguiente instrucción para habilitar el seguimiento de DBCC para escenarios de interbloqueo:

    DBCC TRACEON (1222,-1)
    

    También puede usar la utilidad PSSDIAG para recopilar datos en el evento Lock:Deadlock y el evento Lock:Deadlock Chain . Para obtener más información, consulte la utilidad de recopilación de datos PSSDIAG.

    La base de datos BizTalkMsgBoxDB es una base de datos de procesamiento de transacciones en línea (OLTP) de gran volumen y de alta transacción. Con estas bases de datos, se espera un interbloqueo y este interbloqueo lo controla internamente el motor de BizTalk Server. Cuando se produce este comportamiento, no se muestran errores en los registros de errores. Al investigar un escenario de interbloqueo, el interbloqueo que está investigando en la salida debe estar correlacionado con un error de interbloqueo en los registros de eventos.

  • Busque procesos bloqueados.

    Puede usar el Monitor de actividad en SQL Server para obtener el identificador de proceso de servidor (SPID) de un proceso del sistema de bloqueo. A continuación, puede ejecutar SQL Profiler para determinar la instrucción SQL que se ejecuta en el SPID de bloqueo. Puede usar la utilidad PSSDIAG para solucionar problemas de bloqueo y bloqueo en SQL Server. La utilidad captura todos los eventos de Transact-SQL que tienen habilitado el script de bloqueo. Para más información, consulte la utilidad de recopilación de datos PSSDIAG.

    En SQL Server, puede especificar la configuración del umbral de proceso bloqueado para determinar qué SPID o SPID están bloqueando más tiempo que el umbral que especifique. Para obtener más información sobre la opción de umbral de proceso bloqueado, consulte Opción de umbral de proceso bloqueado.

    Cuando experimente un problema de bloqueo o bloqueo en SQL Server, puede ponerse en contacto con los Servicios de soporte al cliente de Microsoft.

  • Elimine todos los datos no deseados.

    Si las bases de datos han crecido hasta ser demasiado grandes y si los datos contenidos en las bases de datos ya no son necesarios, el método preferido es eliminar los datos. Precaución: No use este método en ningún entorno en el que los datos sean críticos para la empresa o si los datos son necesarios.

    Para purgar la base de datos de BizTalkMsgBox:

    1. Descargue e instale la herramienta Terminador, que se incluye en el BizTalk Health Monitor.

    2. Siga los pasos del tema Cómo purgar manualmente los datos de la base de datos de cuadro de mensajes en un entorno de prueba para crear el procedimiento almacenado bts_CleanupMsgbox en la base de datos de Cuadro de mensajes de BizTalk.

    3. Use la herramienta Terminador para ejecutar el procedimiento almacenado bts_CleanupMsgbox y purgar la base de datos de Cuadro de mensajes de BizTalk.

      El procedimiento almacenado bts_CleanupMsgbox elimina los datos. Tenga cuidado al ejecutar este procedimiento almacenado en un entorno de producción.

    4. Reinicie todos los hosts y BizTalk Server servicios.

    Para purgar la base de datos de BizTalkDTADb:

    • Método 1

      1. Realice una copia de seguridad de todas las bases de datos de BizTalk Server.
      2. Ejecute el procedimiento almacenado dtasp_PurgeAllCompletedTrackingData . Para obtener más información sobre el procedimiento almacenado, vea Cómo purgar manualmente los datos de la base de datos de seguimiento de BizTalk.
    • Método 2: use esta opción solo si la base de datos BizTalkDTADb contiene muchas instancias incompletas que se deben quitar.

      1. Realice una copia de seguridad de todas las bases de datos de BizTalk Server.
      2. Detenga todos los hosts, servicios y adaptadores aislados personalizados de BizTalk. Si usa HTTP o el adaptador SOAP, reinicie los servicios IIS.
      3. Ejecute el procedimiento almacenado dtasp_CleanHMData en la base de datos bizTalkDTADb.
      4. Reinicie todos los hosts y BizTalk Server servicios.

    Si debe tener los datos de seguimiento, haga una copia de seguridad de la base de datos de BizTalkDTADb, restaure la base de datos en otra SQL Server y, a continuación, purgue la base de datos original de BizTalkDTADb.

Si desea ayudar a analizar los datos msgBoxViewer o la salida de PSSDIAG, póngase en contacto con los servicios de soporte al cliente de Microsoft. Antes de ponerse en contacto con los servicios de atención al cliente, comprima los datos de MsgBoxViewer, la salida de PSSDIAG y los registros de eventos actualizados (archivos .evt). Es posible que tenga que enviar estos archivos a un ingeniero de soporte técnico de BizTalk Server.

Siguientes

Consulte también

Configuración de SQL Server que no se debe cambiar