Agente SQL Server
El Agente SQL Server es un servicio de Microsoft Windows que ejecuta tareas administrativas programadas, denominadas trabajos en SQL Server 2012.
En este tema
Ventajas del Agente SQL Server
Componentes del Agente SQL Server
Seguridad en la administración del Agente SQL Server
Ventajas del Agente SQL Server
El Agente SQL Server usa SQL Server para almacenar información de los trabajos. Los trabajos contienen uno o más pasos. Cada paso contiene su propia tarea; por ejemplo, realizar una copia de seguridad de una base de datos.
El Agente SQL Server puede ejecutar un trabajo según una programación, como respuesta a un evento específico o a petición. 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. 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.
[!NOTA]
El servicio del Agente SQL Server está deshabilitado de manera predeterminada cuando se instala SQL Server 2012, a menos que el usuario elija explícitamente iniciar automáticamente el servicio.
[Arriba]
Componentes del Agente SQL Server
El Agente SQL 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.
Jobs
Un trabajo es una serie especificada de acciones que realiza el Agente SQL Server. 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. Un trabajo se puede ejecutar en un servidor local o en varios servidores remotos.
Importante |
---|
Los trabajos del agente SQL 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 Server no se reanudan después de la conmutación por error a otro nodo de clúster de conmutación por error. Los trabajos del agente SQL Server 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. 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. En estos casos, los trabajos del agente SQL Server se muestran como nunca finalizados. |
Existen varias maneras de ejecutar trabajos:
Conforme a una o más programaciones.
Como respuesta a una o varias alertas.
Ejecutando el procedimiento almacenado sp_start_job.
Cada acción de un trabajo es un paso de trabajo. Por ejemplo, un paso de trabajo puede consistir en la ejecución de una instrucción Transact-SQL, la ejecución de un paquete SSIS o la emisión de un comando en un servidor de Analysis Services. Los pasos de trabajo se administran como parte de un trabajo.
Cada paso se ejecuta en un contexto de seguridad específico. En el caso de los pasos de trabajo que utilizan Transact-SQL, use la instrucción EXECUTE AS para establecer el contexto de seguridad para éstos. Para los demás tipos de pasos de trabajo, utilice una cuenta de proxy para establecer el contexto de seguridad.
Programaciones
Una programación especifica cuándo se ejecuta un trabajo. 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. Una programación puede definir las condiciones siguientes del momento en el que se ejecuta un trabajo:
Cuando se inicia el Agente SQL Server.
Cuando el uso de la CPU del equipo se encuentre en un nivel que se haya definido como inactivo.
Una vez, a una hora y una fecha específicas.
Periódicamente.
Para obtener más información, vea Crear y adjuntar programaciones a trabajos.
Alertas
Una alerta es una respuesta automática a un evento específico. Por ejemplo, un evento puede ser el inicio de un trabajo o que los recursos del sistema alcancen un umbral específico. Debe definir las condiciones en las que se genera una alerta.
Una alerta puede responder a una de las condiciones siguientes:
Eventos de SQL Server
Condiciones de rendimiento de SQL Server
Eventos del Instrumental de administración de Windows (WMI) en el equipo en el que se ejecuta el Agente SQL Server
Una alerta puede realizar las acciones siguientes:
Notificar a uno o varios operadores
Ejecutar un trabajo
Para obtener más información, vea Alertas.
Operadores
Un operador define información de contacto para las personas responsables del mantenimiento de una o varias instancias de SQL Server. En algunas compañías, las responsabilidades de operador están asignadas a una sola persona. En compañías con varios servidores, muchas personas comparten las responsabilidades de operador. Un operador no contiene información de seguridad y no define una entidad de seguridad.
SQL Server puede notificar a los operadores de alertas mediante una o varias de las opciones siguientes:
Correo electrónico
Buscapersonas (por correo electrónico)
net 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 Server.
Importante |
---|
Las opciones Buscapersonas y net send se quitarán del Agente SQL Server en una versión futura de SQL Server. Evite usar estas características en los nuevos trabajos de programación y planee modificar las aplicaciones que las utilizan actualmente. |
Para enviar a los operadores notificaciones por correo electrónico o buscapersonas, deberá configurar el Agente SQL Server para utilizar Correo electrónico de base de datos. Para obtener más información, vea Correo electrónico de base de datos.
Puede definir un operador como alias de un grupo de personas. De esta manera, todos los miembros de este alias pueden recibir notificaciones al mismo tiempo. Para obtener más información, vea Operadores.
[Arriba]
Seguridad en la administración del Agente SQL Server
El Agente SQL Server usa los roles fijos de base de datos SQLAgentUserRole, SQLAgentReaderRole y SQLAgentOperatorRole en la base de datos msdb para controlar el acceso al Agente SQL Server para aquellos usuarios que no son miembros del rol fijo de servidor sysadmin. 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.
Roles
Los miembros de los roles fijos de base de datos SQLAgentUserRole, SQLAgentReaderRole y SQLAgentOperatorRole de msdb y los miembros del rol fijo de servidor sysadmin tienen acceso al Agente SQL Server. Un usuario que no pertenezca a ninguno de estos roles no puede utilizar el Agente SQL Server. Para obtener más información acerca de los roles utilizados por el Agente SQL Server, vea Implementar la seguridad del Agente SQL Server.
Subsistemas
Un subsistema es un objeto predefinido que representa las funciones disponibles para un paso de trabajo. Cada proxy tiene acceso a uno o varios subsistemas. Los subsistemas proporcionan seguridad, ya que delimitan el acceso a las que funciones que están disponibles para el proxy. Cada paso de trabajo se ejecuta en el contexto de un proxy, con la excepción de los pasos de trabajo de Transact-SQL. Los pasos de trabajo de Transact-SQL utilizan el comando EXECUTE AS para establecer el contexto de seguridad.
SQL Server define los subsistemas incluidos en la tabla siguiente:
Nombre del subsistema |
Descripción |
||
---|---|---|---|
Scripts Microsoft ActiveX |
Ejecuta un paso de trabajo de scripts ActiveX.
|
||
Sistema operativo (CmdExec) |
Ejecuta un programa ejecutable. |
||
PowerShell |
Ejecuta un paso de trabajo de scripts de PowerShell. |
||
Distribuidor de replicación |
Ejecuta un paso de trabajo que activa el Agente de distribución de replicación. |
||
Mezcla de replicación |
Ejecuta un paso de trabajo que activa el Agente de mezcla. |
||
Lector de cola de replicación |
Ejecuta un paso de trabajo que activa el Agente de lectura de cola de replicación. |
||
Instantánea de replicación |
Ejecuta un paso de trabajo que activa el Agente de instantáneas. |
||
Registro del LOG de transacciones de replicación |
Ejecuta un paso de trabajo que activa el Agente de registro del LOG. |
||
Comando de Analysis Services |
Ejecuta un comando de Analysis Services. |
||
Consulta de Analysis Services |
Ejecuta una consulta de Analysis Services. |
||
Ejecución del paquete de SSIS |
Ejecuta un paquete de SSIS. |
[!NOTA]
Puesto que los pasos de trabajo Transact-SQL no utilizan proxy, no hay ningún subsistema del Agente SQL Server para los pasos de trabajo Transact-SQL.
El Agente SQL Server aplica las restricciones del subsistema incluso si la entidad de seguridad del proxy tuviera permiso para ejecutar la tarea del paso de trabajo. Por ejemplo, un proxy para un usuario que es miembro del rol fijo de servidor sysadmin no puede ejecutar un paso de trabajo SSIS salvo que el proxy tenga acceso al subsistema de SSIS, aunque el usuario pueda ejecutar paquetes SSIS.
Servidores proxy
El Agente SQL Server usa servidores proxy para administrar contextos de seguridad. Se puede utilizar un servidor proxy en más de un paso de trabajo. Los miembros del rol fijo de servidor sysadmin pueden crear servidores proxy.
Cada proxy se corresponde con unas credenciales de seguridad. Cada proxy puede asociarse a un conjunto de subsistemas y un conjunto de inicios de sesión. El proxy solo se puede utilizar con pasos de trabajo que utilizan un subsistema asociado al 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. Los miembros del rol fijo de servidor sysadmin tienen acceso ilimitado a los servidores proxy. Los miembros de SQLAgentUserRole, SQLAgentReaderRole o SQLAgentOperatorRole solo pueden utilizar servidores proxy para los que dispongan de acceso específico. Cada usuario que sea miembro de alguno de estos roles fijos de base de datos del Agente SQL Server debe tener acceso a servidores proxy específicos para poder crear pasos de trabajo que usen esos proxy.
Tareas relacionadas
Use los pasos siguientes para configurar el Agente SQL Server de manera que se automatice la administración de SQL Server:
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. 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.
Defina un conjunto de trabajos, programaciones, alertas y operadores mediante SQL Server Management Studio, scripts Transact-SQL u objetos de administración de SQL Server (SMO). Para obtener más información, vea Crear trabajos.
Ejecute los trabajos del Agente SQL Server que haya definido.
[!NOTA]
Para la instancia predeterminada de SQL Server, el servicio SQL Server se denomina SQLSERVERAGENT. Para las instancias con nombre, el servicio Agente SQL Server se denomina SQLAgent$instancename.
Si ejecuta varias instancias de SQL Server, use la administración multiservidor para automatizar las tareas comunes a todas las instancias. Para obtener más información, vea Administración automatizada en una empresa.
Use las siguientes tareas para comenzar a trabajar con el agente de SQL Server:
Descripción |
Tema |
Describe cómo configurar el Agente SQL Server. |
|
Describe cómo iniciar, detener y pausar el servicio del Agente SQL Server. |
|
Describe las consideraciones para especificar una cuenta para el servicio del Agente SQL Server. |
Seleccionar una cuenta para el servicio del Agente SQL Server |
Describe cómo usar el registro de errores del Agente SQL Server. |
|
Describe cómo usar los objetos de rendimiento. |
|
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. |
|
Describe cómo automatizar tareas administrativas mediante el Agente SQL Server. |
[Arriba]