Vytváření a spouštění úloh agenta SQL Serveru v Linuxu
platí pro:SQL Server – Linux
Úlohy SQL Serveru se používají k pravidelnému provádění stejné posloupnosti příkazů v databázi SQL Serveru. Tento kurz obsahuje příklad vytvoření úlohy agenta SQL Serveru v Linuxu pomocí Transact-SQL i aplikace SQL Server Management Studio (SSMS).
- Instalace agenta SQL Serveru 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 Agentem SQL Serveru na Linuxu najdete v poznámkách k verzi pro SQL Server 2017 na Linuxu.
Požadavky
K dokončení tohoto kurzu jsou vyžadovány následující požadavky:
Počítač s Linuxem s následujícími požadavky:
- rychlý start pro : Instalace SQL Serveru a vytvoření databáze v Red Hat
- Rychlý start: Instalace SQL Serveru a vytvoření databáze na SUSE Linux Enterprise Server
- Rychlý start: Nainstalujte SQL Server a vytvořte databázi na Ubuntu pomocí nástrojů příkazového řádku.
Následující požadavky jsou volitelné:
- Počítač s Windows s SSMS:
- Stáhnout SQL Server Management Studio (SSMS) pro volitelné kroky SSMS.
Povolení agenta SQL Serveru
Pokud chcete používat agenta SQL Serveru v Linuxu, musíte nejprve povolit agenta SQL Serveru na počítači s nainstalovaným SQL Serverem.
Pokud chcete povolit agenta SQL Serveru, postupujte podle následujícího postupu.
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
Restartujte SQL Server pomocí následujícího příkazu:
sudo systemctl restart mssql-server
Poznámka
Od verze SQL Server 2017 (14.x) CU 4 je agent SQL Serveru součástí balíčku mssql-server
a je ve výchozím nastavení zakázaný. Informace o nastavení agenta před CU 4 najdete v tématu Instalace agenta SQL Serveru v Linuxu.
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í.
Na vašem systému s Linuxem otevřete relaci terminálu bash.
Ke spuštění příkazu Transact-SQL
CREATE DATABASE
použijte sqlcmd./opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'
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 agenta SQL Serveru 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. Například v Linuxu můžete použít Nainstalovat nástroje příkazového řádku SQL Serveru sqlcmd a bcp v Linuxu nebo rozšíření SQL Serveru pro Visual Studio Code. Ze vzdáleného Windows Serveru můžete také spouštět dotazy v aplikaci SQL Server Management Studio (SSMS) nebo použít rozhraní uživatelského rozhraní pro správu úloh, které je popsáno v další části.
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
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
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
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
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
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í aplikace SQL Server Management Studio (SSMS) ve Windows.
Spusťte SSMS ve Windows a připojte se k instanci SQL Serveru s Linuxem. Další informace najdete v tématu Použití aplikace SQL Server Management Studio ve Windows ke správě SQL Serveru v Linuxu.
Ověřte, že jste vytvořili ukázkovou databázi s názvem
SampleDB
.Ověřte, že SQL Agent byl nainstalován SQL Server Agent na Linuxu a správně nakonfigurován. V Průzkumníku objektů vyhledejte znaménko plus vedle agenta SQL Serveru. Pokud agent SQL Serveru není povolený, zkuste restartovat službu mssql-server v Linuxu.
Vytvořte novou úlohu.
Pojmenujte svoji úlohu a vytvořte krok úlohy.
Určete, který subsystém chcete použít a co by měl krok úlohy udělat.
Vytvořte nový plán úlohy.
Začněte svou úlohu.
Další krok
V tomto kurzu jste se naučili:
- Instalace agenta SQL Serveru 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: