Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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:
Linux-dator med följande förutsättningar:
- Quickstart: Installera SQL Server och skapa en databas i Red Hat Enterprise Linux
- Quickstart: Installera SQL Server och skapa en databas på SUSE Linux Enterprise Server
- Quickstart: Installera SQL Server och skapa en databas på Ubuntu med kommandoradsverktyg.
Notera
Från och med SQL Server 2025 (17.x) stöds inte SUSE Linux Enterprise Server (SLES).
Följande krav är valfria:
- Windows dator med SSMS:
- Installera SQL Server Management Studio för valfria SSMS-steg.
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.
Om du vill aktivera SQL Server Agent kör du följande kommando.
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled trueStarta 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.
Öppna en bash-terminalsession på Linux-datorn.
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'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.
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'; GOAnropa 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; GOSkapa 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; GOKoppla 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'; GOAnvä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)'; GOStarta 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.
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.
Kontrollera att du har skapat en exempeldatabas med namnet
SampleDB.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.
Skapa ett nytt jobb.
Ge jobbet ett namn och skapa jobbsteget.
Ange vilket undersystem du vill använda och vad jobbsteget ska göra.
Skapa ett nytt jobbschema.
Starta ditt jobb.
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: