Sdílet prostřednictvím


Elastické úlohy v Azure SQL Database

Platí pro:Azure SQL Database

Tento článek popisuje možnosti a podrobnosti elastických úloh pro Azure SQL Database.

Přehled elastických úloh

Můžete vytvářet a plánovat elastické úlohy, které se pravidelně spouštějí na jedné nebo mnoha databázích Azure SQL. Úlohy spouští dotazy Transact-SQL (T-SQL) a provádějí úlohy údržby.

Můžete definovat cílové databáze nebo skupiny databází, ve kterých se úloha spouští. Můžete také nastavit plány pro spuštění úlohy. Všechna data a časy v elastických úlohách jsou v časovém pásmu UTC.

Úloha zajišťuje ověření v cílové databázi. Definujete, udržujete a uchováváte Transact-SQL skripty, které se mají spouštět napříč skupinou databází.

Každá úloha protokoluje stav spuštění a automaticky opakuje operace, pokud dojde k nějaké chybě.

Kdy použít elastické úlohy

Automatizace elastických úloh se používá v následujících scénářích:

  • Automatizujte úlohy správy a naplánujte jejich spouštění každý pracovní den nebo po hodinách, například.
    • Nasaďte změny schématu a spravujte přihlašovací údaje.
    • Shromážděte data o výkonu nebo protokoly systémů tenanta (zákazníka).
    • Aktualizace referenčních dat (společné informace napříč všemi databázemi).
    • Načtěte data ze služby Azure Blob Storage.
  • Konfigurujte úlohy tak, aby běžely v kolekci databází opakovaně, například v době mimo špičku.
    • Průběžně shromážděte výsledky dotazů ze sady databází do centrální tabulky.
    • Dotazy se můžou průběžně spouštět a konfigurovat tak, aby aktivovaly další úlohy.
  • Shromažďování dat pro vytváření sestav
    • Agregace dat z kolekce databází do jedné cílové tabulky
    • Spouštění dotazů na zpracování dat napříč velkou sadou databází, například shromažďování protokolů zákazníků. Výsledky se pro účely další analýzy shromažďují do jedné cílové tabulky.
  • Přesuny dat
    • Pro vlastní vyvinutá řešení, obchodní automatizaci nebo jinou správu úloh.
    • Zpracování ETL za účelem extrakce, transformace a načítání dat mezi tabulkami v databázi

Zvažte elastické úlohy, když:

  • Úloha, která se musí pravidelně spouštět podle plánu, zaměřená na jednu nebo více databází.

  • Máte úlohu, která se musí spouštět jednou, ale napříč více databázemi.

  • Je potřeba spouštět úlohy s libovolnou kombinací databází: jedné nebo více jednotlivých databází, všech databází na serveru, všech databází v elastickém fondu s přidanou flexibilitou zahrnutí nebo vyloučení jakékoli konkrétní databáze. Úlohy se můžou spouštět na více serverech, ve více fondech a dokonce i pracovat s databázemi v různých předplatných. Servery a pooly jsou dynamicky zjišťovány za běhu, takže práce se spouští pro všechny databáze, které k době spuštění existují v cílové skupině.

    • Tato funkce je významným rozdílem od agenta SQL, který nedokáže dynamicky vyčíslit cílové databáze, zejména ve scénářích zákazníků SaaS, ve kterých se databáze přidávají nebo odstraňují dynamicky.

Komponenty elastických úloh

Komponenta Popis
Agent elastických úloh Prostředek Azure, který vytvoříte pro spouštění a správu úloh.
Databáze úloh Databáze ve službě Azure SQL Database, kterou agent úloh používá k ukládání dat souvisejících s úlohami, definic úloh a dalších.
Práce Úloha je jednotka práce, která se skládá z jednoho nebo více kroků úlohy. Kroky úlohy určují skript T-SQL, který se má spustit, a další požadované podrobnosti.
Cílová skupina Sada serverů, fondů a databází, které se používají na provádění úloh.

Agent elastických úloh

Agent elastických úloh je prostředek Azure pro vytváření, spouštění a správu úloh. Agenta elastických úloh vytvoříte jako prostředek Azure na portálu (podporují se také vytváření a správa elastických úloh pomocí PowerShellu a rozhraní REST API).

Vytvoření agenta elastických úloh vyžaduje existující databázi ve službě Azure SQL Database. Agent nakonfiguruje tuto existující službu Azure SQL Database jako databázi úloh.

Úlohu můžete spustit, zakázat nebo zrušit prostřednictvím webu Azure Portal. Azure Portal také umožňuje zobrazit definice úloh a historii provádění.

Náklady na agenta škálovatelných úloh

Databáze úloh se účtuje za stejnou sazbu jako jakákoli databáze v Azure SQL Database. Náklady na agenta elastických úloh jsou založené na pevných cenách vybrané úrovně služby pro agenta úloh. Další informace najdete na stránce s cenami služby Azure SQL Database.

Databáze elastických úloh

Pomocí databáze úloh můžete definovat úlohy a sledovat stav a historii provádění úloh. Úlohy se spouštějí v cílových databázích. Databáze úloh také ukládá metadata agenta, protokoly, výsledky a definice úloh. Obsahuje mnoho užitečných uložených procedur a dalších databázových objektů pro vytváření, spouštění a správu úloh pomocí T-SQL.

K vytvoření agenta elastických úloh potřebujete Azure SQL Database. Agent úloh ukládá všechna metadata související s úlohou do databáze úloh, což by mělo být nové prázdné azure SQL Database.

Doporučený cíl služby databáze úloh je DTU S1 nebo vyšší, ale optimální volba závisí na potřebách výkonu vašich úloh: počet kroků úlohy, počet cílů úloh a četnost spouštění úloh.

Pokud jsou operace s databází úloh pomalejší, než se očekávalo, monitorujte výkon databáze a využití prostředků v databázi úloh během období zpomalení pomocí Azure portálu nebo DMV sys.dm_db_resource_stats. Pokud využití prostředku, jako je využití procesoru, vstupně-výstupních operací dat nebo zápisu protokolů, přistupuje k 100 % a koreluje s obdobími zpomalení, zvažte přírůstkové škálování databáze na vyšší cíle služby (buď v nákupním modelu založeném na DTU nebo v nákupním modelu virtuálních jader), dokud se výkon databáze úloh dostatečně nezlepší.

Samotná databáze úloh může být cílem elastické úlohy. V tomto scénáři zachází s databází úloh stejně jako s jakoukoli jinou cílovou databází. Musíte vytvořit uživatele úlohy a udělit dostatečná oprávnění v databázi úloh. Pověření s rozsahem databáze pro uživatele úlohy musí existovat také v databázi úloh, stejně jako pro každou jinou cílovou databázi.

Pokud je databáze úloh cílem úlohy, ujistěte se, že vaše úlohy neupraví nebo neodstraní žádná metadata specifická pro agenta úloh uložená v této databázi. K úpravě nebo dotazování informací souvisejících s úlohou používejte pouze uložené procedury nebo zobrazení úloh .

Důležité

Neupravujte existující objekty ani nevytvávejte nové objekty v databázi úloh, ale můžete číst z tabulek pro vytváření sestav a analýzy.

Elastické úlohy a kroky úloh

Úloha je jednotka práce, která běží podle plánu nebo jako jednorázová úloha. Úloha se skládá z jednoho nebo několika kroků úlohy.

Každý krok úlohy určuje skript T-SQL, který se má spustit, jednu nebo více cílových skupin pro spuštění skriptu T-SQL a přihlašovací údaje, se které musí agent úlohy připojit k cílové databázi. Každý krok úlohy má přizpůsobitelný časový limit a zásady opakování a volitelně může určovat výstupní parametry.

Cíle elastických úloh

Elastické úlohy můžou paralelně spouštět jeden nebo více skriptů T-SQL, napříč velkým počtem databází, podle plánu nebo na vyžádání. Cílem může být libovolná úroveň služby Azure SQL Database.

Naplánované úlohy můžete spouštět pro libovolnou kombinaci databází: jednu nebo více jednotlivých databází, všechny databáze na serveru nebo všechny databáze v elastickém fondu s přidanou flexibilitou zahrnutí nebo vyloučení jakékoli konkrétní databáze. Úlohy můžou běžet na více serverech a více fondech a mohou dokonce běžet s databázemi v různých předplatných. Servery a pooly jsou dynamicky zjišťovány za běhu, takže práce se spouští pro všechny databáze, které k době spuštění existují v cílové skupině.

Následující obrázek ukazuje agenta úloh, který spouští úlohy napříč různými typy cílových skupin:

Diagram agenta elastických úloh využívající přihlašovací údaje databáze pro ověřování vůči cíli.

Cílová skupina

Cílová skupina definuje sadu databází, ve kterých se spouští krok úlohy. Cílová skupina může obsahovat libovolný počet a kombinaci následujících typů:

  • Logický SQL server: Pokud zadáte server, všechny databáze, které existují na serveru v době provádění úlohy, jsou součástí skupiny. Před spuštěním úlohy je nutné zadat master přihlašovací údaje databáze, aby mohla být skupina vyčíslená a aktualizována. Další informace o logických serverech najdete v tématu Co je logický server ve službě Azure SQL Database a Azure Synapse?

  • Elastický fond: Pokud zadáte elastický fond, všechny databáze, které jsou v elastickém fondu v době provádění úlohy, jsou součástí skupiny. Stejně jako u serveru musíte zadat master přihlašovací údaje databáze, aby bylo možné skupinu aktualizovat před spuštěním úlohy.

  • Jednoúčelová databáze: Zadejte jednu nebo více jednotlivých databází, které mají být součástí skupiny.

Tip

V okamžiku spuštění úlohy dynamická enumerace znovu vyhodnocuje sadu databází v cílových skupinách, které zahrnují servery nebo pooly. Dynamický výčet zajišťuje, že se úlohy spustí pro všechny databáze, které existují na serveru nebo ve fondu v době spuštění úlohy. Opětovné hodnocení seznamu databází za běhu je užitečné ve scénářích, kdy se často mění členství ve fondu nebo serveru.

Fondy a izolované databáze můžou být zahrnuté nebo vyloučené ze skupiny. Cílovou skupinu můžete vytvořit s libovolnou kombinací databází. Do cílové skupiny například můžete přidat server, ale vyloučit z ní konkrétní databáze v elastickém fondu (nebo vyloučit celý fond).

Cílová skupina může zahrnovat databáze v několika předplatných a napříč několika oblastmi. Spouštění napříč oblastmi mají vyšší latenci než spouštění ve stejné oblasti.

Následující příklady ukazují, jak se v okamžiku provádění úlohy dynamicky vyčíslují různé definice cílové skupiny, aby bylo možné určit, které databáze mají mít vliv:

Diagram příkladů cílové skupiny

  • Příklad 1 ukazuje cílovou skupinu, která se skládá ze seznamu jednotlivých databází. Když krok úlohy používá tuto cílovou skupinu, akce kroku úlohy se provede v každé z těchto databází.

  • Příklad 2 ukazuje cílovou skupinu, která obsahuje server jako cíl. Když krok úlohy použije tuto cílovou skupinu serveru, server se dynamicky vyčísluje, aby určil seznam databází, které jsou momentálně na serveru. Akce z kroku úlohy se vykoná v každé z těchto databází.

  • Příklad 3 ukazuje podobnou cílovou skupinu jako příklad 2, ale s jednou výslovně vyloučenou databází. Akce kroku úlohy se nespustí ve vyloučené databázi.

  • Příklad 4 ukazuje cílovou skupinu, která jako cíl obsahuje elastický fond. Podobně jako v příkladu 2 se fond dynamicky vypisuje za běhu úlohy, aby se zjistil seznam databází ve fondu.

Diagram příkladů pokročilých scénářů s pravidly pro zahrnutí a vyloučení cílové skupiny.

  • Příklad 5 a Příklad 6 ukazují pokročilé scénáře, ve kterých lze servery, elastické fondy a databáze kombinovat pomocí pravidel zahrnutí a vyloučení.

Plány elastických úloh

Elastické úlohy jsou produkty primárně určené pro cloud. Jsou navrženy tak, aby se spustily, i když dojde k přechodnému nebo dočasnému problému s dostupností sítě nebo služby v době svého naplánování. Plány elastických úloh berou v úvahu čas zahájení plánu a požadované intervaly. Když vytvoříte plán elastické úlohy, úloha se spustí co nejdříve to možné po každé naplánované intervalové události.

Důležité

Osvědčeným postupem je vytvořit plány úloh, které se spouštějí v budoucnu.

Plány úloh detekovaly zmeškané události. Pokud vytvoříte nový plán úlohy, který začíná v minulosti, úloha se spustí okamžitě po povolení. Pokud je zakázaná nebo jinak nedostupná, úloha se spustí okamžitě po povolení nebo zpřístupnění.

Například aktuálně je to 2. ledna 9 UTC. Novou úlohu nastavíte tak, aby byla naplánována na dnešní večer, 2. ledna ve 22:30 (UTC), a běžela každý den. Úloha se spustí v 10:30 (UTC).

Pokud chcete zabránit náhodnému spuštění úlohy, vytvořte plány s budoucím začátkem. V příkladu, který by mohl vést k náhodnému spuštění úlohy, nastavíte novou úlohu, která se bude spouštět každý den v 10:30 UTC. Úlohu zakážete týden. Pokud úlohu povolíte v 8:30 UTC, úloha se okamžitě spustí a nahradí zmeškaný interval, který měl být proveden včera v noci. Po svém provedení se agent úlohy znovu nespustí až do dalšího naplánovaného spuštění ve 22:30 UTC. Pokud chcete zabránit spuštění v 8:30 UTC v tomto scénáři, aktualizujte plán úlohy na 8. ledna v 10:30 PM UTC a pak tuto úlohu povolte. Nebo povolte úlohu v okamžiku, kdy se úloha může spustit okamžitě.

Ověřování

Zvolte jednu metodu pro všechny cíle elastického agenta úloh. Například pro jednoho agenta elastických úloh nemůžete nakonfigurovat jeden cílový server tak, aby používal přihlašovací údaje s omezením na databázi, a další pro použití ověřování přes Microsoft Entra ID.

Agent elastických úloh se může připojit k serverům a databázím určeným cílovou skupinou pomocí dvou možností ověřování:

Ověřování prostřednictvím spravované identity přiřazené uživatelem (UMI)

Ověřování Microsoft Entra prostřednictvím spravované identity přiřazené uživatelem (UMI) je doporučenou možností pro připojení elastických úloh ke službě Azure SQL Database. S podporou Microsoft Entra ID se agent úlohy připojí k cílovým databázím (databáze, servery, elastické fondy) a k výstupní databázi pomocí UMI.

Diagram fungování spravovaných identit přiřazených uživatelem (UMI) s elastickými úlohami

Volitelně můžete povolit ověřování MICROSOFT Entra ID na logickém serveru, který obsahuje databázi elastických úloh, pro přístup k této databázi a dotazování na tuto databázi prostřednictvím připojení Microsoft Entra ID. Agent úloh ale pro připojení k databázi úloh používá interní ověřování založené na certifikátech.

Můžete vytvořit jeden UMI nebo použít existující rozhraní UMI a přiřadit stejný UMI více agentům úloh. Každý agent úloh podporuje jenom jeden UMI. Jakmile přiřadíte UMI agentu úloh, agent úlohy použije tuto identitu k připojení a spuštění úloh T-SQL v cílových databázích. Agent úloh nepoužívá ověřování SQL pro cílový server ani databáze.

Název UMI musí začínat písmenem nebo číslem a musí mít délku 3 až 128 znaků. Může obsahovat znaky spojovníku (-) a podtržítka (_).

Další informace o rozhraní UMI ve službě Azure SQL Database najdete v tématu Spravované identity pro Azure SQL, včetně požadovaných kroků a výhod použití UMI jako identity logického serveru Azure SQL Database. Další informace najdete v tématu Ověřování Microsoft Entra pro Azure SQL.

Důležité

Při použití ověřování Microsoft Entra ID vytvořte uživatele jobuser z daného ID Microsoft Entra v každé cílové databázi. Udělte uživateli oprávnění potřebná ke spouštění úloh v každé cílové databázi.

Použití spravované identity přiřazené systémem (SMI) se nepodporuje.

Ověřování prostřednictvím ověřovacích údajů v rozsahu databáze

I když se doporučuje ověřování Microsoft Entra (dříve Azure Active Directory), můžete při spuštění nakonfigurovat úlohy tak, aby používaly přihlašovací údaje s oborem databáze pro připojení k databázím určeným cílovou skupinou. Před říjnem 2023 byly přihlašovací údaje v oboru databáze jedinou možností ověřování.

Pokud cílová skupina obsahuje servery nebo fondy, tato přihlašovací data na úrovni databáze se připojují k master databázi, aby vyhledala a seřadila dostupné databáze.

  • Vytvořte přihlašovací údaje v databázi úloh s vymezeným oborem databáze.

  • Všechny cílové databáze musí mít přihlášení s dostatečnými oprávněními, aby se úloha úspěšně dokončila (jobuserv následujícím diagramu).

  • Přihlašovací údaje, které vytvoříte v cílových databázích (LOGIN a PASSWORD pro masteruser a jobuser, v následujícím diagramu), by se měly shodovat s IDENTITY a SECRET v přihlašovacích údajích, které vytvoříte v databázi úloh.

  • Přihlašovací údaje můžete opakovaně používat napříč úlohami. Hesla přihlašovacích údajů jsou šifrovaná a zabezpečená od uživatelů, kteří mají přístup jen pro čtení k objektům úloh.

Následující obrázek vám pomůže pochopit, jak nastavit správné přihlašovací údaje úlohy a jak se agent elastických úloh připojuje pomocí přihlašovacích údajů databáze jako ověřování pro přihlášení a uživatele v cílových serverech a databázích.

Diagram přihlašovacích údajů pro elastické úlohy a způsob, jakým se agent elastických úloh připojuje k cílovým serverům/databázím pomocí přihlašovacích údajů databáze pro ověření na přihlášení/uživatele.

Poznámka:

Při použití přihlašovacích údajů v rámci databáze nezapomeňte vytvořit uživatele jobuser v každé cílové databázi.

Privátní koncové body elastické úlohy

Agent pro elastické úlohy podporuje privátní koncové body elastických úloh. Vytvoření privátního koncového bodu elastických úloh vytvoří privátní propojení mezi elastickou úlohou a cílovým serverem. Funkce privátních koncových bodů elastických úloh se liší od služby Azure Private Link.

Diagram privátních koncových bodů spravovaných službou pro elastické úlohy

Funkce privátních koncových bodů elastické úlohy podporuje privátní připojení k cílovým a výstupním serverům, takže se k nim agent úloh může dostat i v případě, že je povolená možnost Odepřít veřejný přístup . Použití privátních koncových bodů je také jedním z možných řešení, pokud chcete zakázat možnost Povolit službám a prostředkům Azure přístup k danému serveru .

Privátní koncové body elastických úloh podporují všechny možnosti ověřování agenta elastických úloh.

Funkce privátního koncového bodu elastické úlohy umožňuje zvolit privátní koncový bod spravovaný službou a vytvořit zabezpečené připojení mezi agentem úloh a jeho cílovými a výstupními servery. Privátní koncový bod spravovaný službou je privátní IP adresa v rámci konkrétní virtuální sítě a podsítě. Když se rozhodnete používat privátní koncové body na jednom z cílových a výstupních serverů agenta úloh, Azure vytvoří privátní koncový bod spravovaný službou. Tento privátní koncový bod pak výhradně používá agent úloh pro připojování a spouštění úloh nebo pro zápis výstupu úlohy do cílové a výstupní databáze.

Privátní koncové body elastických úloh můžete vytvářet a povolovat prostřednictvím webu Azure Portal. Cílové servery připojené přes privátní propojení můžou být kdekoli v Azure, a to i v různých geografických oblastech a předplatných. Pokud chcete tuto komunikaci povolit, musíte vytvořit privátní koncový bod pro každý požadovaný cílový server a výstupní server úlohy.

Kurz konfigurace nového privátního koncového bodu spravovaného službou pro elastické úlohy najdete v tématu Konfigurace privátního koncového bodu elastických úloh Azure SQL.

Požadavky na privátní koncové body elastických úloh

  • Pokud chcete použít privátní koncový bod elastických úloh, musí být agent úloh i cílové servery nebo databáze hostované v Azure (stejné nebo různé oblasti) a ve stejném typu cloudu (například ve veřejném cloudu nebo v cloudu pro státní správu).

  • Poskytovatel Microsoft.Network prostředků musí být zaregistrovaný pro předplatná hostitele agenta úloh, cílového serveru a výstupního serveru.

  • Azure vytváří elastické privátní koncové body pro každý cílový a výstupní server. Musíte je schválit, než je bude moci použít agent elastických úloh. Můžete je schválit v podokně Sítě tohoto logického serveru nebo preferovaného klienta. Pak se agent elastických úloh může spojit s databázemi na daném serveru pomocí privátního připojení.

  • Připojení z agenta elastických úloh k databázi úloh nepoužívá privátní koncový bod. Samotný agent úloh používá pro připojení k databázi úloh interní ověřování založené na certifikátech.

    • Pokud databázi úloh přidáte jako člena cílové skupiny, chová se jako běžný cíl. Podle potřeby je potřeba nastavit privátní koncový bod.

Oprávnění databáze elastických úloh

Během vytváření agenta úloh se v databázi úloh vytvoří schéma, tabulky a role s názvem jobs_reader. Role se vytvoří s následujícím oprávněním a je navržená tak, aby správcům poskytla jemné řízení přístupu pro monitorování úloh. Správci můžou uživatelům poskytnout možnost monitorovat provádění úloh jejich přidáním do jobs_reader role v databázi úloh.

Název role jobs Oprávnění schématu jobs_internal Oprávnění schématu
jobs_reader SELECT Nic

Upozornění

Neaktualizovat zobrazení interního katalogu v databázi úloh, například jobs.target_group_members. Ruční změna těchto zobrazení katalogu může poškodit databázi úloh a způsobit selhání. Tato zobrazení jsou určena pouze pro dotazy jen pro čtení. Uložené procedury v databázi úloh můžete použít k přidání nebo odstranění cílových skupin a členů, například jobs.sp_add_target_group_member.

Před udělením zvýšeného přístupu k databázi úloh zvažte důsledky zabezpečení. Uživatel se zlými úmysly s oprávněními k vytvoření nebo úpravě úloh může vytvořit nebo upravit úlohu, která používá uložené přihlašovací údaje pro připojení k databázi pod kontrolou škodlivého uživatele. Tato chyba zabezpečení může uživateli se zlými úmysly umožnit zjistit heslo přihlašovacích údajů nebo spustit škodlivé příkazy.

Monitorování elastických úloh

Agent elastických úloh se integruje se službami Azure Alerts pro oznámení o stavu úlohy, což zjednodušuje řešení pro monitorování stavu a historie provádění úloh.

Azure Portal obsahuje další funkce pro podporu elastických úloh a monitorování úloh. Na stránce Přehled agenta elastických úloh se zobrazí nejnovější spuštění úloh, jak je znázorněno na následujícím snímku obrazovky.

Snímek obrazovky ze stránky Přehled webu Azure Portal zobrazující nedávné spuštění úloh

Pravidla upozornění služby Azure Monitor můžete vytvořit pomocí webu Azure Portal, Azure CLI, PowerShellu a rozhraní REST API. Metrika neúspěšných elastických úloh je dobrým výchozím bodem pro monitorování a přijímání upozornění na provádění elastické úlohy. Kromě toho se můžete rozhodnout být upozorňováni prostřednictvím konfigurovatelné akce, jako je SMS nebo e-mail, prostřednictvím služby Azure Alert. Další informace najdete v tématu Vytváření upozornění pro službu Azure SQL Database na webu Azure Portal.

Ukázku najdete v tématu Vytvoření, konfigurace a správa elastických úloh.

Výstup úlohy

Výsledek kroků úlohy pro každou cílovou databázi je podrobně zaznamenán a výstup skriptu lze zaznamenat do zadané tabulky. Můžete určit databázi, do které se budou ukládat všechna data vrácená z úlohy.

Historie úlohy

Historii provádění elastických úloh můžete zobrazit v databázi úloh dotazováním tabulky jobs.job_executions. Úloha čištění systému vymaže historii provádění, která je starší než 45 dnů. Pokud chcete historii, která je starší než 45 dnů, odebrat ručně, spusťte uloženou proceduru sp_purge_jobhistory v databázi úloh.

Stav úlohy

Provádění elastických úloh v databázi úloh můžete monitorovat dotazováním tabulky jobs.job_executions.

Osvědčené postupy

Při práci s úlohami elastické databáze zvažte následující osvědčené postupy.

Osvědčené postupy zabezpečení

  • Omezte možnost používat rozhraní API na důvěryhodné osoby.

  • Udělte přihlašovacím údajům nejmenší nutná oprávnění k provedení kroku úlohy. Další informace najdete v tématu Autorizace a oprávnění.

  • Pokud používáte člena cílové skupiny serveru nebo fondu, vytvořte pro zobrazení a výpis databází samostatné přihlašovací údaje s právy k master databázi. Tyto přihlašovací údaje rozšíří seznamy serverů a skupin před spuštěním úlohy.

Výkon elastické úlohy

Elastické úlohy používají minimální výpočetní prostředky při čekání na dokončení dlouhotrvajících úloh.

V závislosti na velikosti cílové skupiny databází a požadované době provedení úlohy (počtu současně pracujících), agent vyžaduje různé množství výpočetního výkonu a výkonu databáze úlohy (čím více cílů a vyšší počet úloh, tím větší množství výpočetního výkonu je potřeba).

Souběžné úrovně kapacity

Od října 2023 má agent elastických úloh několik úrovní výkonu, aby mohl zvýšit kapacitu.

Přírůstky kapacity označují celkový počet souběžných cílových databází, ke které se agent úloh může připojit a spustit úlohu. Pokud chcete získat více souběžných cílových připojení pro provádění úloh, upgradujte úroveň agenta úloh z výchozí úrovně JA100, která má limit 100 souběžných cílových připojení.

Většina prostředí vyžaduje kdykoli méně než 100 souběžných úloh, takže ja100 je výchozí.

Vrstva agenta elastických úloh Maximální počet souběžných úloh
JA100 100
JA200 200
JA400 400
JA800 800

Překročení úrovně kapacity souběžnosti agenta úloh s cíli úloh vytváří zpoždění fronty pro některé cílové databáze a servery. Pokud například spustíte úlohu se 110 cíli v úrovni JA100, 10 cílů čeká na zahájení, dokud se nedokončí ostatní.

Cíl vrstvy nebo služby agenta elastických úloh můžete upravit prostřednictvím webu Azure Portal, PowerShellu nebo rozhraní REST API agentů úloh. Příklad najdete v Škálování agenta práce.

Omezení dopadu úloh na elastické fondy

Pokud chcete zajistit, aby se prostředky při spouštění úloh s databázemi v elastickém fondu Azure SQL Database nepřetížily, nakonfigurujte úlohy tak, aby omezily počet databází spuštěných najednou.

Nastavte počet souběžných databází, na které se úloha spouští, nastavením sp_add_jobstep parametru @max_parallelism uložené procedury v T-SQL.

Idempotentní skripty

Skripty T-SQL elastické úlohy musí být idempotentní, to znamená, že pokud se skript úspěšně spustí a spustí se znovu, dojde ke stejnému výsledku. Skript může selhat kvůli přechodným problémům se sítí. V takovém případě úloha před desistováním automaticky opakuje spuštění skriptu přednastaveným počtem opakování. Idempotentní skript má stejný výsledek, i když byl úspěšně spuštěn dvakrát (nebo více).

Jednoduchou taktikou je před vytvořením objektu otestovat, jestli už neexistuje. Následující příklad je hypotetický:

IF NOT EXISTS (SELECT *
               FROM sys.objects
               WHERE [name] = N'some_object')
    PRINT 'Object does not exist'; -- Create the object
ELSE
    PRINT 'Object exists'; -- If it exists, drop the object before recreating it.

Skript se také musí být schopný úspěšně provést. Dosáhne toho tím, že logicky testuje podmínky a reaguje na případné podmínky, které najde.

Omezení

Aktuální omezení služby elastických úloh jsou následující. Produktový tým aktivně pracuje na odebrání co největšího počtu těchto omezení.

Problém Popis
Agent elastických úloh je nutné po převzetí služeb při selhání znovu vytvořit a spustit v novém regionu, nebo přesunout do nové oblasti Azure. Služba elastických úloh ukládá všechny své agenty a metadata úloh do databáze úloh. Jakékoli převzetí služeb při selhání nebo přesun prostředků Azure do nové oblasti Azure způsobí také přesun databáze úloh, agenta úloh a metadata úloh do této nové oblasti. Agent elastických úloh je však výpočetní prostředek, který je potřeba explicitně znovu vytvořit a spustit v nové oblasti, než se úlohy začnou znovu spouštět. Po spuštění agent elastických úloh obnoví provádění úloh v nové oblasti podle dříve definovaného plánu úloh.
Nadměrné množství protokolů auditu SQL z databáze úloh Agent elastických úloh pracuje neustále dotazováním databáze úloh a kontroluje příchod nových úloh a dalších operací CRUD. Pokud je na serveru, který je součástí databáze úloh, povolené auditování, může databáze úloh vygenerovat velký počet protokolů auditu. Tento problém můžete zmírnit filtrováním těchto protokolů auditu pomocí Set-AzSqlServerAudit příkazu s výrazem predikátu.

Příklad:
Set-AzSqlServerAudit -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -BlobStorageTargetState Enabled -StorageAccountResourceId "/subscriptions/7fe3301d-31d3-4668-af5e-211a890ba6e3/resourceGroups/resourcegroup01/providers/Microsoft.Storage/storageAccounts/mystorage" -PredicateExpression "application_name <> 'Microsoft Azure SQL Database elastic jobs'"
Tento příkaz filtruje pouze protokoly auditu od agenta úloh k databázi úloh, nikoli protokoly auditu od agenta úloh k jakýmkoli cílovým databázím.
Použití databáze Hyperscale jako databáze úloh Použití databáze Hyperscale jako databáze úloh se nepodporuje. Elastické úlohy ale můžou cílit na databáze Hyperscale stejným způsobem jako jakékoli jiné databáze ve službě Azure SQL Database.
Bezserverové databáze a automatické pozastavení pomocí elastických úloh. Databáze bez serveru s povoleným automatickým pozastavením není podporována jako databáze úloh. Databáze bez serverů, na které jsou zaměřeny elastické úlohy, podporují automatické pozastavení a připojení úloh je obnovují.
Export databáze úloh do souboru BACPAC Export databáze úloh do souboru BACPAC se nepodporuje. Pokud je potřeba exportovat SQL Server obsahující databázi úloh , před exportem serveru nejprve odstraňte databázi úlohy .

Další krok