Agente SQL ServerSQL Server Agent

SQL ServerSQL Server es un servicio de Microsoft Wendows que ejecuta tareas admenistrativas programadas, denomenadas trabajos en SQL Server 2017SQL Server 2017..

En este temaIn This Topic

Ventajas del Agente SQL ServerBenefits of SQL Server Agent

SQL ServerSQL Server usa SQL ServerSQL Server para almacenar información de los trabajos. to store job information. Los trabajos contienen uno o más pasos.Jobs contain one or more job steps. Cada paso contiene su propia tarea; por ejemplo, realizar una copia de seguridad de una base de datos.Each step contains its own task, for example, backing up a database.

SQL ServerSQL Server puede ejecutar un trabajo según una programación, como respuesta a un evento específico o a petición. Agent can run a job on a schedule, in response to a specific event, or on demand. Por ejemplo, si desea realizar una copia de seguridad de todos los servidores de la organización todos los días entre semana después del horario de trabajo, puede automatizar esta tarea.For example, if you want to back up all the company servers every weekday after hours, you can automate this task. Programe la copia de seguridad para que se ejecute después de las 22:00 h de lunes a viernes; si la copia de seguridad encuentra un problema, el Agente SQL Server puede registrar el evento y notificárselo.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.

Nota

El servicio del Agente SQL ServerSQL Server está deshabilitado de manera predeterminada cuando se instala SQL Server 2017SQL Server 2017 , a menos que el usuario elija explícitamente iniciar automáticamente el servicio.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.

Componentes del Agente SQL ServerSQL Server Agent Components

SQL ServerSQL Server emplea los siguientes componentes para definir las tareas que se van a realizar, cuándo se van a llevar a cabo y cómo se va a informar de si se han realizado correctamente o no. 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.

trabajosJobs

Un trabajo es una serie especificada de acciones que realiza el Agente SQL ServerSQL Server .A job is a specified series of actions that SQL ServerSQL Server Agent performs. Utilice los trabajos para definir tareas administrativas de manera que se ejecuten una o más veces, y se pueda supervisar si se realizan o no correctamente.Use jobs to define an administrative task that can be run one or more times and monitored for success or failure. Un trabajo se puede ejecutar en un servidor local o en varios servidores remotos.A job can run on one local server or on multiple remote servers.

Importante

SQL ServerSQL Server que se están ejecutando en el momento de un evento de conmutación por error en una instancia de clúster de conmutación por error de SQL ServerSQL Server no se reanudan después de la conmutación por error a otro nodo de clúster de conmutación por error. failover cluster instance do not resume after failover to another failover cluster node. SQL ServerSQL Server Los trabajos del Agente que se están ejecutando en el momento que se pausa un nodo de Hyper-V no se reanudan si la pausa origina una conmutación por error a otro nodo. 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. Los trabajos que empiezan pero no se finalizan como consecuencia de un evento de conmutación por error se registran como iniciados, pero no muestran entradas de registro adicionales para que indiquen finalización o error.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 se muestran como nunca finalizados. Agent jobs in these scenarios appear to have never ended.

Existen varias maneras de ejecutar trabajos:You can run jobs in several ways:

  • Conforme a una o más programaciones.According to one or more schedules.

  • Como respuesta a una o varias alertas.In response to one or more alerts.

  • Ejecutando el procedimiento almacenado sp_start_job.By executing the sp_start_job stored procedure.

Cada acción de un trabajo es un paso de trabajo.Each action in a job is a job step. Por ejemplo, un paso de trabajo puede consistir en la ejecución de una instrucción Transact-SQLTransact-SQL , la ejecución de un paquete SSISSSIS o la emisión de un comando en un servidor de 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. Los pasos de trabajo se administran como parte de un trabajo.Job steps are managed as part of a job.

Cada paso se ejecuta en un contexto de seguridad específico.Each job step runs in a specific security context. En el caso de los pasos de trabajo que utilizan Transact-SQLTransact-SQL, use la instrucción EXECUTE AS para establecer el contexto de seguridad para éstos.For job steps that use Transact-SQLTransact-SQL, use the EXECUTE AS statement to set the security context for the job step. Para los demás tipos de pasos de trabajo, utilice una cuenta de proxy para establecer el contexto de seguridad.For other types of job steps, use a proxy account to set the security context for the job step.

ProgramacionesSchedules

Una programación especifica cuándo se ejecuta un trabajo.A schedule specifies when a job runs. Se puede ejecutar más de un trabajo en la misma programación y se puede aplicar más de una programación al mismo trabajo.More than one job can run on the same schedule, and more than one schedule can apply to the same job. Una programación puede definir las condiciones siguientes del momento en el que se ejecuta un trabajo:A schedule can define the following conditions for the time when a job runs:

  • Cuando se inicia el Agente SQL ServerSQL Server .Whenever SQL ServerSQL Server Agent starts.

  • Cuando el uso de la CPU del equipo se encuentre en un nivel que se haya definido como inactivo.Whenever CPU utilization of the computer is at a level you have defined as idle.

  • Una vez, a una hora y una fecha específicas.One time, at a specific date and time.

  • Periódicamente.On a recurring schedule.

Para obtener más información, vea Crear y adjuntar programaciones a trabajos.For more information, see Create and Attach Schedules to Jobs.

AlertasAlerts

Una alerta es una respuesta automática a un evento específico.An alert is an automatic response to a specific event. Por ejemplo, un evento puede ser el inicio de un trabajo o que los recursos del sistema alcancen un umbral específico.For example, an event can be a job that starts or system resources that reach a specific threshold. Debe definir las condiciones en las que se genera una alerta.You define the conditions under which an alert occurs.

Una alerta puede responder a una de las condiciones siguientes:An alert can respond to one of the following conditions:

  • SQL ServerSQL Server eventos events

  • SQL ServerSQL Server condiciones de rendimiento performance conditions

  • Eventos del Instrumental de administración de Windows (WMI) en el equipo en el que se ejecuta el Agente SQL ServerMicrosoft Windows Management Instrumentation (WMI) events on the computer where SQL Server Agent is running

Una alerta puede realizar las acciones siguientes:An alert can perform the following actions:

  • Notificar a uno o varios operadoresNotify one or more operators

  • Ejecutar un trabajoRun a job

Para obtener más información, consulte Alertas.For more information, see Alerts.

OperadoresOperators

Un operador define información de contacto para las personas responsables del mantenimiento de una o varias instancias 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. En algunas compañías, las responsabilidades de operador están asignadas a una sola persona.In some enterprises, operator responsibilities are assigned to one individual. En compañías con varios servidores, muchas personas comparten las responsabilidades de operador.In enterprises with multiple servers, many individuals can share operator responsibilities. Un operador no contiene información de seguridad y no define una entidad de seguridad.An operator does not contain security information, and does not define a security principal.

SQL ServerSQL Server puede notificar a los operadores de alertas mediante una o varias de las opciones siguientes: can notify operators of alerts through one or more of the following:

  • Correo electrónicoE-mail

  • Buscapersonas (por correo electrónico)Pager (through e-mail)

  • net sendnet send

Nota

Para enviar notificaciones mediante net send,se debe iniciar el servicio Windows Messenger en el equipo en el que reside el Agente SQL ServerSQL Server .To send notifications by using net send, the Windows Messenger service must be started on the computer where SQL ServerSQL Server Agent resides.

Importante

Las opciones Buscapersonas y net send se quitarán del Agente SQL ServerSQL Server en una versión futura 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. Evite utilizar estas características en los nuevos trabajos de programación y planee modificar las aplicaciones que actualmente las utilizan.Avoid using these features in new development work, and plan to modify applications that currently use these features.

Para enviar a los operadores notificaciones por correo electrónico o buscapersonas, deberá configurar el Agente SQL ServerSQL Server para usar Correo electrónico de base de datos.To send notifications to operators by using e-mail or pagers, you must configure SQL ServerSQL Server Agent to use Database Mail. Para más información, consulte Correo electrónico de base de datos.For more information, see Database Mail.

Puede definir un operador como alias de un grupo de personas.You can define an operator as the alias for a group of individuals. De esta manera, todos los miembros de este alias pueden recibir notificaciones al mismo tiempo.In this way, all members of that alias are notified at the same time. Para obtener más información, consulte Operadores.For more information, see Operators.

Seguridad en la administración del Agente SQL ServerSecurity for SQL Server Agent Administration

SQL ServerSQL Server usa los roles fijos de base de datos SQLAgentUserRole, SQLAgentReaderRoley SQLAgentOperatorRole en la base de datos msdb para controlar el acceso al Agente SQL ServerSQL Server para aquellos usuarios que no son miembros del rol fijo de servidor sysadmin . Agent for users who are not members of the sysadmin fixed server role. Además de estos roles fijos de base de datos, los subsistemas y los servidores proxy ayudan a los administradores de bases de datos a garantizar que cada paso de trabajo se ejecuta con los permisos mínimos necesarios para realizar la tarea.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.

RolesRoles

Los miembros de los roles fijos de base de datos SQLAgentUserRole, SQLAgentReaderRoley SQLAgentOperatorRole de msdby los miembros del rol fijo de servidor sysadmin tienen acceso al Agente SQL ServerSQL Server .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 usuario que no pertenezca a ninguno de estos roles no puede utilizar el Agente SQL ServerSQL Server .A user that does not belong to any of these roles cannot use SQL ServerSQL Server Agent. Para más información sobre los roles que usa el Agente SQL ServerSQL Server , consulte Implementar la seguridad del Agente SQL Server.For more information on the roles used by SQL ServerSQL Server Agent, see Implement SQL Server Agent Security.

SubsistemasSubsystems

Un subsistema es un objeto predefinido que representa las funciones disponibles para un paso de trabajo.A subsystem is a predefined object that represents functionality that is available to a job step. Cada proxy tiene acceso a uno o varios subsistemas.Each proxy has access to one or more subsystems. Los subsistemas proporcionan seguridad, ya que delimitan el acceso a las que funciones que están disponibles para el proxy.Subsystems provide security because they delimit access to the functionality that is available to a proxy. Cada paso de trabajo se ejecuta en el contexto de un proxy, con la excepción de los pasos de trabajo de Transact-SQLTransact-SQL .Each job step runs in the context of a proxy, except for Transact-SQLTransact-SQL job steps. Transact-SQLTransact-SQL utilizan el comando EXECUTE AS para establecer el contexto de seguridad. job steps use the EXECUTE AS command to set the security context.

SQL ServerSQL Server define los subsistemas incluidos en la tabla siguiente: defines the subsystems listed in the following table:

Nombre del subsistemaSubsystem name DescriptionDescription
Scripts Microsoft ActiveXMicrosoft ActiveX Script Ejecuta un paso de trabajo de scripts ActiveX.Run an ActiveX scripting job step.

Advertencia El subsistema de scripts ActiveX se quitará del Agente SQL ServerSQL Server en una versión futura 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. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.
Sistema operativo (CmdExec)Operating System (CmdExec) Ejecuta un programa ejecutable.Run an executable program.
PowerShellPowerShell Ejecuta un paso de trabajo de scripts de PowerShell.Run a PowerShell scripting job step.
Distribuidor de replicaciónReplication Distributor Ejecuta un paso de trabajo que activa el Agente de distribución de replicación.Run a job step that activates the replication Distribution Agent.
Mezcla de replicaciónReplication Merge Ejecuta un paso de trabajo que activa el Agente de mezcla.Run a job step that activates the replication Merge Agent.
Lector de cola de replicaciónReplication Queue Reader Ejecuta un paso de trabajo que activa el Agente de lectura de cola de replicación.Run a job step that activates the replication Queue Reader Agent.
Instantánea de replicaciónReplication Snapshot Ejecuta un paso de trabajo que activa el Agente de instantáneas.Run a job step that activates the replication Snapshot Agent.
Registro del LOG de transacciones de replicaciónReplication Transaction Log Reader Ejecuta un paso de trabajo que activa el Agente de registro del LOG.Run a job step that activates the replication Log Reader Agent.
Analysis ServicesAnalysis Services Command Command Ejecuta un comando de Analysis ServicesAnalysis Services .Run an Analysis ServicesAnalysis Services command.
Analysis ServicesAnalysis Services Query Query Ejecuta una consulta de Analysis ServicesAnalysis Services .Run an Analysis ServicesAnalysis Services query.
SSISSSIS ejecución de paquetes package execution Ejecuta un paquete de SSISSSIS .Run an SSISSSIS package.
Nota

Puesto que los pasos de trabajo Transact-SQLTransact-SQL no utilizan proxy, no hay ningún subsistema del Agente SQL ServerSQL Server para los pasos de trabajo 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 aplica las restricciones del subsistema incluso si la entidad de seguridad del proxy tuviera permiso para ejecutar la tarea del paso de trabajo. Agent enforces subsystem restrictions even when the security principal for the proxy would normally have permission to run the task in the job step. Por ejemplo, un proxy para un usuario que es miembro del rol fijo de servidor sysadmin no puede ejecutar un paso de trabajo SSISSSIS salvo que el proxy tenga acceso al subsistema de SSISSSIS , aunque el usuario pueda ejecutar paquetes de 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.

Servidores proxyProxies

SQL ServerSQL Server usa servidores proxy para administrar contextos de seguridad. Agent uses proxies to manage security contexts. Se puede utilizar un servidor proxy en más de un paso de trabajo.A proxy can be used in more than one job step. Los miembros del rol fijo de servidor sysadmin pueden crear servidores proxy.Members of the sysadmin fixed server role can create proxies.

Cada proxy se corresponde con unas credenciales de seguridad.Each proxy corresponds to a security credential. Cada proxy puede asociarse a un conjunto de subsistemas y un conjunto de inicios de sesión.Each proxy can be associated with a set of subsystems and a set of logins. El proxy solo se puede utilizar con pasos de trabajo que utilizan un subsistema asociado al proxy.The proxy can be used only for job steps that use a subsystem associated with the proxy. Para crear un paso de trabajo que utilice un proxy determinado, el propietario del trabajo debe utilizar un inicio de sesión asociado al proxy o debe ser miembro de un rol con acceso ilimitado a los servidores proxy.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. Los miembros del rol fijo de servidor sysadmin tienen acceso ilimitado a los servidores proxy.Members of the sysadmin fixed server role have unrestricted access to proxies. Los miembros de SQLAgentUserRole, SQLAgentReaderRoleo SQLAgentOperatorRole solo pueden utilizar servidores proxy para los que dispongan de acceso específico.Members of SQLAgentUserRole, SQLAgentReaderRole, or SQLAgentOperatorRole can only use proxies to which they have been granted specific access. Cada usuario que sea miembro de alguno de estos roles fijos de base de datos del Agente SQL ServerSQL Server debe tener acceso a servidores proxy específicos para poder crear pasos de trabajo que usen esos proxy.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.

Tareas relacionadasRelated Tasks

Use los pasos siguientes para configurar el Agente SQL ServerSQL Server de manera que se automatice la administración de SQL ServerSQL Server :Use the following steps to configure SQL ServerSQL Server Agent to automate SQL ServerSQL Server administration:

  1. Establezca las tareas administrativas o eventos del servidor que se realizan con regularidad y si estas tareas o eventos se pueden administrar mediante programación.Establish which administrative tasks or server events occur regularly and whether these tasks or events can be administered programmatically. Una tarea es una buena candidata a la automatización si consta de una secuencia de pasos predecible y se produce en un momento específico o en respuesta a un evento concreto.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. Defina un conjunto de trabajos, programaciones, alertas y operadores mediante SQL Server Management StudioSQL Server Management Studio, scripts Transact-SQLTransact-SQL u objetos de administración de SQL ServerSQL Server (SMO).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). Para más información, consulte Crear trabajos.For more information, see Create Jobs.

  3. Ejecute los trabajos del Agente SQL ServerSQL Server que haya definido.Run the SQL ServerSQL Server Agent jobs you have defined.

Nota

Para la instancia predeterminada de SQL ServerSQL Server, el servicio SQL ServerSQL Server se denomina SQLSERVERAGENT.For the default instance of SQL ServerSQL Server, the SQL ServerSQL Server service is named SQLSERVERAGENT. Para las instancias con nombre, el servicio Agente SQL ServerSQL Server se denomina SQLAgent$nombreDeInstancia.For named instances, the SQL ServerSQL Server Agent service is named SQLAgent$instancename.

Si ejecuta varias instancias de SQL ServerSQL Server, use la administración multiservidor para automatizar las tareas comunes a todas las instancias.If you are running multiple instances of SQL ServerSQL Server, you can use multiserver administration to automate tasks common across all instances. Para más información, consulte Administración automatizada en una empresa.For more information, see Automated Administration Across an Enterprise.

Use las siguientes tareas para comenzar a trabajar con el agente de SQL ServerSQL Server :Use the following tasks to get started with SQL ServerSQL Server Agent:

DescriptionDescription TemaTopic
Describe cómo configurar el Agente SQL Server.Describes how to configure SQL Server Agent. Configurar el Agente SQL ServerConfigure SQL Server Agent
Describe cómo iniciar, detener y pausar el servicio del Agente SQL Server.Describes how to start, stop, and pause the SQL Server Agent service. Iniciar, detener o pausar el servicio del Agente SQL ServerStart, Stop, or Pause the SQL Server Agent Service
Describe las consideraciones para especificar una cuenta para el servicio del Agente SQL Server.Describes considerations for specifying an account for the SQL Server Agent service. Seleccionar una cuenta para el servicio Agente SQL ServerSelect an Account for the SQL Server Agent Service
Describe cómo usar el registro de errores del Agente SQL Server.Describes how to use the SQL Server Agent error log. Registro de errores del Agente SQL ServerSQL Server Agent Error Log
Describe cómo usar los objetos de rendimiento.Describes how to use performance objects. Usar objetos de rendimientoUse Performance Objects
Describe el Asistente para planes de mantenimiento, que es una utilidad que puede ayudarle a crear trabajos, alertas y operadores para automatizar la administración de una instancia 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. Usar el Asistente para planes de mantenimientoUse the Maintenance Plan Wizard
Describe cómo automatizar tareas administrativas mediante el Agente SQL Server.Describes how to automate administrative tasks using SQL Server Agent. Tareas administrativas automatizadas (Agente SQL Server)Automated Administration Tasks (SQL Server Agent)

Vea tambiénSee Also

Configuración de Área expuestaSurface Area Configuration