Administrar pasos de trabajo
Los pasos de trabajo son acciones que el trabajo realiza en una base de datos o en un servidor. Cada trabajo debe estar formado por un paso, como mínimo. Los pasos de trabajo pueden ser:
Programas ejecutables y comandos del sistema operativo.
Instrucciones Transact-SQL, incluidos los procedimientos almacenados y los procedimientos almacenados extendidos.
Scripts de PowerShell.
Scripts de Microsoft ActiveX.
Tareas de replicación.
Tareas de Analysis Services.
Paquetes de Integration Services.
Todos los pasos de trabajo se ejecutan en un contexto de seguridad determinado. Si en el paso de trabajo se especifica un proxy, se ejecuta en el contexto de seguridad de la credencial del proxy. Si en el paso de trabajo no se especifica un proxy, se ejecuta en el contexto de la cuenta de servicio del Agente SQL Server. Solo los miembros del rol fijo de servidor sysadmin pueden crear trabajos en los que no se especifique un proxy de forma explícita.
Puesto que los pasos de trabajo se ejecutan en el contexto de un usuario específico de Microsoft Windows, dicho usuario debe disponer de los permisos y la configuración necesarios para que se ejecute el paso de trabajo. Por ejemplo, si crea un trabajo que requiere una letra de unidad o una ruta de acceso UNC (Convención de nomenclatura universal), los pasos de trabajo se pueden ejecutar con la cuenta de usuario de Windows durante la comprobación de las tareas. Sin embargo, el usuario de Windows para el paso de trabajo debe tener también los permisos y configuraciones de letra de unidad necesarios, o acceso a la unidad requerida. De lo contrario, se producirá un error en el paso de trabajo. Para evitar este problema, asegúrese de que el proxy para cada paso de trabajo dispone de los permisos necesarios para la tarea que realiza dicho paso. Para obtener más información, vea Seguridad y protección (motor de base de datos).
Registros de pasos de trabajo
El Agente SQL Server puede escribir el resultado de algunos pasos de trabajo en un archivo del sistema operativo o en la tabla sysjobstepslogs de la base de datos msdb. Los siguientes tipos de pasos de trabajo pueden escribir la salida en los siguientes destinos:
Programas ejecutables y comandos del sistema operativo.
Instrucciones Transact-SQL.
Tareas de Analysis Services.
Solo los pasos de trabajo que ejecutan los usuarios que son miembros del rol fijo de servidor sysadmin pueden escribir la salida en archivos del sistema operativo. Si los pasos de trabajo son ejecutados por usuarios que no sean miembros de los roles fijos de base de datos SQLAgentUserRole, SQLAgentReaderRole o SQLAgentOperatorRole de la base de datos msdb, la salida de estos pasos de trabajo se pueden escribir únicamente en la tabla sysjobstepslogs.
Los registros de pasos de trabajo se eliminan automáticamente al eliminar los trabajos o pasos de trabajo.
[!NOTA]
El registro de pasos de trabajo de tareas de replicación y paquetes de Integration Services lo controla el subsistema respectivo. No se puede utilizar el Agente SQL Server para configurar el registro de pasos de trabajo para estos tipos de pasos.
Programas ejecutables y comandos del sistema operativo como pasos de trabajo
Los programas ejecutables y comandos del sistema operativo se pueden utilizar como pasos de trabajo. Los archivos pueden tener las extensiones .bat, .cmd, .com o .exe.
Si utiliza un programa ejecutable o un comando del sistema operativo como paso de trabajo, debe especificar:
El código de salida del proceso que se devuelve si el comando se ha ejecutado correctamente.
El comando que se debe ejecutar. Para ejecutar un comando del sistema operativo, se trata simplemente del propio comando. En un programa externo, es el nombre del programa y los argumentos para el programa, por ejemplo: C:\Archivos de programa\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe -e -q "sp_who"
[!NOTA]
Debe proporcionar la ruta de acceso completa del archivo ejecutable si éste no se encuentra en un directorio especificado en la ruta de acceso del sistema o la ruta de acceso del usuario con el que se ejecuta el paso de trabajo.
Pasos de trabajo Transact-SQL
Al crear un paso de trabajo de Transact-SQL, debe:
Identificar la base de datos en la que se ejecutará el trabajo.
Escribir la instrucción Transact-SQL que se debe ejecutar. La instrucción puede llamar a un procedimiento almacenado o un procedimiento almacenado extendido.
Opcionalmente, puede abrir un archivo Transact-SQL existente que actúe como comando para el paso de trabajo.
Los pasos de trabajo de Transact-SQL no utilizan cuentas de proxy del Agente SQL Server. En lugar de ello, el paso de trabajo se ejecuta como el propietario del paso de trabajo, o como la cuenta de servicio del Agente SQL Server si el propietario del paso de trabajo es miembro del rol fijo de servidor sysadmin. Los miembros del rol fijo de servidor sysadmin también pueden especificar que los pasos de trabajo de Transact-SQL se ejecuten en el contexto de otro usuario mediante el parámetro database_user_name del procedimiento almacenado sp_add_jobstep. Para obtener más información, vea sp_add_jobstep (Transact-SQL).
[!NOTA]
Un solo paso de trabajo de Transact-SQL puede contener varios lotes. Los pasos de trabajo de Transact-SQL pueden contener comandos GO incrustados.
Pasos de trabajo de scripts de PowerShell
Al crear un paso de trabajo de script de PowerShell, es preciso especificar una de estas dos cosas como comando para dicho paso:
El texto de un script de PowerShell.
El archivo de script de PowerShell que se desea abrir.
El subsistema PowerShell del Agente SQL Server abre una sesión PowerShell y carga los complementos PowerShell de SQL Server. El script de PowerShell usado como comando del paso de trabajo puede hacer referencia al proveedor de PowerShell de SQL Server y a los cmdlets. Para obtener más información sobre la escritura de scripts de PowerShell mediante los complementos PowerShell de SQL Server, vea SQL Server PowerShell.
Pasos de trabajo de scripts ActiveX
Importante |
---|
El paso de trabajo de scripts ActiveX se quitará del Agente SQL Server en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. |
Al crear un paso de trabajo de scripts ActiveX, debe realizar las siguientes acciones:
Identificar el lenguaje de scripts en el que se ha escrito el paso de trabajo
Escribir el script ActiveX
También puede abrir un archivo de scripts ActiveX existente y utilizarlo como comando para el paso de trabajo. Opcionalmente, los comandos de los scripts ActiveX se pueden compilar externamente (por ejemplo, mediante Microsoft Visual Basic) y, después, ejecutarse como programas ejecutables.
Si el comando del paso de trabajo es un script ActiveX, puede usar el objeto SQLActiveScriptHost para imprimir la salida en el registro de historial del paso de trabajo o para crear objetos COM. SQLActiveScriptHost es un objeto global que el sistema de hospedaje del Agente SQL Server presenta en el espacio de nombres de scripts. El objeto tiene dos métodos (Print y CreateObject). En el siguiente ejemplo se muestra cómo funcionan los scripts ActiveX en Visual Basic Scripting Edition (VBScript).
' VBScript example for ActiveX Scripting job step
' Create a Dmo.Server object. The object connects to the
' server on which the script is running.
Set oServer = CreateObject("SQLDmo.SqlServer")
oServer.LoginSecure = True
oServer.Connect "(local)"
'Disconnect and destroy the server object
oServer.DisConnect
Set oServer = nothing
Pasos de trabajos de replicación
Si crea publicaciones y suscripciones con replicación, se crean trabajos de replicación de forma predeterminada. El tipo de replicación (de instantáneas, transaccional o de mezcla) y las opciones utilizadas determinan el tipo de trabajo que se crea.
Los pasos de trabajo de replicación activan uno de los siguientes agentes de réplica:
Agente de instantáneas (trabajo Instantánea)
Agente de registro del LOG (trabajo Lector del registro)
Agente de distribución (trabajo Distribución)
Agente de mezcla (trabajo Mezcla)
Agente de lectura de cola (trabajo Lectura de cola)
Cuando esté configurada la replicación, puede especificar que los agentes de replicación se ejecuten de una de estas tres maneras: continuamente tras iniciar el Agente SQL Server, a petición o según una programación. Para obtener más información acerca de los agentes de replicación, vea Información general sobre los agentes de replicación.
Pasos de trabajo de Analysis Services
El Agente SQL Server admite dos tipos distintos de pasos de trabajo de Analysis Services: pasos de trabajo de comando y pasos de trabajo de consulta.
Pasos de trabajo de comando de Analysis Services
Al crear un paso de trabajo de comando de Analysis Services, debe:
Identificar el servidor OLAP de la base de datos en el que se ejecutará el paso de trabajo.
Escribir la instrucción que se debe ejecutar. Esta instrucción debe ser XML para el método Execute de Analysis Services. Puede que la instrucción no contenga un envoltorio de SOAP completo o un método Discover de XML para Analysis Services. Observe que, mientras que SQL Server Management Studio es compatible con los sobres SOAP (Protocolo simple de acceso a objetos) completos y con el método Discover, los pasos de trabajo del Agente SQL Server no lo son.
Pasos de trabajo de consulta de Analysis Services
Al crear un paso de trabajo de consulta de Analysis Services, debe:
Identificar el servidor OLAP de la base de datos en el que se ejecutará el paso de trabajo.
Escribir la instrucción que se debe ejecutar. La instrucción debe ser una consulta de expresiones multidimensionales (MDX).
Para obtener más información acerca de MDX, vea Aspectos básicos de las consultas MDX (Analysis Services).
Paquetes de Integration Services
Al crear un paso de trabajo de paquete de Integration Services, debe realizar las operaciones siguientes:
Identificar el origen del paquete.
Identificar la ubicación del paquete.
Identificar los archivos de configuración si son necesarios para el paquete.
Identificar los archivos de comandos si son necesarios para el paquete.
Identificar la comprobación que se debe utilizar para el paquete. Por ejemplo, puede especificar que el paquete debe estar firmado o que debe tener un Id. de paquete específico.
Identificar los orígenes de datos del paquete.
Identificar los proveedores de registro del paquete.
Especificar las variables y los valores que se deben establecer para ejecutar el paquete.
Identificar las opciones de ejecución.
Agregar o modificar las opciones de línea de comandos.
Tenga en cuenta que si implementó el paquete en el catálogo de SSIS y especifica Catálogo de SSIS como origen del paquete, gran parte de esta información de configuración se obtiene automáticamente del paquete. En la pestaña Configuration puede especificar el entorno, los valores de parámetro, los valores del administrador de conexiones, las invalidaciones de propiedad y si el paquete se ejecuta en un entorno en tiempo de ejecución de 32 bits.
Para obtener más información acerca de cómo crear pasos de trabajo que ejecutan paquetes de Integration Services, vea Trabajos del Agente SQL Server para paquetes.
Tareas relacionadas
Descripción |
Tema |
Describe cómo crear un paso de trabajo con un programa ejecutable. |
|
Describe cómo restablecer los permisos del Agente SQL Server. |
Configurar un usuario para crear y administrar trabajos del Agente SQL Server |
Describe cómo crear un paso de trabajo de Transact-SQL. |
|
Describe cómo definir opciones para los pasos de trabajo Transact-SQL del Agente SQL Server de Microsoft. |
|
Describe cómo crear un paso de trabajo de script ActiveX. |
|
Describe cómo crear y definir pasos de trabajo del Agente SQL Server que ejecutan comandos y consultas de SQL Server Analysis Services. |
|
Describe la acción que SQL Server debe realizar si se produce un error durante la ejecución del trabajo. |
Establecer el flujo correcto o con errores de los pasos de un trabajo |
Describe cómo ver detalles de pasos de trabajo en el cuadro de diálogo Propiedades de paso de trabajo. |
|
Describe cómo eliminar un registro de pasos de trabajo del Agente SQL Server. |
Vea también
Referencia
dbo.sysjobstepslogs (Transact-SQL)