J'utilise SQL Server 2008 r2. Je veux trouver un moyen de vérifier si SQL Server Agent est en cours d'exécution. Je suis soupçonneux que l'agent ne fonctionne pas, mais je ne sais pas comment vérifier.Comment vérifier si SQL Server Agent est en cours d'exécution
Répondre
Dans Management Studio, vous pouvez vérifier si SQL Server Agent est en cours d'exécution en consultant le nœud SQL Server Agent dans l'Explorateur d'objets. Dans la capture d'écran suivante, SQL Server Agent sur mon instance SQL Server 2012 est en cours d'exécution (flèche verte superposée sur l'icône de l'Agent SQL Server), mais l'agent pour SQL Server 2000 est arrêté (x rouge).
Vous pouvez également consulter dans le Panneau de configuration> Outils d'administration> Services:
Ou dans Program Files> Serveur SQL> Outils de configuration> Gestionnaire de configuration:
Enfin, vous pouvez vérifier le état en utilisant T-SQL:
DECLARE @agent NVARCHAR(512);
SELECT @agent = COALESCE(N'SQLAgent$' + CONVERT(SYSNAME, SERVERPROPERTY('InstanceName')),
N'SQLServerAgent');
EXEC master.dbo.xp_servicecontrol 'QueryState', @agent;
Dans le studio de gestion, au lieu des flèches, je vois un cercle blanc avec bordure verte. Qu'est-ce que ça veut dire ? Mais, dans le gestionnaire de configuration, je vois qu'il est en cours d'exécution (flèche verte à l'intérieur du cercle blanc). – Steam
Dans l'un des serveurs, ce script a provoqué l'erreur - Autorisation EXECUTE refusée sur l'objet 'xp_servicecontrol', base de données 'master', propriétaire 'dbo'. – Steam
@blasto ce n'est pas un problème de script, c'est un problème d'autorisations. Vous devez probablement avoir les autorisations nécessaires pour interroger l'état d'un service, quel que soit le script ou la méthode d'interface utilisateur que vous utilisez. –
Si l'agent SQL Server est en cours d'exécution, un bouton de lecture vert sera affiché dans le coin en bas à droite de l'icône de l'Agent SQL Server au sein de SQL Server Management Studio.
Pour valider le statut de l'agent SQL Server pour une instance donnée en utilisant T-SQL l'extrait de code suivant:
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
Source = Colin Stasiuk
J'ai remarqué que vous pouvez arrêter l'Agent du studio de gestion. Mais, après cela, vous ne pouvez pas le redémarrer à partir de là. Vous pouvez redémarrer à partir des services Windows. Je me demande pourquoi c'est comme ça. – Steam
Cela a fonctionné pour moi. J'ai vu un '1' pour mon InstanceName. Works on 2000, 05, 08R2 – Steam
^^^^^ sysprocesses est obsolète depuis SQL Server 2005, donc non, vous ne devriez pas utiliser cette réponse directement aujourd'hui, sauf si vous voulez la réécrire plus tard – Steam
IF EXISTS (SELECT 1 FROM sysprocesses WHERE LEFT(program_name, 8) = 'SQLAgent')
PRINT 'Agent is running!'
ELSE
PRINT 'Agent is not connected!';
Faites-moi savoir si cela fonctionne d'autre essayer
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
Pourquoi avez-vous ajouté Colin code échantillon à votre réponse, qui était la réponse de John Samson 7 minutes plus tôt? –
Malheureusement, je ne l'ai pas vérifié. –
Mais vous pouvez l'enlever, maintenant que vous le savez. Il n'y a absolument aucune valeur à avoir exactement le même échantillon de code dans deux réponses différentes. –
Automatisez la vérification si SQL Server Agent est en cours d'exécution avec ce fichier de commandes.
Il commencera à démarrer le service s'il ne fonctionne pas déjà.
Vous devrez modifier le nom du service (SQLServerAgent) pour certaines versions 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"
)
)
Le plus rapide, plus facile, plus directest façon de déterminer si l'agent SQL est en cours d'exécution, et qui peut être fait facilement dans SSMS, est une requête (par conséquent, il peut être automatisé), et n'est pas l'interrogation une table système obsolètesysprocesses
) ou EXECing xp_servicecontrol
, est un DMV qui a été introduit dans le Service Pack 1 pour SQL Server 2008 R2:
SELECT dss.[status], dss.[status_desc]
FROM sys.dm_server_services dss
WHERE dss.[servicename] LIKE N'SQL Server Agent (%';
Retours:
status status_desc
4 Running
Il ne nécessite que l'autorisation du serveur VIEW SERVER STATE
, mais vous en avez déjà eu besoin pour en voir le statut dans Object Explorer (dans SSMS). Et, si vous ne voulez pas accorder VIEW SERVER STATE
à une connexion particulière parce qu'elle permet d'obtenir trop d'autres informations, vous n'avez techniquement rien à accorder, du moins pas à un utilisateur réel. Voir ma réponse sur DBA.StackExchange sur une question similaire pour les détails (y compris un exemple de travail):
C'est ce que j'utilise dans powershell
Get-Service | Where-Object -like -value '*sql*agent*' -Property 'name'
- 1. Agent SQL Server: Comment "dormir"?
- 2. Télécharger SQL SERVER AGENT - Microsoft SQL Server
- 3. SQL Server: Comment vérifier si CLR est activé?
- 4. Comment vérifier si une colonne datetime SQL Server est vide?
- 5. Comment vérifier si SQL Server est installé dans wix 3.5
- 6. SQL Server (SQLEXPRESS) et Agent SQL Server (SQLEXPRESS)
- 7. Agent SQL Server en état arrêté
- 8. Comment déboguer des travaux SQL Server Agent?
- 9. Comment sauvegarder les jobs SQL Server Agent?
- 10. Comment sauvegarder les jobs SQL Server Agent?
- 11. Comment vérifier si NetStream est en cours de lecture
- 12. Android AsyncTasks Comment vérifier Si l'activité est toujours en cours
- 13. Comment vérifier si un thread Android est en cours d'exécution
- 14. comment vérifier si l'application javafx est déjà en cours d'exécution?
- 15. aws php sdk, comment vérifier si l'état est en cours
- 16. Comment vérifier si un fichier est encore en cours d'écriture?
- 17. Comment vérifier si un site Web est en cours
- 18. Comment vérifier si hdfs est en cours d'exécution?
- 19. Comment vérifier si l'économiseur d'écran est en cours d'exécution?
- 20. Comment détecter si webpack-dev-server est en cours d'exécution?
- 21. vérifier si la table existe sql server
- 22. comment savoir qui a modifié le travail SQL Server Agent?
- 23. Vérifier si l'utilisateur est en cours de défilement
- 24. jQuery vérifier si javascript est en cours de traitement
- 25. Comment puis-je savoir si une base de données SQL Server est en cours de sauvegarde
- 26. Comment vérifier si Selenium Server fonctionne
- 27. Comment détecter avec précision si un travail SQL Server est en cours d'exécution et gérer le travail en cours d'exécution?
- 28. Erreur SQL Server Agent - Connexion "DatabaseName" est introuvable?
- 29. Vérifier si la transition CSS3 est en cours
- 30. Vérifiez si un proc stocké est en cours d'exécution?
Voulez-vous vérifier manuellement? Ou de SQL? – RedFilter
ou à partir du code ...? –
si c'est possible, je préfère vérifier à partir de SQL Server Management Studio – qinking126