Estoy usando SQL Server 2008 r2. Quiero encontrar una manera de verificar si SQL Server Agent se está ejecutando. Sospecho que el agente no se está ejecutando, pero no sé cómo verificarlo.Cómo comprobar si SQL Server Agent se está ejecutando
Respuesta
En Management Studio, puede verificar si el Agente de SQL Server se está ejecutando mirando el nodo del Agente de SQL Server en el Explorador de objetos. En la siguiente captura de pantalla, el Agente SQL Server en mi instancia de SQL Server 2012 se está ejecutando (flecha verde superpuesta en el icono del Agente SQL Server), pero el agente para SQL Server 2000 está detenido (x rojo).
También puede comprobar en el Panel de control> Herramientas administrativas> Servicios:
o en archivos de programa> SQL Server> Herramientas de configuración> Administrador de configuración:
Finalmente, puede verificar el estado utilizando T-SQL:
DECLARE @agent NVARCHAR(512);
SELECT @agent = COALESCE(N'SQLAgent$' + CONVERT(SYSNAME, SERVERPROPERTY('InstanceName')),
N'SQLServerAgent');
EXEC master.dbo.xp_servicecontrol 'QueryState', @agent;
En el estudio de administración, en lugar de las flechas, veo un círculo blanco con borde verde. Qué significa esto ? Pero, en el administrador de configuración, veo que se está ejecutando (flecha verde dentro del círculo blanco). – Steam
En uno de los servidores, este script provocó el error: se negó el permiso EXECUTE en el objeto 'xp_servicecontrol', la base de datos 'master', el propietario 'dbo'. – Steam
@blasto eso no es un problema de script, eso es un problema de permisos. Presumiblemente, debe tener los permisos adecuados para consultar el estado de un servicio, independientemente de la secuencia de comandos o el método de IU que utilice. –
Si el Agente SQL Server se está ejecutando, un botón de reproducción verde se mostrará en la esquina inferior derecha del icono del Agente SQL Server dentro de SQL Server Management Studio.
para validar el estado del Agente SQL Server para una instancia determinada utilizando T-SQL ejecutar el código siguiente fragmento:
IF EXISTS ( SELECT 1
FROM master.dbo.sysprocesses
WHERE program_name = N'SQLAgent - Generic Refresher')
BEGIN
SELECT @@SERVERNAME AS 'InstanceName', 1 AS 'SQLServerAgentRunning'
END
ELSE
BEGIN
SELECT @@SERVERNAME AS 'InstanceName', 0 AS 'SQLServerAgentRunning'
END
Fuente = Colin Stasiuk
Me di cuenta de que puede detener al agente desde el estudio de administración. Pero, después de eso, no puedes reiniciar desde allí. Puede reiniciar desde los servicios de Windows. Me pregunto por qué es así. – Steam
Esto funcionó para mí. Vi un '1' para mi InstanceName. Funciona en 2000, 05, 08R2 – Steam
^^^^^ sysprocesses ha quedado obsoleto desde SQL Server 2005, por lo que no, no debe usar esa respuesta directamente hoy, a menos que desee volver a escribirla más tarde – Steam
IF EXISTS (SELECT 1 FROM sysprocesses WHERE LEFT(program_name, 8) = 'SQLAgent')
PRINT 'Agent is running!'
ELSE
PRINT 'Agent is not connected!';
Déjame saber si esto funciona else intente esto
IF EXISTS ( SELECT 1
FROM master.dbo.sysprocesses
WHERE program_name = N'SQLAgent - Generic Refresher')
BEGIN
SELECT @@SERVERNAME AS 'InstanceName', 1 AS 'SQLServerAgentRunning'
END
ELSE
BEGIN
SELECT @@SERVERNAME AS 'InstanceName', 0 AS 'SQLServerAgentRunning'
END
Referencia: http://benchmarkitconsulting.com/colin-stasiuk/2009/07/20/check-sql-server-agent-status-on-all-sql-servers/
¿Por qué agregó Colin's muestra de código a su respuesta, que fue la respuesta de John Samson 7 minutos antes? –
desafortunadamente, no lo revisé. –
Pero puede eliminarlo, ahora que lo sabe. No tiene absolutamente ningún valor tener exactamente la misma muestra de código en dos respuestas diferentes. –
Automatice la comprobación si el Agente SQL Server se está ejecutando con este archivo por lotes.
Se iniciará el servicio si aún no se está ejecutando.
Deberá ajustar el nombre del servicio (SQLServerAgent) para algunas versiones de MSSQL.
echo off
echo Test SQL Server Agent Service
for /F "tokens=3 delims=: " %%H in ('sc query "SQLServerAgent" ^| findstr "STATE"') do (
if /I "%%H" NEQ "RUNNING" (
echo service was stopped, starting service
rem put your optional errorlog or warning message here
net start "SQLServerAgent"
)
)
El,, camino más directo más fácil más rápida para determinar si el Agente SQL se está ejecutando, y que se puede hacer fácilmente en SSMS, es una consulta (por lo tanto puede ser automatizado), y no se consulta una tabla del sistema en desuso (es decir,sysprocesses
) o EXECing xp_servicecontrol
, es una DMV que se introdujo en el SP1 de SQL Server 2008 R2:
SELECT dss.[status], dss.[status_desc]
FROM sys.dm_server_services dss
WHERE dss.[servicename] LIKE N'SQL Server Agent (%';
Devuelve:
status status_desc
4 Running
Sólo requiere el permiso VIEW SERVER STATE
servidor, pero ya lo necesitaba para ver su estado en el Explorador de objetos (en SSMS).
Y, si no desea otorgar VIEW SERVER STATE
a un inicio de sesión particular porque permite obtener demasiada información, entonces técnicamente no necesita otorgar nada en absoluto, al menos no a un usuario real. Véase mi respuesta en DBA.StackExchange en una pregunta similar para los detalles (incluyendo un ejemplo de trabajo):
Esto es lo que yo uso en powershell
Get-Service | Where-Object -like -value '*sql*agent*' -Property 'name'
- 1. Comprobar si el proceso se está ejecutando
- 2. SQL Server: cómo comprobar si CLR está habilitado?
- 3. Cómo comprobar si se está ejecutando un Thread de Android
- 4. ¿Cómo comprobar si una aplicación WPF ya se está ejecutando?
- 5. powershell: ¿cómo comprobar si se está ejecutando la transcripción?
- 6. Comprobar si la animación se está ejecutando en cocos2d-x
- 7. SQL Server Agent Trabajo en ejecución lenta
- 8. Determinar si el programa se está ejecutando en Windows Server
- 9. SQL Server Agent Job - ¿Existe entonces Drop?
- 10. ¿Un trabajo de SQL Server saltará una ejecución programada si ya se está ejecutando?
- 11. Cómo determinar qué versión de SQL Server se está ejecutando utilizando T-SQL
- 12. ¿Cómo verificar si un proceso se está ejecutando con Delphi?
- 13. Cómo saber si el servidor de emacs se está ejecutando
- 14. ¿Cómo detectar con precisión si un trabajo de SQL Server se está ejecutando y lidiar con el trabajo que ya se está ejecutando?
- 15. Compruebe si el cliente de SQL Server está instalado
- 16. ¿Cómo comprobar si una variable de tabla está vacía en SQL Server?
- 17. ¿Cómo comprobar si JBoss se está ejecutando en el servidor Unix?
- 18. Cómo comprobar si un trabajo se está ejecutando en Quartz Framework
- 19. ¿Cómo comprobar si se está ejecutando en el hilo de UI en Android?
- 20. ANDROID: cómo comprobar si la animación se está ejecutando antes de comenzar una nueva animación
- 21. cómo comprobar si otra instancia de la aplicación se está ejecutando
- 22. ¿Cómo comprobar si la intención pendiente activada por AlarmManager setRepeating ya se está ejecutando?
- 23. Cómo comprobar en ASP.NET MVC Ver si el sitio se está ejecutando en localhost o 127.0.0.1
- 24. ¿Cómo comprobar si un servicio se está ejecutando a través de un archivo por lotes e iniciarlo, si no se está ejecutando?
- 25. Ejecutando SQL Server en EC2
- 26. Verifica programáticamente si se está ejecutando syncdb
- 27. comisión si ya se está ejecutando
- 28. compruebe si el programa se está ejecutando y ejecútelo si no está en perl
- 29. ¿Verifica si se está ejecutando un servicio de Windows?
- 30. Cómo comprobar si se está llamando al archivo Global.asax
¿Quieres comprobar ¿a mano? ¿O de SQL? – RedFilter
o del código ...? –
si es posible, prefiero consultarlo desde el estudio de administración del servidor SQL – qinking126