Durante el último mes, uno de mis servidores se enfrenta a problemas con el Agente SQL Server. Se detiene automáticamente con el siguiente error, que ocurre al azar:
Sql Agent Output file
[097] Se detectó una pérdida de memoria [204 bytes].
Excepción 5 capturada en la línea 403 del archivo e: \ sql9_sp2_t \ sql \ komodo \ src \ core \ sqlagent \ src \ alerter.cpp. SQLServerAgent iniciando la auto-terminación
Busqué en Google este error pero no obtuve mucha información al respecto. Tanto SQL Server como Agent se ejecutan con la misma cuenta de dominio; sin embargo, el problema es solo con el servicio del Agente SQL Server.
Tampoco puedo ver el servicio del Agente SQL Server en el Administrador de configuración de SQL Server. Revisé el registro de errores de SQL Server y los registros del Visor de eventos de Windows, pero no vi ninguna actividad sospechosa.
Mis ajustes de memoria están configurados correctamente. El servidor tiene 32 GB de RAM y SQL Server está asignado para usar una memoria máxima de 26 GB.
Detalles del sistema:
- SQL Server 2012 SP2 Std Edition 11.0.5058 64 bit
- Windows Server 2008 R2 Ent Edition 64 bit
- Dedicado a SQL Server (no se ejecutan otras aplicaciones en el servidor)
- El servidor se actualizó hace unos meses de SQL Server 2005 EE a 2012 SE.
- No estamos utilizando un servidor de reenvío de eventos .
También revisé la base de datos msdb . Ejecuté checkdb en él y se completó con éxito sin ningún error. Necesito tu ayuda para arreglar dos cosas:
- Para corregir la detención aleatoria del servicio del Agente SQL Server
- Para agregar el servicio del Agente SQL Server en el Administrador de configuración de SQL Server
Tenemos software de terceros para el monitoreo, por lo que se nos notifica de inmediato si se detiene el servicio del agente. Por ahora solo estamos reiniciando el servicio. Pero queremos encontrar la causa raíz.
Ejecuté la siguiente consulta sugerida por Sean Gallardy y obtuve 95 filas de vuelta. No sé cómo interpretar el resultado.
select *
from sys.dm_os_loaded_modules
where name not like '%microsoft%'
Lamentablemente, no puedo publicar los resultados por razones de seguridad.
Hasta que encuentre la solución a este problema, he agregado intentos de reintento al Agente SQL Server para que pueda reiniciarse automáticamente cuando se detiene.
fuente
Respuestas:
Como recientemente actualizó hace unos meses de SQL Server 2005 EE a 2012 SE, debe guardar y borrar sus registros de eventos porque SqlAgent puede bloquearse cuando ve ID de registro de eventos de una versión anterior de SQL Server. Por ejemplo, el Agente puede bloquearse porque lee un evento registrado por una compilación de SQL Server anterior a la compilación actual, que solo contiene datos con UNA cadena de inserción y el agente intentará formatearlo utilizando la última información de recursos que requiere DOS cadenas. Esto llevaría a una breve pérdida de memoria justo antes de que se apague, ya que se asigna un búfer para la cadena en la que intenta imprimir cuando se produce el bloqueo.
En cuanto al servicio del agente que no figura en el administrador de configuración, existen múltiples posibilidades: https://support.microsoft.com/en-us/kb/941823
Asegúrese de estar ejecutando 2012 Configuration Manager
Puede intentar reconstruir el repositorio de WMI: https://blogs.technet.microsoft.com/askperf/2009/04/13/wmi-rebuilding-the-wmi-repository/
fuente