Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Applies to:SQL Server en Linux
Trabajos de SQL Server se utilizan para realizar regularmente la misma secuencia de comandos en la base de datos de SQL Server. En este tutorial se proporciona un ejemplo de cómo crear un trabajo de Agente SQL Server en Linux mediante Transact-SQL y SQL Server Management Studio (SSMS).
- Instalación de Agente SQL Server en Linux
- Crear un trabajo para realizar copias de seguridad de la base de datos diariamente
- Programar y ejecutar el trabajo
- Realizar los mismos pasos en SSMS (opcional)
Para ver problemas conocidos con Agente SQL Server en Linux, consulte SQL Server en Linux: Problemas conocidos.
Requisitos previos
Debe disponer de lo siguiente para poder completar este tutorial:
Una máquina Linux con los siguientes prerrequisitos:
- Quickstart: Instale SQL Server y cree una base de datos en Red Hat Enterprise Linux
- Quickstart: Instalar SQL Server y crear una base de datos en SUSE Linux Enterprise Server
- Quickstart: instale SQL Server y cree una base de datos en Ubuntu con herramientas de línea de comandos.
Nota:
A partir de SQL Server 2025 (17.x), no se admite SUSE Linux Enterprise Server (SLES).
Las siguientes condiciones previas son opcionales:
- Equipo Windows con SSMS
- Install SQL Server Management Studio para los pasos opcionales de SSMS.
Habilitar Agente SQL Server
Para usar Agente SQL Server en Linux, primero debe habilitar Agente SQL Server en un equipo que ya tenga SQL Server instalado.
Para habilitar Agente SQL Server, ejecute el siguiente comando.
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled trueReinicie SQL Server con el comando siguiente:
sudo systemctl restart mssql-server
Nota:
A partir de SQL Server 2017 (14.x) CU 4, Agente SQL Server se incluye con el paquete mssql-server y está deshabilitado de forma predeterminada. Para configurar el agente antes de CU 4, consulte Install Agente SQL Server en Linux.
Crear una base de datos de ejemplo
Use los siguientes pasos para crear una base de datos de ejemplo denominada SampleDB. Esta base de datos se usará para el trabajo de copia de seguridad diario.
En el equipo Linux, abra una sesión de terminal de Bash.
Utilice sqlcmd para ejecutar un comando Transact-SQL
CREATE DATABASE./opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'Para comprobar que la base de datos se ha creado, muestre una lista de las bases de datos del servidor.
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'SELECT name FROM sys.databases'
Creación de un trabajo con Transact-SQL
En los pasos siguientes se crea un trabajo de Agente SQL Server en Linux con comandos Transact-SQL. El trabajo ejecuta una copia de seguridad diaria de la base de datos de ejemplo, SampleDB.
Sugerencia
Puede usar cualquier cliente de T-SQL para ejecutar estos comandos. Por ejemplo, en Linux puede usar instalar las herramientas de línea de comandos sqlcmd y bcp de SQL Server en Linux o la extensión de SQL Server para Visual Studio Code. Desde un Windows Server remoto, también puede ejecutar consultas en SQL Server Management Studio (SSMS) o usar la interfaz de usuario para la administración de trabajos, que se describe en la sección siguiente.
Use sp_add_job para crear un trabajo denominado
Daily SampleDB Backup.-- Adds a new job executed by the SQLServerAgent service -- called 'Daily SampleDB Backup' USE msdb; GO EXECUTE dbo.sp_add_job @job_name = N'Daily SampleDB Backup'; GOLlame a sp_add_jobstep para crear un paso de trabajo que cree una copia de seguridad de la base de datos
SampleDB.EXECUTE sp_add_jobstep @job_name = N'Daily SampleDB Backup', @step_name = N'Backup database', @subsystem = N'TSQL', @command = N'BACKUP DATABASE SampleDB TO DISK = \ N''/var/opt/mssql/data/SampleDB.bak'' WITH NOFORMAT, NOINIT, \ NAME = ''SampleDB-full'', SKIP, NOREWIND, NOUNLOAD, STATS = 10', @retry_attempts = 5, @retry_interval = 5; GOLuego, cree una programación diaria para el trabajo con sp_add_schedule.
-- Creates a schedule called 'Daily' EXECUTE dbo.sp_add_schedule @schedule_name = N'Daily SampleDB', @freq_type = 4, @freq_interval = 1, @active_start_time = 233000; USE msdb; GOAdjunta el horario de tareas al trabajo con sp_attach_schedule.
-- Sets the 'Daily' schedule to the 'Daily SampleDB Backup' Job EXECUTE sp_attach_schedule @job_name = N'Daily SampleDB Backup', @schedule_name = N'Daily SampleDB'; GOUse sp_add_jobserver para asignar el trabajo a un servidor de destino. En este ejemplo, el destino es el servidor local.
EXECUTE dbo.sp_add_jobserver @job_name = N'Daily SampleDB Backup', @server_name = N'(local)'; GOInicie el trabajo con sp_start_job.
EXECUTE dbo.sp_start_job N' Daily SampleDB Backup'; GO
Crear un trabajo con SSMS
También puede crear y administrar trabajos de forma remota mediante SQL Server Management Studio (SSMS) en Windows.
Inicie SSMS en Windows y conéctese a la instancia de SQL Server de Linux. Para obtener más información, consulte Use SQL Server Management Studio en Windows para administrar SQL Server en Linux.
Confirme que ha creado una base de datos de muestra denominada
SampleDB.Compruebe que el Agente SQL ha sido Instalado en Linux y se ha configurado correctamente. Busque el signo más junto a Agente SQL Server en el Explorador de objetos. Si Agente SQL Server no está habilitado, intente reiniciar el servicio mssql-server en Linux.
Cree un nuevo puesto.
Asigne un nombre al trabajo y cree el paso de trabajo.
Especifique qué subsistema desea usar y qué debe hacer el paso de trabajo.
Crear un nuevo horario de trabajo.
Inicie el trabajo.
Paso siguiente
En este tutorial, ha aprendido a:
- Instalación de Agente SQL Server en Linux
- Uso de Transact-SQL y procedimientos almacenados del sistema para crear trabajos
- Crear un trabajo que realice copias de seguridad de base de datos diarias
- Usar la interfaz de usuario de SSMS para crear y administrar trabajos
Tras esto, explore otras funcionalidades para crear y administrar trabajos:
documentación de Agente SQL Server