Ir al contenido principal

Solución de problemas de bases de datos

Este artículo aborda los problemas comunes relacionados con bases de datos en dab Nexus y sus soluciones.

Inconsistencias en el estado de las tareas

Síntomas

  • Las tareas permanecen en estado Running aunque hayan finalizado o fallado
  • El estado de las tareas no coincide con el estado real de la extracción
  • Las ejecuciones muestran estados de finalización incorrectos
  • Las tareas programadas fallan de forma intermitente sin errores claros

Causa

Estos síntomas suelen aparecer cuando la Application Database y las bases de datos de Extraction/Results comparten el mismo SQL Server. Durante extracciones de datos grandes, el SQL Server está sometido a una carga considerable. Esto puede provocar:

  1. Expiración de conexiones hacia la Application Database
  2. Fallos en operaciones de escritura para actualizaciones de estado de tareas
  3. Información de estado inconsistente almacenada en la Application Database

La Application Database almacena todos los estados de tareas y debe permanecer disponible en todo momento. Cuando compite por recursos con cargas intensas de extracción, la estabilidad de la conexión se ve afectada.

Diagnóstico

Revise los registros de SQL Server en busca de:

  • Errores de expiración de conexión
  • Alertas de deadlock
  • Mensajes de contención de recursos

Verifique la configuración actual:

  • ¿La Application Database y las bases de Extraction están en el mismo SQL Server?
  • ¿El problema ocurre durante o después de extracciones grandes?

Solución

Migre la Application Database a una instancia dedicada de SQL Server. Consulte la guía de migración a continuación.


Migración de la Application Database a una instancia separada

Si sufre inconsistencias en el estado de tareas o problemas de conexión debido a una instancia compartida de SQL Server, siga estos pasos para migrar la Application Database a una instancia dedicada.

Requisitos previos

  • Nueva instancia de SQL Server aprovisionada (ver Requisitos técnicos)
  • Acceso administrativo a ambas instancias de SQL Server
  • Credenciales de cuenta de servicio de dab Nexus
  • Ventana de tiempo suficiente para la migración

Pasos de migración

1. Crear respaldos

  • Realice un respaldo completo de la Application Database
  • También respalde todas las bases de datos de datos (Extraction/Results)
  • Todos los datos de configuración (servicios de terceros, conexiones SAP, configuración de usuarios) se almacenan en la Application Database
Importante

No omita el paso de respaldo. La Application Database contiene toda la configuración de dab Nexus.

2. Detenga el servicio dab Nexus

  • Abra Servicios de Windows (services.msc)
  • Detenga el servicio dab Nexus
  • Verifique que el servicio esté completamente detenido antes de continuar

3. Restaure la Application Database en la nueva instancia

  • Restaure el respaldo de Application Database en la nueva instancia dedicada de SQL Server
  • Asegúrese de que el nombre de la base de datos se mantenga igual, o registre el nuevo nombre para actualizar la configuración posteriormente
  • Verifique que la restauración se haya completado correctamente

4. Ajustar Configuration.json

  • Diríjase al directorio de instalación de dab Nexus
  • Edite Configuration.json
  • Actualice la cadena de conexión de ApplicationDatabase:
    • Nombre del servidor: Actualice a la nueva instancia
    • Nombre de la base de datos: Actualice si se cambió durante la restauración
  • Consulte Referencia de Configuration.json para ejemplos de cadenas de conexión

Ejemplo de actualización de cadena de conexión:

"ConnectionStrings": {
"ApplicationDatabase": "Server=NEW-SQL-INSTANCE;Database=NexusHome;Trusted_Connection=True;MultipleActiveResultSets=true"
}

5. Reinicie el servicio dab Nexus

  • Inicie el servicio dab Nexus
  • Revise el visor de eventos de Windows en busca de errores de inicio
  • Verifique el arranque exitoso accediendo a la interfaz web de dab Nexus

6. Crear nuevas conexiones SQL en dab Nexus

  • Inicie sesión en dab Nexus
  • Diríjase a Settings > SQL Servers
  • Cree nuevas conexiones SQL que apunten a sus instancias de Extraction/Results
  • Pruebe cada conexión antes de proceder

7. Actualizar tareas programadas

Revise todas las tareas que usan conexiones SQL:

  • Desactive las tareas con la conexión SQL antigua (de otro modo fallarán)
  • Clone cada tarea afectada
  • Actualice la conexión SQL en la tarea clonada para que utilice la nueva conexión
  • Active la nueva tarea
  • Verifique que la tarea se ejecute correctamente
  • Elimine la tarea antigua tras la verificación
Nota

No elimine las tareas antiguas hasta confirmar que las tareas clonadas funcionan apropiadamente.

Verificación tras la migración

  • Realice una extracción de prueba para verificar la conectividad con la base de extracción
  • Monitor estados de tareas para confirmar que se actualizan correctamente
  • Revise los registros de SQL Server de ambas instancias por problemas de conexión
  • Verifique que las tareas programadas se ejecutan correctamente

Errores de expiración de conexión

Síntomas

  • Errores de "expiración de conexión" en los registros de dab Nexus
  • Las tareas fallan debido a errores de conexión con la base de datos
  • Problemas de conectividad intermitentes

Posibles causas

  1. Problemas de red entre dab Nexus y SQL Server
  2. SQL Server sobrecargado (problema de instancia compartida)
  3. El firewall bloquea las conexiones
  4. SQL Server no está configurado para conexiones remotas

Soluciones

  • Verifique la conectividad de red usando Test-NetConnection o telnet hacia el puerto de SQL Server (por defecto: 1433)
  • Revise el Configuration Manager de SQL Server para confirmar protocolos habilitados
  • Revise las reglas de firewall para el puerto de SQL Server
  • Considere migrar a instancias separadas si la sobrecarga es la causa

Errores de permisos

Síntomas

  • Errores de "Access denied" o "permission denied"
  • Imposible crear bases de datos o tablas
  • Operaciones de lectura/escritura fallan

Solución

Verifique que la cuenta de servicio de dab Nexus tenga los permisos requeridos:

  • Application Database: rol db_owner (o db_datareader, db_datawriter, db_ddladmin)
  • Extraction/Results databases: rol dbcreator a nivel de servidor (para creación automática) o db_owner en bases pre-creadas

Consulte Configuración de MS SQL-Server para requisitos detallados de permisos.