SQL Server Agent

 

Date de publication : mai 2016

SQL Server Agent est un service Microsoft Windows qui exécute des tâches administratives planifiées appelées travaux dans SQL Server 2016.

Dans cette rubrique

SQL Server Agent utilise SQL Server pour stocker les informations sur les travaux. Les travaux contiennent une ou plusieurs étapes de travail. Chaque étape contient sa propre tâche, par exemple, la sauvegarde d'une base de données.

SQL Server Agent peut exécuter un travail sur la base d'une planification, en réponse à un événement spécifique ou sur demande. Par exemple, si vous sauvegardez l’ensemble des serveurs de l’entreprise chaque jour ouvrable après les horaires de bureau, vous pouvez automatiser cette tâche. Planifiez l'exécution de la sauvegarde après 22h00 du lundi au vendredi ; si la sauvegarde rencontre un problème, SQL Server Agent peut enregistrer l'événement et vous en avertir.

System_CAPS_ICON_note.jpg Remarque


Par défaut, le service de SQL Server Agent est désactivé lorsque SQL Server 2016 est installé, sauf si l'utilisateur choisit explicitement de démarrer automatiquement le service.

SQL Server Agent utilise les composants ci-après pour définir les tâches à exécuter et quand les exécuter, et pour signaler si elles ont réussi ou échoué.

Travaux

Un travail est une suite d'actions effectuées par SQL Server Agent. Utilisez les travaux pour définir une tâche administrative, afin qu'elle soit exécutée une ou plusieurs fois et que son résultat (échec ou réussite) soit contrôlé. Un travail peut être exécuté sur un serveur local ou sur plusieurs serveurs distants.

System_CAPS_ICON_important.jpg Important


SQL Server Les travaux qui s'exécutent au moment d'un événement de basculement sur une instance de cluster de basculement SQL Server ne reprennent pas sur un autre nœud de cluster de basculement après le basculement. SQL Server Agent : Les travaux qui s’exécutent au moment où un nœud Hyper-V est suspendu ne reprennent pas si la pause provoque un basculement vers un autre nœud. Les travaux qui commencent mais ne peuvent pas se terminer à cause d'un événement de basculement sont enregistrés comme commencés, mais n'affichent pas d'entrées de journal supplémentaires pour l'achèvement ou l'échec. SQL Server dans ces scénarios semblent ne s'être jamais terminés.

Vous pouvez exécuter un travail :

  • en fonction d'une ou plusieurs planifications ;

  • en réponse à une ou plusieurs alertes ;

  • en exécutant la procédure stockée sp_start_job.

Chaque action d'un travail est appelée étape du travail. Par exemple, une étape du travail peut être l'exécution d'une instruction Transact-SQL , l'exécution d'un package SSIS ou l'envoi d'une commande à un serveur Analysis Services. Les étapes du travail sont gérées dans le cadre d'un travail.

Chaque étape s'exécute dans un contexte de sécurité spécifique. Pour les étapes qui utilisent Transact-SQL, utilisez l'instruction EXECUTE AS pour définir le contexte de sécurité. Pour les autres types d'étapes, utilisez un compte proxy.

Planifications

Une planification programme l'exécution d'un travail. Une même planification peut porter sur plusieurs travaux, et plusieurs planifications peuvent impliquer le même travail. Une planification peut prévoir l'exécution d'un travail :

  • Au moment où SQL Server Agent démarre.

  • au moment où l'utilisation de l'UC atteint le niveau d'inactivité que vous avez défini ;

  • ponctuellement, à une date et une heure spécifiques ;

  • Selon une planification récurrente.

Pour plus d’informations, consultez Créer des planifications et les attacher à des travaux.

Alertes

Une alerte est une réponse automatique à un événement donné. Par exemple, un événement peut être un travail qui démarre ou des ressources système qui atteignent un seuil spécifique. Vous définissez les conditions selon lesquelles une alerte est déclenchée.

Une alerte peut être une réponse à :

  • SQL Server Des événements.

  • SQL Server Des conditions de performance.

  • Des événements Windows Management Instrumentation sur l'ordinateur qui exécute SQL Server Agent.

Une alerte peut :

  • prévenir un ou plusieurs opérateurs ;

  • exécuter un travail.

Pour plus d’informations, consultez Alertes.

Opérateurs

Un opérateur est une personne responsable de la maintenance d'une ou plusieurs instances de SQL Server. Dans certaines sociétés, les responsabilités d'opérateur sont affectées à une seule personne. Dans les entreprises qui ont de nombreux serveurs, plusieurs personnes peuvent se partager les responsabilités d'opérateur. Un opérateur ne contient pas d'informations de sécurité et ne définit pas de principal de sécurité.

SQL Server peut notifier les opérateurs à propos d’alertes par :

  • E-mail

  • Radiomessagerie (via e-mail)

  • net send

System_CAPS_ICON_note.jpg Remarque


Pour envoyer des notifications via net send, le service Windows Messenger doit être actif sur l’ordinateur sur lequel SQL Server Agent réside.

System_CAPS_ICON_important.jpg Important


Les options du récepteur de radiomessagerie et net send seront supprimées de SQL Server Agent dans une prochaine version de SQL Server. Évitez d'utiliser ces fonctionnalités dans une nouvelle tâche de développement et prévoyez de modifier les applications qui les utilisent actuellement.

Pour envoyer des notifications aux opérateurs par e-mail ou radiomessagerie, vous devez configurer SQL Server Agent afin qu’il utilise la messagerie de base de données. Pour plus d’informations, consultez Messagerie de base de données.

Un opérateur peut être l'alias d'un groupe d'individus. De cette façon, tous les membres de cet alias sont avertis en une seule fois. Pour plus d’informations, consultez Opérateurs.

SQL Server Agent utilise les rôles de base de données fixes SQLAgentUserRole, SQLAgentReaderRoleet SQLAgentOperatorRole de la base de données msdb pour contrôler l'accès à SQL Server Agent par les utilisateurs qui ne sont pas membres du rôle serveur fixe sysadmin. Outre ces rôles de base de données fixes, les sous-systèmes et les proxys aident les administrateurs de base de données à garantir que chaque étape de travail est exécutée avec les autorisations minimales nécessaires à la réalisation de cette tâche.

Rôles

Les membres des rôles de base de données fixes SQLAgentUserRole, SQLAgentReaderRoleet SQLAgentOperatorRole de msdb et les membres du rôle de serveur fixe sysadmin ont accès à SQL Server Agent. Un utilisateur qui n'appartient à aucun de ces rôles ne peut pas utiliser SQL Server Agent. Pour plus d’informations sur les rôles utilisés par SQL Server Agent, consultez Implémenter la sécurité de SQL Server Agent.

Sous-systèmes

Un sous-système est un objet prédéfini qui représente la fonctionnalité disponible pour une étape de travail. Chaque proxy a accès à un ou plusieurs sous-systèmes. Les sous-systèmes assurent la sécurité en délimitant l'accès aux fonctionnalités mises à la disposition d'un proxy. Chaque étape de travail s'exécute dans le contexte d'un proxy, à l'exception des étapes de travail Transact-SQL . Transact-SQL utilise la commande EXECUTE AS pour définir le contexte de sécurité.

SQL Server définit les sous-systèmes répertoriés dans le tableau suivant :

Nom du sous-systèmeDescription
Script ActiveX MicrosoftPermet d'exécuter une étape de travail de script ActiveX

** Avertissement ** Le sous-système de création de scripts ActiveX sera supprimé de SQL Server Agent dans une prochaine version de MicrosoftSQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.
Système d’exploitation (CmdExec)Permet de lancer un programme exécutable.
PowerShellExécutez une étape de travail de scripts PowerShell.
Serveur de distribution de réplicationPermet d'exécuter une étape de travail qui active l'Agent de distribution.
Fusion de réplicationPermet d'exécuter une étape de travail qui active l'Agent de fusion.
Agent de lecture de file d'attente de réplicationPermet d'exécuter une étape de travail qui active l'Agent de lecture de la file d'attente de réplication.
Instantané de réplicationPermet d'exécuter une étape de travail qui active l'Agent d'instantané des réplications.
Agent de lecture du journal des transactions de réplicationPermet d'exécuter une étape de travail qui active l'Agent de lecture du journal des réplications.
Analysis Services CommandPermet d'exécuter une commande Analysis Services .
Analysis Services RequêtePermet d'exécuter une requête Analysis Services .
SSIS Exécution du packagePermet d'exécuter un package SSIS .
System_CAPS_ICON_note.jpg Remarque


Comme les étapes de travail Transact-SQL n'utilisent pas de proxys, il n'existe aucun sous-système de SQL Server Agent pour les étapes de travail Transact-SQL.

SQL Server Agent applique les restrictions des sous-systèmes même si le principal de sécurité du proxy a généralement l'autorisation d'exécuter cette tâche dans l'étape de travail. Par exemple, un proxy pour un utilisateur qui est membre du rôle de serveur fixe sysadmin ne peut pas exécuter d'étape de travail SSIS, à moins que le proxy ait accès au sous-système SSIS, même si l'utilisateur peut exécuter des packages SSIS.

Proxys

SQL Server Agent utilise les proxys pour gérer les contextes de sécurité. Un proxy peut être utilisé dans plusieurs étapes de travail. Les membres du rôle de serveur fixe sysadmin peuvent créer des proxys.

Chaque proxy correspond à des informations d'identification de sécurité. Chaque proxy peut être associé à un ensemble de sous-systèmes et de connexions. Le proxy peut être utilisé uniquement pour les étapes de travail qui utilisent un sous-système associé au proxy. Pour créer une étape de travail qui utilise un proxy spécifique, le propriétaire du travail doit utiliser une connexion associée à ce proxy ou être membre d'un rôle sans restriction d'accès aux proxys. Les membres du rôle de serveur fixe sysadmin disposent d'un accès sans restriction aux proxys. Les membres des rôles SQLAgentUserRole, SQLAgentReaderRoleou SQLAgentOperatorRole peuvent utiliser uniquement les proxys pour lesquels un accès spécifique leur a été accordé. Chaque utilisateur membre de l'un des rôles de base de données fixes de SQL Server Agent doit disposer d'un accès à des proxys spécifiques de façon à pouvoir créer les étapes de travail qui les utilisent.

Utilisez les étapes suivantes pour configurer SQL Server Agent de manière à automatiser l'administration de SQL Server :

  1. Identifiez les tâches administratives et les événements de serveur se produisant régulièrement et déterminez si ces tâches ou ces événements peuvent être administrés par programme. Une tâche convient à l'automatisation si elle implique une séquence d'étapes prévisibles et se produit à un moment spécifique ou en réponse à un événement particulier.

  2. Définissez un ensemble de travaux, de planifications, d’alertes et d’opérateurs à l’aide de scripts SQL Server Management Studio, Transact-SQL ou d’objets SMO SQL Server. Pour plus d’informations, consultez Créer des travaux.

  3. Exécutez les travaux de SQL Server Agent que vous avez définis.

System_CAPS_ICON_note.jpg Remarque


Pour l'instance par défaut de SQL Server, le service SQL Server se nomme SQLSERVERAGENT. Pour les instances nommées, le service SQL Server Agent se nomme SQLAgent$nom_instance.

Si vous exécutez plusieurs instances de SQL Server, vous pouvez employer l'administration multiserveur pour automatiser des tâches courantes dans toutes les instances. Pour plus d’informations, consultez Administration automatisée à l’échelle d’une entreprise.

Utilisez les tâches suivantes pour démarrer SQL Server Agent :

DescriptionRubrique
Explique comment configurer SQL Server Agent.Configurer SQL Server Agent
Explique comment démarrer, arrêter et interrompre le service SQL Server Agent.Démarrer, arrêter ou suspendre le service SQL Server Agent
Décrit les considérations à prendre en compte lors de la spécification d'un compte pour le service SQL Server Agent.Sélectionner un compte pour le service SQL Server Agent
Explique comment utiliser le journal des erreurs de SQL Server Agent.Journal des erreurs de SQL Server Agent
Explique comment utiliser des objets de performances.Utiliser des objets de performance
Décrit l'Assistant Plan de maintenance qui est un utilitaire permettant de créer des travaux, des alertes et des opérateurs en vue d'automatiser l'administration d'une instance de SQL Server.Utiliser l'Assistant Plan de maintenance
Explique comment automatiser des tâches administratives à l'aide de SQL Server Agent.Tâches d’administration automatisée (SQL Server Agent)

Configuration de la surface d'exposition

Ajouts de la communauté

AJOUTER
Afficher: