SQL Server Agent-taken maken en uitvoeren op Linux
van toepassing op:SQL Server- - Linux
SQL Server-taken worden gebruikt om regelmatig dezelfde reeks opdrachten uit te voeren in uw SQL Server-database. Deze zelfstudie bevat een voorbeeld van het maken van een SQL Server Agent-taak in Linux met behulp van zowel Transact-SQL als SQL Server Management Studio (SSMS).
- SQL Server Agent installeren in Linux
- Een nieuwe taak maken om dagelijkse databaseback-ups uit te voeren
- De taak plannen en uitvoeren
- Voer dezelfde stappen uit in SSMS (optioneel)
Zie de Releaseopmerkingen voor SQL Server 2017 op Linuxvoor bekende problemen met SQL Server Agent in Linux.
Voorwaarden
De volgende vereisten zijn vereist om deze zelfstudie te voltooien:
Linux-computer met de volgende vereisten:
De volgende vereisten zijn optioneel:
- Windows-computer met SSMS:
- SQL Server Management Studio (SSMS) downloaden voor optionele SSMS-stappen.
SQL Server Agent inschakelen
Als u SQL Server Agent in Linux wilt gebruiken, moet u eerst SQL Server Agent inschakelen op een computer waarop SQL Server al is geïnstalleerd.
Volg de onderstaande stap om SQL Server Agent in te schakelen.
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
Start SQL Server opnieuw op met de volgende opdracht:
sudo systemctl restart mssql-server
Notitie
Vanaf SQL Server 2017 (14.x) CU 4 is SQL Server Agent opgenomen in het mssql-server
-pakket en is standaard uitgeschakeld. Zie SQL Server Agent installeren op Linuxvoor agent die is ingesteld vóór CU 4.
Een voorbeelddatabase maken
Gebruik de volgende stappen om een voorbeelddatabase met de naam SampleDB
te maken. Deze database wordt gebruikt voor de dagelijkse back-uptaak.
Open een bash-terminalsessie op uw Linux-computer.
Gebruik sqlcmd- om een Transact-SQL
CREATE DATABASE
opdracht uit te voeren./opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'
Controleer of de database is gemaakt door de databases op uw server te vermelden.
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'SELECT name FROM sys.databases'
Een taak maken met Transact-SQL
Met de volgende stappen maakt u een SQL Server Agent-taak in Linux met Transact-SQL opdrachten. De taak voert een dagelijkse back-up uit van de voorbeelddatabase, SampleDB
.
Tip
U kunt elke T-SQL-client gebruiken om deze opdrachten uit te voeren. In Linux kunt u bijvoorbeeld de SQL Server-opdrachtregelprogramma's sqlcmd en bcp installeren op Linux of SQL Server-extensie voor Visual Studio Code. Vanuit een externe Windows Server kunt u ook query's uitvoeren in SQL Server Management Studio (SSMS) of de UI-interface gebruiken voor taakbeheer, die wordt beschreven in de volgende sectie.
Gebruik sp_add_job om een taak met de naam
Daily SampleDB Backup
te maken.-- 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
Roep sp_add_jobstep aan om een taakstap te maken waarmee een back-up van de
SampleDB
-database wordt gemaakt.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
Maak vervolgens een dagelijkse planning voor uw taak met 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
Koppel de taakplanning aan de taak met 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
Gebruik sp_add_jobserver om de taak toe te wijzen aan een doelserver. In dit voorbeeld is het doel de lokale server.
EXECUTE dbo.sp_add_jobserver @job_name = N'Daily SampleDB Backup', @server_name = N'(local)'; GO
Start de taak met sp_start_job.
EXECUTE dbo.sp_start_job N' Daily SampleDB Backup'; GO
Een taak maken met SSMS
U kunt ook taken op afstand maken en beheren met behulp van SQL Server Management Studio (SSMS) in Windows.
Start SSMS in Windows en maak verbinding met uw Linux SQL Server-exemplaar. Zie SQL Server Management Studio in Windows gebruiken voor het beheren van SQL Server op Linuxvoor meer informatie.
Controleer of u een voorbeelddatabase hebt gemaakt met de naam
SampleDB
.Controleer of de SQL Agent was SQL Server Agent op Linux installeren en correct geconfigureerd was. Zoek het plusteken naast SQL Server Agent in objectverkenner. Als SQL Server Agent niet is ingeschakeld, start u de mssql-server--service opnieuw op Linux.
Maak een nieuwe taak.
Geef uw taak een naam en maak uw taakstap.
Geef op welk subsysteem u wilt gebruiken en wat de taakstap moet doen.
Maak een nieuw taakschema.
Start uw werk.
Volgende stap
In deze zelfstudie hebt u het volgende geleerd:
- SQL Server Agent installeren in Linux
- Gebruik Transact-SQL en systeem opgeslagen procedures om jobs aan te maken.
- Een taak maken die dagelijkse databaseback-ups uitvoert
- SSMS-gebruikersinterface gebruiken om taken te maken en te beheren
Verken vervolgens andere mogelijkheden voor het maken en beheren van taken:
documentatie voor SQL Server Agent