Condividi tramite


Creare ed eseguire processi SQL Server Agent in Linux

Si applica a:SQL Server su Linux

I job di SQL Server vengono utilizzati per eseguire abitualmente la stessa sequenza di comandi nel database SQL Server. Questa esercitazione fornisce un esempio di come creare un processo di SQL Server Agent in Linux usando sia Transact-SQL che SQL Server Management Studio (SSMS).

  • Installare SQL Server Agent in Linux
  • Creare un nuovo processo per eseguire backup giornalieri del database
  • Pianificare ed eseguire l'attività
  • Eseguire gli stessi passaggi in SSMS (facoltativo)

Per i problemi noti relativi a SQL Server Agent in Linux, vedere SQL Server in Linux: Problemi noti.

Prerequisiti

Per completare l'esercitazione, è necessario soddisfare i prerequisiti seguenti:

I prerequisiti seguenti sono facoltativi:

Abilitare SQL Server Agent

Per usare SQL Server Agent in Linux, è prima necessario abilitare SQL Server Agent in un computer in cui è già installato SQL Server.

  1. Per abilitare SQL Server Agent, eseguire il comando seguente.

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    
  2. Riavviare SQL Server con il comando seguente:

    sudo systemctl restart mssql-server
    

Nota

A partire da SQL Server 2017 (14.x) CU 4, SQL Server Agent è incluso nel pacchetto mssql-server ed è disabilitato per impostazione predefinita. Per Agent configurato prima di CU 4, vedere Installare SQL Server Agent in Linux.

Creare un database di esempio

Seguire questa procedura per creare un database di esempio denominato SampleDB. Questo database viene usato per il processo di backup giornaliero.

  1. Nel computer Linux aprire una sessione del terminale Bash.

  2. Usare sqlcmd per eseguire un comando Transact-SQL CREATE DATABASE.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'
    
  3. Verificare che il database sia stato creato elencando i database nel server.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'SELECT name FROM sys.databases'
    

Creare un job con Transact-SQL

La procedura seguente consente di creare un processo di SQL Server Agent in Linux con comandi Transact-SQL. Il compito esegue un backup giornaliero del database di esempio SampleDB.

Suggerimento

È possibile usare qualsiasi client T-SQL per eseguire questi comandi. Ad esempio, in Linux è possibile usare Installa gli strumenti da riga di comando sqlcmd e bcp di SQL Server su Linux o estensione SQL Server per Visual Studio Code. Da un Windows Server remoto è anche possibile eseguire query in SQL Server Management Studio (SSMS) o usare l'interfaccia utente per la gestione dei processi, descritta nella sezione successiva.

  1. Usare sp_add_job per creare un processo denominato 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';
    GO
    
  2. Chiamare sp_add_jobstep per creare un passaggio di processo che crea un backup del SampleDB database.

    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;
    GO
    
  3. Crea quindi una pianificazione giornaliera per il tuo lavoro 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;
    GO
    
  4. Allega il programma del processo al processo 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';
    GO
    
  5. Usare sp_add_jobserver per assegnare il processo a un server di destinazione. In questo esempio la destinazione è il server locale.

    EXECUTE dbo.sp_add_jobserver
        @job_name = N'Daily SampleDB Backup',
        @server_name = N'(local)';
    GO
    
  6. Avviare il processo con sp_start_job.

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

Creare un'attività con SSMS

È anche possibile creare e gestire i processi in modalità remota usando SQL Server Management Studio (SSMS) in Windows.

  1. Avviare SSMS in Windows e connettersi all'istanza di SQL Server Linux. Per ulteriori informazioni, vedere Utilizzare SQL Server Management Studio su Windows per gestire SQL Server su Linux.

  2. Verificare di aver creato un database di esempio denominato SampleDB.

    Screenshot della creazione di un database SampleDB.

  3. Verificare che SQL Agent sia stato Installare SQL Server Agent in Linux e configurato correttamente. Cercare il segno più accanto a SQL Server Agent nella Esplora oggetti. Se SQL Server Agent non è abilitato, provare a riavviare il servizio mssql-server in Linux.

    Screenshot che mostra come verificare che SQL Server Agent sia stato installato.

  4. Creare un nuovo lavoro.

    Screenshot che mostra come creare un nuovo lavoro.

  5. Dai un nome alla tua attività e crea il passaggio dell'attività.

    Screenshot che mostra come creare un passaggio di lavoro.

  6. Specificare il sottosistema che si vuole usare e cosa deve fare la fase del lavoro.

    Screenshot della finestra di dialogo Nuovo processo in SSMS, che mostra la pagina Passaggi con il pulsante Nuovo evidenziato per creare un passaggio di processo.

    Screenshot della finestra di dialogo Nuovo passaggio attività che mostra il comando T-SQL BACKUP DATABASE per SampleDB con il pulsante OK evidenziato.

  7. Creare una nuova pianificazione delle attività.

    Screenshot della finestra di dialogo Nuovo lavoro con l'opzione Pianificazioni evidenziata e l'opzione Nuovo richiamata.

    Screenshot della finestra di dialogo Nuovo lavoro con l'opzione OK evidenziata.

  8. Inizia il tuo lavoro.

    Screenshot che illustra come avviare SQL Server Agent job.

Passaggio successivo

In questo tutorial, hai imparato come:

  • Installare SQL Server Agent in Linux
  • Usare Transact-SQL e stored procedure di sistema per creare processi
  • Creare un processo che esegue i backup giornalieri del database
  • Usare l'interfaccia utente di SSMS per creare e gestire i processi

Successivamente, esplora altre capacità per creare e gestire i lavori: