Delen via


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:

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 SQL Server al is geïnstalleerd.

  1. Volg de onderstaande stap om SQL Server Agent in te schakelen.

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    
  2. 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 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 Transact-SQL CREATE DATABASE opdracht 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.

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.

  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 ook taken op afstand maken en beheren met behulp van SQL Server Management Studio (SSMS) in Windows.

  1. 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.

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

    Een SampleDB-database maken
  3. 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.

    Schermopname van het 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 taaksubsysteem.

    schermafbeelding die de taakstapactie toont.

  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.

    Een screenshot die laat zien hoe u een 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 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