Delen via


SQL Server Agent-taken maken en uitvoeren in Linux

Applies to:SQL Server op 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 SQL Server on Linux: Bekende problemen voor bekende problemen met SQL Server Agent in Linux.

Voorwaarden

De volgende vereisten zijn vereist om deze zelfstudie te voltooien:

De volgende vereisten zijn optioneel:

SQL Server Agent inschakelen

Als u SQL Server Agent in Linux wilt gebruiken, moet u eerst SQL Server Agent inschakelen op een computer waarop al SQL Server is geïnstalleerd.

  1. Voer de volgende opdracht uit om SQL Server Agent in te schakelen.

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    
  2. Start SQL Server opnieuw 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 deze standaard uitgeschakeld. Zie Install SQL Server Agent on Linux voor agent die is ingesteld vóór CU 4.

Een voorbeelddatabase maken

Gebruik de volgende stappen om een voorbeelddatabase met de naam SampleDBte maken. Deze database wordt gebruikt voor de dagelijkse back-uptaak.

  1. Open een bash-terminalsessie op uw Linux-computer.

  2. Gebruik sqlcmd om een opdracht Transact-SQL CREATE DATABASE uit te voeren.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'
    
  3. 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.

Aanbeveling

U kunt elke T-SQL-client gebruiken om deze opdrachten uit te voeren. In Linux kunt u bijvoorbeeld de sqlcmd- en bcp-commandoregelhulpmiddelen voor SQL Server installeren op Linux of de SQL Server-extensie voor Visual Studio Code gebruiken. 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.

  1. Gebruik sp_add_job om een taak met de naam Daily SampleDB Backupte 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
    
  2. 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
    
  3. 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
    
  4. 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
    
  5. 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
    
  6. Start de taak met sp_start_job.

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

Een taak maken met SSMS

U kunt taken ook op afstand maken en beheren met behulp van SQL Server Management Studio (SSMS) op Windows.

  1. Start SSMS op Windows en maak verbinding met uw Linux SQL Server-exemplaar. Zie Gebruik SQL Server Management Studio op Windows voor het beheren van SQL Server on Linux voor meer informatie.

  2. Controleer of u een voorbeelddatabase hebt gemaakt met de naam SampleDB.

    Schermopname van het maken van een SampleDB-database.

  3. Controleer of SQL Agent is Install SQL Server Agent in Linux en juist is geconfigureerd. Zoek het plusteken naast SQL Server Agent in de Objectverkenner. Als SQL Server Agent niet is ingeschakeld, start u de service mssql-server opnieuw op Linux.

    Schermafbeelding waarin wordt getoond hoe u kunt controleren of SQL Server Agent is geïnstalleerd.

  4. Maak een nieuwe taak.

    Schermopname die laat zien hoe u een nieuwe taak maakt.

  5. Geef uw taak een naam en maak uw taakstap.

    schermopname die laat zien hoe u een taakstap maakt.

  6. Geef op welk subsysteem u wilt gebruiken en wat de taakstap moet doen.

    Schermopname van het dialoogvenster Nieuwe taak in SSMS, met de pagina Stappen met de knop Nieuw gemarkeerd om een taakstap te maken.

    Schermopname van het dialoogvenster Nieuwe taakstap met een T-SQL BACKUP DATABASE-opdracht voor SampleDB met de knop OK gemarkeerd.

  7. Maak een nieuw taakschema.

    Schermafbeelding van het dialoogvenster Nieuwe taak met de optie Planningen gemarkeerd en de optie Nieuw aangeduid.

    Schermopname van het dialoogvenster Nieuwe taak met de optie OK gemarkeerd.

  8. Start uw werk.

    Schermafbeelding die toont hoe u de SQL Server Agent-job start.

Volgende stap

In deze zelfstudie hebt u het volgende geleerd:

  • SQL Server Agent installeren in Linux
  • Gebruik Transact-SQL en door het systeem opgeslagen procedures om taken 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: