Skapa och köra SQL Server Agent-jobb i Linux
gäller för:SQL Server – Linux
SQL Server-jobb används regelbundet för att utföra samma sekvens med kommandon i SQL Server-databasen. Den här självstudien innehåller ett exempel på hur du skapar ett SQL Server Agent-jobb i Linux med både Transact-SQL och SQL Server Management Studio (SSMS).
- Installera SQL Server-agenten i 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 för Linux finns i Viktig information för SQL Server 2017 på Linux.
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:
Följande krav är valfria:
- Windows-dator med SSMS:
- Ladda ned SQL Server Management Studio (SSMS) för valfria SSMS-steg.
Aktivera SQL Server-agent
Om du vill använda SQL Server-agenten i Linux måste du först aktivera SQL Server Agent på en dator som redan har SQL Server installerat.
Om du vill aktivera SQL Server Agent följer du steget nedan.
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
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 mssql-server
-paketet och är inaktiverad som standard. Information om agentkonfiguration före CU 4 finns i 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 ett Transact-SQL
CREATE DATABASE
kommando./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 SQL Server-kommandoradsverktygen sqlcmd och bcp på 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'; GO
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
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
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
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
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 SQL Server Management Studio (SSMS) i Windows.
Starta SSMS i Windows och anslut till din Linux SQL Server-instans. Mer information finns i Använda SQL Server Management Studio i Windows för att hantera SQL Server på Linux.
Kontrollera att du har skapat en exempeldatabas med namnet
SampleDB
.Kontrollera att SQL Agent var Installera SQL Server Agent på Linux och korrekt konfigurerad. Leta efter plustecknet bredvid SQL Server-agenten i Object Explorer. Om SQL Server-agenten inte är aktiverad kan du prova att starta om mssql-server-tjänsten 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-agenten i Linux
- Använd 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: