El servicio agente SQL produce un error intermitente

En este artículo se proporcionan instrucciones de solución de problemas para un problema en el que el servicio agente SQL deja de responder repetidamente a intervalos regulares.

Síntomas

El servicio Agente SQL Server produce un error intermitente en un clúster AlwaysOn de SQL Server. Cuando se produce un error en el servicio, se agrega el siguiente mensaje de error al registro del Agente SQL Server:

[510] SQLAgent failed, dump generated in \<SQL_Instance_Log_Directory\>  
[LOG] Exception 29539 caught at line 233 of file sql\mpu\SqlAgent\src\autostrt.cpp. SQLServerAgent initiating self-termination.

Causa

Estos errores se producen si el servicio agente SQL Server no recupera la siguiente subclave del Registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceID>\SQLServerAgent\AutoRegistryRefresh

Cuando se produce un error en la recuperación de la subclave del Registro, el servicio agente SQL Server notifica una excepción en el registro y, a continuación, finaliza a sí mismo.

La recuperación de subclaves del Registro puede producir un error debido a los siguientes motivos:

  • Software antivirus o de protección de puntos de conexión que interfiere con el acceso al registro
  • Faltan o mal configuradas claves del Registro
  • Errores de acceso transitorios en el Registro de Windows

Solución

Para resolver este problema, siga estos pasos.

Paso 1: Comprobar la clave del Registro

  1. Inicie el Editor del Registro (regedit.exe).
  2. Vaya a la ruta de acceso siguiente: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceID>\SQLServerAgent.
  3. Compruebe si la AutoRegistryRefresh clave existe.
  4. Si falta la AutoRegistryRefresh clave, cree un valor DWORD (32 bits) denominado AutoRegistryRefreshy establezca su valor 1en .

Paso 2: Excluir SQL Server del examen antivirus

Importante

El proceso de agregar una exclusión al software antivirus o de protección de puntos de conexión varía según el publicador. Consulte con el publicador del software para obtener instrucciones específicas.

  1. Configure el software antivirus o endpoint protection para excluir los procesos comunes de SQL Server:
    • sqlservr.exe
    • sqlagent.exe
    • ReportingServicesService.exe
    • msmdsrv.exe
    • fdlauncher.exe
    • fdhost.exe
  2. Además, excluya la carpeta donde está instalado SQL Server. Por ejemplo: C:\Program Files\Microsoft SQL Server\.

Para obtener más información sobre cómo configurar el software antivirus o de endpoint Protection para que funcione junto con SQL Server, consulte Configuración del software antivirus para que funcione con SQL Server.

Paso 3: Comprobación de registros de eventos y archivos de volcado de memoria

Compruebe si los registros o el archivo de volcado del Agente SQL más reciente contienen errores nuevos:

  1. Revise los registros del Agente SQL Server que se encuentran en: <SQL_Instance_Log_Directory>\SQLAGENT.OUT\.
  2. Revise los registros de aplicación y sistema en el Visor de eventos para ver si hay errores relacionados.
  3. Analice el archivo de volcado del Agente SQL. Si se generan varios archivos de volcado de memoria, céntrese en el más reciente.

Si no se notifica ningún error nuevo, vaya al paso siguiente. Si existen nuevos errores, repita los pasos anteriores y vuelva a comprobar los registros de eventos y volcado de archivos.

Paso 4: Reiniciar el servicio del Agente SQL Server

Reinicie el servicio agente SQL Server para que los cambios surtan efecto.

Paso 5: Supervisar la estabilidad

  1. Supervise los registros del Agente SQL Server para detectar cualquier periodicidad del error.
  2. Compruebe que no se generen nuevos archivos de volcado en el directorio de registros.