Dela via


Skapa och köra SQL Server Agent jobb i Linux

Gäller för:SQL Server på Linux

SQL Server jobb används regelbundet för att utföra samma sekvens med kommandon i din SQL Server databas. Den här självstudien innehåller ett exempel på hur du skapar ett SQL Server Agent jobb på Linux genom både Transact-SQL och SQL Server Management Studio (SSMS).

  • Installera SQL Server Agent på Linux
  • Skapa ett nytt jobb för att utföra dagliga säkerhetskopieringar av databaser
  • Schemalägga och köra jobbet
  • Utför samma steg i SSMS (valfritt)

Kända problem med SQL Server Agent i Linux finns i SQL Server on Linux: Kända problem.

Förutsättningar

Följande krav krävs för att slutföra den här självstudien:

Följande krav är valfria:

Aktivera SQL Server Agent

Om du vill använda SQL Server Agent på Linux måste du först aktivera SQL Server Agent på en dator som redan har SQL Server installerad.

  1. Om du vill aktivera SQL Server Agent kör du följande kommando.

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    
  2. Starta om SQL Server med följande kommando:

    sudo systemctl restart mssql-server
    

Notera

Från och med SQL Server 2017 (14.x) CU 4 ingår SQL Server Agent i paketet mssql-server och är inaktiverad som standard. För Agent som konfigurerats före CU 4, se Installera SQL Server Agent på Linux.

Skapa en exempeldatabas

Använd följande steg för att skapa en exempeldatabas med namnet SampleDB. Den här databasen används för det dagliga säkerhetskopieringsjobbet.

  1. Öppna en bash-terminalsession på Linux-datorn.

  2. Använd sqlcmd för att köra kommandot Transact-SQL CREATE DATABASE.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'
    
  3. Kontrollera att databasen har skapats genom att visa en lista över databaserna på servern.

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

Skapa ett jobb med Transact-SQL

Följande steg skapar ett SQL Server Agent jobb i Linux med Transact-SQL kommandon. Jobbet kör en daglig säkerhetskopia av exempeldatabasen SampleDB.

Tips

Du kan använda valfri T-SQL-klient för att köra dessa kommandon. I Linux kan du till exempel använda Installera kommandoradsverktygen sqlcmd och bcp SQL Server i Linux eller SQL Server-tillägget för Visual Studio Code. Från en fjärransluten Windows Server kan du också köra frågor i SQL Server Management Studio (SSMS) eller använda gränssnittet för jobbhantering, vilket beskrivs i nästa avsnitt.

  1. Använd sp_add_job för att skapa ett jobb med namnet 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. Anropa sp_add_jobstep för att skapa ett jobbsteg som skapar en säkerhetskopia av SampleDB-databasen.

    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. Skapa sedan ett dagligt schema för jobbet med 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. Koppla jobbschemat till jobbet med 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. Använd sp_add_jobserver för att tilldela jobbet till en målserver. I det här exemplet är målet den lokala servern.

    EXECUTE dbo.sp_add_jobserver
        @job_name = N'Daily SampleDB Backup',
        @server_name = N'(local)';
    GO
    
  6. Starta jobbet med sp_start_job.

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

Skapa ett jobb med SSMS

Du kan också skapa och hantera jobb via fjärranslutning med hjälp av SQL Server Management Studio (SSMS) på Windows.

  1. Starta SSMS på Windows och anslut till din Linux-SQL Server-instans. Mer information finns i Använd SQL Server Management Studio på Windows för att hantera SQL Server on Linux.

  2. Kontrollera att du har skapat en exempeldatabas med namnet SampleDB.

    Skärmbild av hur du skapar en SampleDB-databas.

  3. Kontrollera att SQL Agent hade blivit Installerad på Linux och konfigurerad korrekt. Leta efter plustecknet bredvid SQL Server Agent i Object Explorer. Om SQL Server Agent inte är aktiverat kan du prova att starta om tjänsten mssql-server i Linux.

    Screenshot som visar hur du verifierar att SQL Server Agent har installerats.

  4. Skapa ett nytt jobb.

    Skärmbild som visar hur du skapar ett nytt jobb.

  5. Ge jobbet ett namn och skapa jobbsteget.

    Skärmbild som visar hur du skapar ett jobbsteg.

  6. Ange vilket undersystem du vill använda och vad jobbsteget ska göra.

    Skärmbild av dialogrutan Nytt jobb i SSMS, som visar sidan Steg med knappen Ny markerad för att skapa ett jobbsteg.

    Skärmbild av dialogrutan Nytt jobbsteg som visar ett T-SQL BACKUP DATABASE-kommando för SampleDB med OK-knappen markerad.

  7. Skapa ett nytt jobbschema.

    Skärmbild av dialogrutan Nytt jobb med alternativet Scheman markerat och alternativet Nytt framhävt.

    Skärmbild av dialogrutan Nytt jobb med alternativet OK markerat.

  8. Starta ditt jobb.

    Skärmbild som visar hur du startar SQL Server Agent job.

Nästa steg

I den här handledningen lärde du dig att:

  • Installera SQL Server Agent på Linux
  • Använda Transact-SQL och system lagrade procedurer för att skapa jobb
  • Skapa ett jobb som utför dagliga säkerhetskopieringar av databaser
  • Använda SSMS-användargränssnittet för att skapa och hantera jobb

Utforska sedan andra funktioner för att skapa och hantera jobb: