Habilitar el Agente SQL
Server
Para usar el Agente SQL Server en Linux, primero debe habilitarlo en un equipo que ya tenga SQL
Server instalado.
1. Haga lo siguiente para habilitar el Agente SQL Server.
BashCopiar
sudo /opt/mssql/bin/mssql-conf set [Link] true
1. Reinicie SQL Server con el siguiente comando:
BashCopiar
sudo systemctl restart mssql-server
Nota
A partir de SQL Server 2017 CU4, el Agente SQL Server se incluye con el paquete mssql-server y
está deshabilitado de forma predeterminada. Para instalar el Agente antes de CU4, vea Instalación
del 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.
1. En el equipo Linux, abra una sesión de terminal de Bash.
2. Use sqlcmd para ejecutar un comando CREATE DATABASE de Transact-SQL.
BashCopiar
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -Q 'CREATE DATABASE SampleDB'
3. Para comprobar que la base de datos se ha creado, muestre una lista de las bases de datos
del servidor.
BashCopiar
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -Q 'SELECT Name FROM [Link]'
Crear un trabajo con Transact-SQL
Con los siguientes pasos se crea un trabajo del 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 sqlcmd o Visual Studio Code. Desde un servidor 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 explicaremos en la siguiente sección).
1. Use sp_add_job para crear un trabajo denominado Daily SampleDB Backup.
SQLCopiar
-- Adds a new job executed by the SQLServerAgent service
-- called 'Daily SampleDB Backup'
USE msdb ;
GO
EXEC dbo.sp_add_job
@job_name = N'Daily SampleDB Backup' ;
GO
2. Llame a sp_add_jobstep para crear un paso de trabajo que cree una copia de seguridad de
la base de datos SampleDB.
SQLCopiar
-- Adds a step (operation) to the job
EXEC 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/[Link]'' WITH NOFORMAT, NOINIT, \
NAME = ''SampleDB-full'', SKIP, NOREWIND, NOUNLOAD, STATS = 10',
@retry_attempts = 5,
@retry_interval = 5 ;
GO
3. Luego, cree una programación diaria para el trabajo con sp_add_schedule.
SQLCopiar
-- Creates a schedule called 'Daily'
EXEC dbo.sp_add_schedule
@schedule_name = N'Daily SampleDB',
@freq_type = 4,
@freq_interval = 1,
@active_start_time = 233000 ;
USE msdb ;
GO
4. Adjunte la programación del trabajo al trabajo con sp_attach_schedule.
SQLCopiar
-- Sets the 'Daily' schedule to the 'Daily SampleDB Backup' Job
EXEC sp_attach_schedule
@job_name = N'Daily SampleDB Backup',
@schedule_name = N'Daily SampleDB';
GO
5. Use sp_add_jobserver para asignar el trabajo a un servidor de destino. En este ejemplo, el
destino es el servidor local.
SQLCopiar
EXEC dbo.sp_add_jobserver
@job_name = N'Daily SampleDB Backup',
@server_name = N'(LOCAL)';
GO
6. Inicie el trabajo con sp_start_job.
SQLCopiar
EXEC 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.
1. Inicie SSMS en Windows y conéctese a la instancia de SQL Server de Linux. Para más
información, vea Administrar SQL Server en Linux con SSMS.
2. Confirme que ha creado una base de datos de ejemplo denominada SampleDB.
3. Compruebe que el Agente SQL se ha instalado y configurado correctamente. Busque el
signo más junto al Agente SQL Server en el Explorador de objetos. Si el Agente SQL Server
no está habilitado, pruebe a reiniciar el servicio mssql-server en Linux.
4. Cree un trabajo.
5. Asigne un nombre al trabajo y cree el paso de trabajo.
6. Especifique qué subsistema desea usar y qué debe hacer el paso de trabajo.
7. Cree una programación.
8. Inicie el trabajo.