SQL Server AgentSQL Server Agent

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

Dans cette rubriqueIn This Topic

Avantages de SQL Server AgentBenefits of SQL Server Agent

SQL ServerSQL Server Agent utilise SQL ServerSQL Server pour stocker les informations sur les travaux. to store job information. Les travaux contiennent une ou plusieurs étapes de travail.Jobs contain one or more job steps. Chaque étape contient sa propre tâche, par exemple, la sauvegarde d'une base de données.Each step contains its own task, for example, backing up a database.

SQL ServerSQL Server Agent peut exécuter un travail sur la base d'une planification, en réponse à un événement spécifique ou sur demande. Agent can run a job on a schedule, in response to a specific event, or on demand. 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.For example, if you want to back up all the company servers every weekday after hours, you can automate this task. 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.Schedule the backup to run after 22:00 Monday through Friday; if the backup encounters a problem, SQL Server Agent can record the event and notify you.

Note

Par défaut, le service de SQL ServerSQL Server Agent est désactivé lorsque SQL Server 2017SQL Server 2017 est installé, sauf si l'utilisateur choisit explicitement de démarrer automatiquement le service.By default, the SQL ServerSQL Server Agent service is disabled when SQL Server 2017SQL Server 2017 is installed unless the user explicitly chooses to autostart the service.

Composants de SQL Server AgentSQL Server Agent Components

SQL ServerSQL 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é. Agent uses the following components to define the tasks to be performed, when to perform the tasks, and how to report the success or failure of the tasks.

travauxJobs

Un travail est une suite d'actions effectuées par SQL ServerSQL Server Agent.A job is a specified series of actions that SQL ServerSQL Server Agent performs. 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é.Use jobs to define an administrative task that can be run one or more times and monitored for success or failure. Un travail peut être exécuté sur un serveur local ou sur plusieurs serveurs distants.A job can run on one local server or on multiple remote servers.

Important

SQL ServerSQL Server Les travaux qui s'exécutent au moment d'un événement de basculement sur une instance de cluster de basculement SQL ServerSQL Server ne reprennent pas sur un autre nœud de cluster de basculement après le basculement. failover cluster instance do not resume after failover to another failover cluster node. SQL ServerSQL 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. Agent jobs that are running at the time a Hyper-V node is paused do not resume if the pause causes a failover to another node. 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.Jobs that begin but fail to complete because of a failover event are logged as started, but do not show additional log entries for completion or failure. SQL ServerSQL Server dans ces scénarios semblent ne s'être jamais terminés. Agent jobs in these scenarios appear to have never ended.

Vous pouvez exécuter un travail :You can run jobs in several ways:

  • en fonction d'une ou plusieurs planifications ;According to one or more schedules.

  • en réponse à une ou plusieurs alertes ;In response to one or more alerts.

  • en exécutant la procédure stockée sp_start_job.By executing the sp_start_job stored procedure.

Chaque action d'un travail est appelée étape du travail.Each action in a job is a job step. Par exemple, une étape du travail peut être l'exécution d'une instruction Transact-SQLTransact-SQL , l'exécution d'un package SSISSSIS ou l'envoi d'une commande à un serveur Analysis Services.For example, a job step might consist of running a Transact-SQLTransact-SQL statement, executing an SSISSSIS package, or issuing a command to an Analysis Services server. Les étapes du travail sont gérées dans le cadre d'un travail.Job steps are managed as part of a job.

Chaque étape s'exécute dans un contexte de sécurité spécifique.Each job step runs in a specific security context. Pour les étapes qui utilisent Transact-SQLTransact-SQL, utilisez l'instruction EXECUTE AS pour définir le contexte de sécurité.For job steps that use Transact-SQLTransact-SQL, use the EXECUTE AS statement to set the security context for the job step. Pour les autres types d'étapes, utilisez un compte proxy.For other types of job steps, use a proxy account to set the security context for the job step.

PlanificationsSchedules

Une planification programme l'exécution d'un travail.A schedule specifies when a job runs. Une même planification peut porter sur plusieurs travaux, et plusieurs planifications peuvent impliquer le même travail.More than one job can run on the same schedule, and more than one schedule can apply to the same job. Une planification peut prévoir l'exécution d'un travail :A schedule can define the following conditions for the time when a job runs:

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

  • au moment où l'utilisation de l'UC atteint le niveau d'inactivité que vous avez défini ;Whenever CPU utilization of the computer is at a level you have defined as idle.

  • ponctuellement, à une date et une heure spécifiques ;One time, at a specific date and time.

  • Selon une planification récurrente.On a recurring schedule.

Pour plus d’informations, consultez Créer des planifications et les attacher à des travaux.For more information, see Create and Attach Schedules to Jobs.

AlertesAlerts

Une alerte est une réponse automatique à un événement donné.An alert is an automatic response to a specific event. Par exemple, un événement peut être un travail qui démarre ou des ressources système qui atteignent un seuil spécifique.For example, an event can be a job that starts or system resources that reach a specific threshold. Vous définissez les conditions selon lesquelles une alerte est déclenchée.You define the conditions under which an alert occurs.

Une alerte peut être une réponse à :An alert can respond to one of the following conditions:

  • SQL ServerSQL Server Des événements. events

  • SQL ServerSQL Server Des conditions de performance. performance conditions

  • Des événements Windows Management Instrumentation sur l'ordinateur qui exécute SQL Server Agent.Microsoft Windows Management Instrumentation (WMI) events on the computer where SQL Server Agent is running

Une alerte peut :An alert can perform the following actions:

  • prévenir un ou plusieurs opérateurs ;Notify one or more operators

  • exécuter un travail.Run a job

Pour plus d’informations, consultez Alertes.For more information, see Alerts.

OpérateursOperators

Un opérateur est une personne responsable de la maintenance d'une ou plusieurs instances de SQL ServerSQL Server.An operator defines contact information for an individual responsible for the maintenance of one or more instances of SQL ServerSQL Server. Dans certaines sociétés, les responsabilités d'opérateur sont affectées à une seule personne.In some enterprises, operator responsibilities are assigned to one individual. Dans les entreprises qui ont de nombreux serveurs, plusieurs personnes peuvent se partager les responsabilités d'opérateur.In enterprises with multiple servers, many individuals can share operator responsibilities. Un opérateur ne contient pas d'informations de sécurité et ne définit pas de principal de sécurité.An operator does not contain security information, and does not define a security principal.

SQL ServerSQL Server peut notifier les opérateurs à propos d’alertes par : can notify operators of alerts through one or more of the following:

  • E-mailE-mail

  • Radiomessagerie (via e-mail)Pager (through e-mail)

  • net sendnet send

Note

Pour envoyer des notifications via net send, le service Windows Messenger doit être actif sur l’ordinateur sur lequel SQL ServerSQL Server Agent réside.To send notifications by using net send, the Windows Messenger service must be started on the computer where SQL ServerSQL Server Agent resides.

Important

Les options du récepteur de radiomessagerie et net send seront supprimées de SQL ServerSQL Server Agent dans une prochaine version de SQL ServerSQL Server.The Pager and net send options will be removed from SQL ServerSQL Server Agent in a future version of SQL ServerSQL 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.Avoid using these features in new development work, and plan to modify applications that currently use these features.

Pour envoyer des notifications aux opérateurs par e-mail ou radiomessagerie, vous devez configurer SQL ServerSQL Server Agent afin qu’il utilise la messagerie de base de données.To send notifications to operators by using e-mail or pagers, you must configure SQL ServerSQL Server Agent to use Database Mail. Pour plus d’informations, consultez Messagerie de base de données.For more information, see Database Mail.

Un opérateur peut être l'alias d'un groupe d'individus.You can define an operator as the alias for a group of individuals. De cette façon, tous les membres de cet alias sont avertis en une seule fois.In this way, all members of that alias are notified at the same time. Pour plus d’informations, consultez Opérateurs.For more information, see Operators.

Sécurité pour l'administration de SQL Server AgentSecurity for SQL Server Agent Administration

SQL ServerSQL 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 ServerSQL Server Agent par les utilisateurs qui ne sont pas membres du rôle serveur fixe sysadmin . Agent for users who are not members of the sysadmin fixed server role. 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.In addition to these fixed database roles, subsystems and proxies help database administrators ensure that each job step runs with the minimum permissions required to perform its task.

RôlesRoles

Les membres des rôles de base de données fixes SQLAgentUserRole, SQLAgentReaderRoleet SQLAgentOperatorRole de msdbet les membres du rôle de serveur fixe sysadmin ont accès à SQL ServerSQL Server Agent.Members of the SQLAgentUserRole, SQLAgentReaderRole, and SQLAgentOperatorRole fixed database roles in msdb, and members of the sysadmin fixed server role have access to SQL ServerSQL Server Agent. Un utilisateur qui n'appartient à aucun de ces rôles ne peut pas utiliser SQL ServerSQL Server Agent.A user that does not belong to any of these roles cannot use SQL ServerSQL Server Agent. Pour plus d’informations sur les rôles utilisés par SQL ServerSQL Server Agent, consultez Implémenter la sécurité de SQL Server Agent.For more information on the roles used by SQL ServerSQL Server Agent, see Implement SQL Server Agent Security.

Sous-systèmesSubsystems

Un sous-système est un objet prédéfini qui représente la fonctionnalité disponible pour une étape de travail.A subsystem is a predefined object that represents functionality that is available to a job step. Chaque proxy a accès à un ou plusieurs sous-systèmes.Each proxy has access to one or more subsystems. Les sous-systèmes assurent la sécurité en délimitant l'accès aux fonctionnalités mises à la disposition d'un proxy.Subsystems provide security because they delimit access to the functionality that is available to a proxy. Chaque étape de travail s'exécute dans le contexte d'un proxy, à l'exception des étapes de travail Transact-SQLTransact-SQL .Each job step runs in the context of a proxy, except for Transact-SQLTransact-SQL job steps. Transact-SQLTransact-SQL utilise la commande EXECUTE AS pour définir le contexte de sécurité. job steps use the EXECUTE AS command to set the security context.

SQL ServerSQL Server définit les sous-systèmes répertoriés dans le tableau suivant : defines the subsystems listed in the following table:

Nom du sous-systèmeSubsystem name DescriptionDescription
Script ActiveX MicrosoftMicrosoft ActiveX Script Permet d'exécuter une étape de travail de script ActiveXRun an ActiveX scripting job step.

Avertissement Le sous-système de création de scripts ActiveX sera supprimé de SQL ServerSQL Server Agent dans une version future de MicrosoftMicrosoft SQL ServerSQL Server.Warning The ActiveX Scripting subsystem will be removed from SQL ServerSQL Server Agent in a future version of MicrosoftMicrosoft SQL ServerSQL 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é.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.
Système d’exploitation (CmdExec)Operating System (CmdExec) Permet de lancer un programme exécutable.Run an executable program.
PowerShellPowerShell Exécutez une étape de travail de scripts PowerShell.Run a PowerShell scripting job step.
Serveur de distribution de réplicationReplication Distributor Permet d'exécuter une étape de travail qui active l'Agent de distribution.Run a job step that activates the replication Distribution Agent.
Fusion de réplicationReplication Merge Permet d'exécuter une étape de travail qui active l'Agent de fusion.Run a job step that activates the replication Merge Agent.
Agent de lecture de file d'attente de réplicationReplication Queue Reader Permet d'exécuter une étape de travail qui active l'Agent de lecture de la file d'attente de réplication.Run a job step that activates the replication Queue Reader Agent.
Instantané de réplicationReplication Snapshot Permet d'exécuter une étape de travail qui active l'Agent d'instantané des réplications.Run a job step that activates the replication Snapshot Agent.
Agent de lecture du journal des transactions de réplicationReplication Transaction Log Reader Permet d'exécuter une étape de travail qui active l'Agent de lecture du journal des réplications.Run a job step that activates the replication Log Reader Agent.
Analysis ServicesAnalysis Services Command Command Permet d'exécuter une commande Analysis ServicesAnalysis Services .Run an Analysis ServicesAnalysis Services command.
Analysis ServicesAnalysis Services Requête Query Permet d'exécuter une requête Analysis ServicesAnalysis Services .Run an Analysis ServicesAnalysis Services query.
SSISSSIS Exécution du package package execution Permet d'exécuter un package SSISSSIS .Run an SSISSSIS package.
Note

Comme les étapes de travail Transact-SQLTransact-SQL n'utilisent pas de proxys, il n'existe aucun sous-système de SQL ServerSQL Server Agent pour les étapes de travail Transact-SQLTransact-SQL .Because Transact-SQLTransact-SQL job steps do not use proxies, there is no SQL ServerSQL Server Agent subsystem for Transact-SQLTransact-SQL job steps.

SQL ServerSQL 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. Agent enforces subsystem restrictions even when the security principal for the proxy would normally have permission to run the task in the job step. 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 SSISSSIS , à moins que le proxy ait accès au sous-système SSISSSIS , même si l'utilisateur peut exécuter des packages SSISSSIS .For example, a proxy for a user that is a member of the sysadmin fixed server role cannot run an SSISSSIS job step unless the proxy has access to the SSISSSIS subsystem, even though the user can run SSISSSIS packages.

ProxysProxies

SQL ServerSQL Server Agent utilise les proxys pour gérer les contextes de sécurité. Agent uses proxies to manage security contexts. Un proxy peut être utilisé dans plusieurs étapes de travail.A proxy can be used in more than one job step. Les membres du rôle de serveur fixe sysadmin peuvent créer des proxys.Members of the sysadmin fixed server role can create proxies.

Chaque proxy correspond à des informations d'identification de sécurité.Each proxy corresponds to a security credential. Chaque proxy peut être associé à un ensemble de sous-systèmes et de connexions.Each proxy can be associated with a set of subsystems and a set of logins. Le proxy peut être utilisé uniquement pour les étapes de travail qui utilisent un sous-système associé au proxy.The proxy can be used only for job steps that use a subsystem associated with the 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.To create a job step that uses a specific proxy, the job owner must either use a login associated with that proxy or be a member of a role with unrestricted access to proxies. Les membres du rôle de serveur fixe sysadmin disposent d'un accès sans restriction aux proxys.Members of the sysadmin fixed server role have unrestricted access to proxies. Les membres des rôles SQLAgentUserRole, SQLAgentReaderRoleou SQLAgentOperatorRole peuvent utiliser uniquement les proxys pour lesquels un accès spécifique leur a été accordé.Members of SQLAgentUserRole, SQLAgentReaderRole, or SQLAgentOperatorRole can only use proxies to which they have been granted specific access. Chaque utilisateur membre de l'un des rôles de base de données fixes de SQL ServerSQL 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.Each user that is a member of any of these SQL ServerSQL Server Agent fixed database roles must be granted access to specific proxies so that the user can create job steps that use those proxies.

Tâches associéesRelated Tasks

Utilisez les étapes suivantes pour configurer SQL ServerSQL Server Agent de manière à automatiser l'administration de SQL ServerSQL Server :Use the following steps to configure SQL ServerSQL Server Agent to automate SQL ServerSQL Server administration:

  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.Establish which administrative tasks or server events occur regularly and whether these tasks or events can be administered programmatically. 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.A task is a good candidate for automation if it involves a predictable sequence of steps and occurs at a specific time or in response to a specific event.

  2. Définissez un ensemble de travaux, de planifications, d’alertes et d’opérateurs à l’aide de scripts SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL ou d’objets SMO SQL ServerSQL Server .Define a set of jobs, schedules, alerts, and operators by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL scripts, or SQL ServerSQL Server Management Objects (SMO). Pour plus d’informations, consultez Créer des travaux.For more information, see Create Jobs.

  3. Exécutez les travaux de SQL ServerSQL Server Agent que vous avez définis.Run the SQL ServerSQL Server Agent jobs you have defined.

Note

Pour l'instance par défaut de SQL ServerSQL Server, le service SQL ServerSQL Server se nomme SQLSERVERAGENT.For the default instance of SQL ServerSQL Server, the SQL ServerSQL Server service is named SQLSERVERAGENT. Pour les instances nommées, le service SQL ServerSQL Server Agent se nomme SQLAgent$nom_instance.For named instances, the SQL ServerSQL Server Agent service is named SQLAgent$instancename.

Si vous exécutez plusieurs instances de SQL ServerSQL Server, vous pouvez employer l'administration multiserveur pour automatiser des tâches courantes dans toutes les instances.If you are running multiple instances of SQL ServerSQL Server, you can use multiserver administration to automate tasks common across all instances. Pour plus d’informations, consultez Administration automatisée à l’échelle d’une entreprise.For more information, see Automated Administration Across an Enterprise.

Utilisez les tâches suivantes pour démarrer SQL ServerSQL Server Agent :Use the following tasks to get started with SQL ServerSQL Server Agent:

DescriptionDescription RubriqueTopic
Explique comment configurer SQL Server Agent.Describes how to configure SQL Server Agent. Configurer SQL Server AgentConfigure SQL Server Agent
Explique comment démarrer, arrêter et interrompre le service SQL Server Agent.Describes how to start, stop, and pause the SQL Server Agent service. Démarrer, arrêter ou suspendre le service SQL Server AgentStart, Stop, or Pause the SQL Server Agent Service
Décrit les considérations à prendre en compte lors de la spécification d'un compte pour le service SQL Server Agent.Describes considerations for specifying an account for the SQL Server Agent service. Sélectionner un compte pour le service SQL Server AgentSelect an Account for the SQL Server Agent Service
Explique comment utiliser le journal des erreurs de SQL Server Agent.Describes how to use the SQL Server Agent error log. Journal des erreurs de SQL Server AgentSQL Server Agent Error Log
Explique comment utiliser des objets de performances.Describes how to use performance objects. Utiliser des objets de performanceUse Performance Objects
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.Describes the Maintenance Plan Wizard, which is a utility that you can use to help create jobs, alerts, and operators to automate administration of an instance of SQL Server. Utiliser l'Assistant Plan de maintenanceUse the Maintenance Plan Wizard
Explique comment automatiser des tâches administratives à l'aide de SQL Server Agent.Describes how to automate administrative tasks using SQL Server Agent. Tâches d’administration automatisée (SQL Server Agent)Automated Administration Tasks (SQL Server Agent)

Voir aussiSee Also

Configuration de la surface d'expositionSurface Area Configuration