Vytváření a spouštění úloh SQL Server Agent v Linuxu

Platí pro:SQL Server na Linuxu

SQL Server úlohy se používají k pravidelnému provádění stejné posloupnosti příkazů v SQL Server databázi. Tento kurz obsahuje příklad vytvoření úlohy SQL Server Agent v Linuxu pomocí Transact-SQL i SQL Server Management Studio (SSMS).

  • Instalace SQL Server Agent v Linuxu
  • Vytvoření nové úlohy pro provádění denních záloh databáze
  • Naplánování a spuštění úlohy
  • Stejný postup proveďte v nástroji SSMS (volitelné)

Známé problémy s SQL Server Agent v Linuxu najdete v tématu SQL Server on Linux: Známé problémy.

Požadavky

K dokončení tohoto kurzu jsou vyžadovány následující požadavky:

Následující požadavky jsou volitelné:

Povolte SQL Server Agent

Pokud chcete používat SQL Server Agent v Linuxu, musíte nejdřív povolit SQL Server Agent na počítači, který už má SQL Server nainstalovaný.

  1. Pokud chcete povolit SQL Server Agent, spusťte následující příkaz.

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    
  2. Restartujte SQL Server pomocí následujícího příkazu:

    sudo systemctl restart mssql-server
    

Poznámka

Od SQL Server 2017 (14.x) CU 4 je SQL Server Agent součástí balíčku mssql-server a ve výchozím nastavení je zakázaný. Informace o nastavení agenta před CU 4 najdete v tématu Install SQL Server Agent on Linux.

Vytvoření ukázkové databáze

Pomocí následujícího postupu vytvořte ukázkovou databázi s názvem SampleDB. Tato databáze se používá pro úlohu denního zálohování.

  1. Na vašem systému s Linuxem otevřete relaci terminálu bash.

  2. Ke spuštění příkazu Transact-SQL použijte CREATE DATABASE.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'
    
  3. Ověřte, že je databáze vytvořena tím, že si na serveru vypíšete seznam databází.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'SELECT name FROM sys.databases'
    

Vytvoření úlohy pomocí Transact-SQL

Následující kroky vytvoří úlohu SQL Server Agent v Linuxu s příkazy Transact-SQL. Úloha spouští denní zálohu ukázkové databáze SampleDB.

Spropitné

Ke spuštění těchto příkazů můžete použít libovolného klienta T-SQL. V Linuxu můžete například použít Instalujte nástroje příkazového řádku sqlcmd a bcp SQL Server v Linuxu nebo rozšíření SQL Server pro Visual Studio Code. Ze vzdáleného Windows Server můžete také spouštět dotazy v SQL Server Management Studio (SSMS) nebo použít rozhraní uživatelského rozhraní pro správu úloh, které je popsáno v další části.

  1. Pomocí sp_add_job vytvořte úlohu s názvem 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
    
  2. Voláním sp_add_jobstep vytvořte krok úlohy, který vytvoří zálohu SampleDB databáze.

    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. Pak vytvořte denní plán pro úlohu pomocí 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. Připojte plán úlohy k úloze pomocí 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. Pomocí sp_add_jobserver přiřaďte úlohu cílovému serveru. V tomto příkladu je cílem místní server.

    EXECUTE dbo.sp_add_jobserver
        @job_name = N'Daily SampleDB Backup',
        @server_name = N'(local)';
    GO
    
  6. Spusťte úlohu pomocí sp_start_job.

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

Vytvoření úlohy pomocí SSMS

Úlohy můžete také vytvářet a spravovat vzdáleně pomocí SQL Server Management Studio (SSMS) na Windows.

  1. Spusťte SSMS na Windows a připojte se k instanci SQL Server Linuxu. Další informace najdete v tématu Použití SQL Server Management Studio Windows pro správu SQL Server on Linux.

  2. Ověřte, že jste vytvořili ukázkovou databázi s názvem SampleDB.

    Snímek obrazovky s vytvářením databáze SampleDB

  3. Ověřte, že byl agent SQL Install SQL Server Agent v Linuxu a správně nakonfigurovaný. V Object Explorer vyhledejte znaménko plus vedle SQL Server Agent. Pokud SQL Server Agent není povolené, zkuste restartovat službu mssql-server v Linuxu.

    Snímek obrazovky ukazuje, jak ověřit, zda byl nainstalován SQL Server Agent.

  4. Vytvořte novou úlohu.

    Snímek obrazovky znázorňující, jak vytvořit novou úlohu

  5. Pojmenujte svoji úlohu a vytvořte krok úlohy.

    Snímek obrazovky ukazující, jak vytvořit krok úlohy

  6. Určete, který subsystém chcete použít a co by měl krok úlohy udělat.

    Snímek obrazovky s dialogovým oknem Nová úloha v aplikaci SSMS zobrazující stránku Kroky se zvýrazněným tlačítkem Nový pro vytvoření kroku úlohy

    Snímek obrazovky s dialogovým oknem Nový krok úlohy zobrazující příkaz T-SQL BACKUP DATABASE pro SampleDB se zvýrazněným tlačítkem OK

  7. Vytvořte nový plán úlohy.

    Snímek obrazovky s dialogovým oknem Nová úloha, kde je zvýrazněna možnost Plány a zvlášť označena možnost Nový

    Snímek obrazovky s dialogovým oknem Nová úloha s vyvolanou možností OK

  8. Začněte svou práci.

    Screenshot ukazující, jak spustit SQL Server Agent job.

Další krok

V tomto kurzu jste se naučili:

  • Instalace SQL Server Agent v Linuxu
  • Vytváření úloh pomocí Transact-SQL a systémových uložených procedur
  • Vytvoření úlohy, která provádí denní zálohy databáze
  • Vytváření a správa úloh pomocí uživatelského rozhraní SSMS

Dále prozkoumejte další možnosti vytváření a správy úloh: