Creare ed eseguire processi di SQL Server Agent in LinuxCreate and run SQL Server Agent jobs on Linux

QUESTO ARGOMENTO SI APPLICA A: noSQL Server su WindowssìSQL Server su LinuxnoDatabase SQL di AzurenoAzure SQL Data WarehousenoParallel Data Warehouse THIS TOPIC APPLIES TO: noSQL Server on WindowsyesSQL Server on LinuxnoAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

Processi di SQL Server vengono utilizzati per eseguire regolarmente la stessa sequenza di comandi nel database di SQL Server.SQL Server jobs are used to regularly perform the same sequence of commands in your SQL Server database. In questa esercitazione fornisce un esempio di come creare un processo di agente SQL Server in Linux tramite Transact-SQL e SQL Server Management Studio (SSMS).This tutorial provides an example of how to create a SQL Server Agent job on Linux using both Transact-SQL and SQL Server Management Studio (SSMS).

  • Installare SQL Server Agent su LinuxInstall SQL Server Agent on Linux
  • Creare un nuovo processo per eseguire i backup giornalieri di databaseCreate a new job to perform daily database backups
  • Pianificare ed eseguire il processoSchedule and run the job
  • Eseguire gli stessi passaggi in SQL Server Management Studio (facoltativo)Perform the same steps in SSMS (optional)

Per i problemi noti con SQL Server Agent in Linux, vedere il note sulla versione.For known issues with SQL Server Agent on Linux, see the Release Notes.

PrerequisitiPrerequisites

Per completare questa esercitazione, sono necessari i seguenti prerequisiti:The following prerequisites are required to complete this tutorial:

  • Computer Linux con i seguenti prerequisiti:Linux machine with the following prerequisites:
    • SQL Server 2017 (RHEL, SLES, o Ubuntu) con gli strumenti da riga di comando.SQL Server 2017 (RHEL, SLES, or Ubuntu) with command-line tools.

I prerequisiti seguenti sono facoltativi:The following prerequisites are optional:

Installare SQL Server AgentInstall SQL Server Agent

Per utilizzare SQL Server Agent in Linux, è necessario installare il mssql-server agent pacchetto in un computer che dispone già di SQL Server 2017 installato.To use SQL Server Agent on Linux, you must first install the mssql-server-agent package on a machine that already has SQL Server 2017 installed.

  1. Installare mssql-server agent con il comando appropriato per il sistema operativo Linux.Install mssql-server-agent with the appropriate command for your Linux OS.

    PiattaformaPlatform Comandi di installazioneInstallation command(s)
    RHELRHEL sudo yum install mssql-server-agent
    SLESSLES sudo zypper refresh
    sudo zypper update mssql-server-agent
    UbuntuUbuntu sudo apt-get update
    sudo apt-get install mssql-server-agent
  2. Riavviare SQL Server con il comando seguente:Restart SQL Server with the following command:

    sudo systemctl restart mssql-server
    

Creare un database di esempioCreate a sample database

Utilizzare la procedura seguente per creare un database di esempio denominato SampleDB.Use the following steps to create a sample database named SampleDB. Questo database viene utilizzato per il processo di backup giornaliero.This database is used for the daily backup job.

  1. Nel computer Linux, aprire una sessione terminal bash.On your Linux machine, open a bash terminal session.

  2. Utilizzare sqlcmd per l'esecuzione di Transact-SQL CREATE DATABASE comando.Use sqlcmd to run a Transact-SQL CREATE DATABASE command.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -Q 'CREATE DATABASE SampleDB'
    
  3. Verificare che il database viene creato elencando i database nel server.Verify the database is created by listing the databases on your server.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -Q 'SELECT Name FROM sys.Databases'
    

Creare un processo con Transact-SQLCreate a job with Transact-SQL

La procedura seguente crea un processo di SQL Server Agent in Linux con comandi Transact-SQL.The following steps create a SQL Server Agent job on Linux with Transact-SQL commands. Il processo viene eseguito un backup del database di esempio, giornaliero SampleDB.The job runs a daily backup of the sample database, SampleDB.

Suggerimento

È possibile utilizzare qualsiasi client di T-SQL per eseguire questi comandi.You can use any T-SQL client to run these commands. In Linux, ad esempio, è possibile utilizzare sqlcmd o codice di Visual Studio.For example, on Linux you can use sqlcmd or Visual Studio Code. Da un Server remoto di Windows, è anche possibile eseguire query in SQL Server Management Studio (SSMS) o usare l'interfaccia dell'interfaccia utente per la gestione dei processi, descritto nella sezione successiva.From a remote Windows Server, you can also run queries in SQL Server Management Studio (SSMS) or use the UI interface for job management, which is described in the next section.

  1. Utilizzare sp_add_job per creare un processo denominato Daily SampleDB Backup.Use sp_add_job to create a job named Daily SampleDB Backup.

    -- 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. Chiamare sp_add_jobstep per creare un passaggio di processo che consente di creare un backup del SampleDB database.Call sp_add_jobstep to create a job step that creates a backup of the SampleDB database.

    -- 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/SampleDB.bak'' WITH NOFORMAT, NOINIT, \
          NAME = ''SampleDB-full'', SKIP, NOREWIND, NOUNLOAD, STATS = 10',
       @retry_attempts = 5,
       @retry_interval = 5 ;
    GO
    
  3. Quindi creare una pianificazione giornaliera per il processo con sp_add_schedule.Then create a daily schedule for your job with sp_add_schedule.

    -- 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. Collegare la pianificazione del processo per il processo con sp_attach_schedule.Attach the job schedule to the job with sp_attach_schedule.

    -- 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. Utilizzare sp_add_jobserver per assegnare il processo a un server di destinazione.Use sp_add_jobserver to assign the job to a target server. In questo esempio, la destinazione è il server locale.In this example, the target is the local server.

    EXEC dbo.sp_add_jobserver
       @job_name = N'Daily SampleDB Backup',
       @server_name = N'(LOCAL)';
    GO
    
  6. Avviare il processo con sp_start_job.Start the job with sp_start_job.

    EXEC dbo.sp_start_job N' Daily SampleDB Backup' ;
    GO
    

Creare un processo con SQL Server Management StudioCreate a job with SSMS

È anche possibile creare e gestire i processi in modalità remota tramite SQL Server Management Studio (SSMS) in Windows.You can also create and manage jobs remotely using SQL Server Management Studio (SSMS) on Windows.

  1. Avviare SQL Server Management Studio in Windows e connettersi all'istanza del Server SQL di Linux.Start SSMS on Windows and connect to your Linux SQL Server instance. Per ulteriori informazioni, vedere gestire SQL Server in Linux con SSMS.For more information, see Manage SQL Server on Linux with SSMS.

  2. Verificare che è stato creato un database di esempio denominato SampleDB.Verify that you have created a sample database named SampleDB.

    Create a SampleDB database

  3. Verificare che SQL Agent sia stata installato e configurato correttamente.Verify that SQL Agent was installed and configured correctly. Cercare sul segno più accanto a SQL Server Agent in Esplora oggetti.Look for the plus sign next to SQL Server Agent in the Object Explorer. Se SQL Server Agent non è abilitato, provare a riavviare il mssql server servizio su Linux.If SQL Server Agent is not enabled, try restarting the mssql-server service on Linux.

    Verificare che sia stato installato SQL Server Agent

  4. Creare un nuovo processo.Create a new job.

    Creare un nuovo processo

  5. Assegnare il processo di un nome e il passaggio di processo di creazione.Give your job a name and create your job step.

    Creare un passaggio di processo

  6. Specificare il sottosistema che si desidera utilizzare e che il passaggio del processo deve essere eseguita.Specify what subsystem you want to use and what the job step should do.

    Sottosistema di processo

    Azione del passaggio processo

  7. Creare una nuova pianificazione processo.Create a new job schedule.

    Pianificazioni processo

    Pianificazioni processo

  8. Avviare il processo.Start your job.

    Start the SQL Server Agent job

Passaggi successiviNext Steps

In questa esercitazione, si è appreso come:In this tutorial, you learned how to:

  • Installare SQL Server Agent su LinuxInstall SQL Server Agent on Linux
  • Stored procedure per creare processi di utilizzare Transact-SQL e sistemaUse Transact-SQL and system stored procedures to create jobs
  • Creare un processo che esegue i backup giornalieri di databaseCreate a job that performs daily database backups
  • Utilizzare SSMS UI per creare e gestire i processiUse SSMS UI to create and manage jobs

Successivamente, è possibile esaminare altre funzionalità per la creazione e la gestione dei processi:Next, explore other capabilities for creating and managing jobs: