Elastické úlohy ve službě Azure SQL Database

Platí pro:Azure SQL Database

V tomto článku si projdeme 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é by se mohly pravidelně spouštět na jedné nebo mnoha databázích Azure SQL ke spouštění dotazů Jazyka Transact-SQL (T-SQL) a provádění úloh údržby.

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

Úloha zajišťuje přihlášení k cílové databázi. Můžete také definovat, spravovat a uchovávat skripty Transact-SQL, které se spustí pro skupinu databází.

Každá úloha protokoluje stav spuštění a v případě jakéhokoli selhání také automaticky opakuje operace.

Kdy použít elastické úlohy

Existuje několik scénářů, kdy byste mohli použít automatizaci elastických úloh:

  • Automatizujte úlohy správy a naplánujte jejich spouštění každý pracovní den, po hodinách atd.
    • Nasaďte změny schématu, správu přihlašovacích údajů.
    • Shromažďování dat o výkonu nebo shromažďování telemetrie 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.
  • Nakonfigurujte úlohy tak, aby se spouštěly v kolekci databází opakovaně, například mimo špičku.
    • Průběžné shromažďování výsledků dotazů ze sady databází do centrální tabulky.
    • Dotazy je možné průběžně spouštět a konfigurovat tak, aby aktivovaly další úlohy, které se mají spustit.
  • Shromažďování dat pro vytváření sestav
    • Agregace dat z kolekce databází do jedné cílové tabulky
    • Spouštění dlouhotrvajících dotazů na zpracování dat pro velkou sadu databází, například shromažďování telemetrických dat uživatelů. 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 pro extrakci, zpracování a vkládání dat mezi tabulkami v databázi.

Při zvažovat elastické úlohy:

  • Mějte úlohu, která se musí spouštět pravidelně podle plánu, která cílí na jednu nebo více databází.
  • Ú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 pro databáze v různých předplatných. Servery a fondy se dynamicky zjišťují za běhu, takže se úlohy spouští pro všechny databáze, které existují v cílové skupině v době spuštění.
    • Jedná se o významný rozdíl od agenta SQL, který nedokáže dynamicky vytvořit výčet cílových databází, zejména ve scénářích zákazníků SaaS, kdy 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 atd.
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 také další podrobnosti potřebné ke spuštění skriptu.
Cílová skupina Sada serverů, fondů a databází pro spuštění úlohy.

Agent elastických úloh

Agent elastických úloh je prostředek Azure pro vytváření, spouštění a správu úloh. Agent elastických úloh je prostředek Azure, který vytvoříte na portálu (podporuje se také PowerShell 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 elastických úloh

Databáze úloh se účtuje stejným tempem jako jakákoli databáze ve službě Azure SQL Database. Náklady na agenta elastických úloh najdete v cenové kalkulačce Azure.

Databáze elastických úloh

Databáze úloh se používá k definování úloh a sledování stavu a historie provádění úloh. Úlohy se spouští v cílových databázích. Databáze úloh se také používá k ukládání metadat agenta, protokolů, výsledků, definic úloh a také 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 se doporučuje azure SQL Database (S1 nebo vyšší).

Databáze úloh by měla být čistá, prázdná, S1 nebo vyšší cíl služby Azure SQL Database.

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

Pokud jsou operace s databází úloh pomalejší, než se čekalo, monitorujte výkon databáze a využití prostředků v databázi úloh během období zpomalení pomocí webu Azure Portal nebo sys.dm_db_resource_stats zobrazení dynamické správy. 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 modelu DTU nebo v modelu virtuálních jader), dokud se výkon databáze úloh dostatečně nezlepší.

Důležité

Neupravujte existující objekty ani nevytvádřujte 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 pracovní jednotka, která se spouští 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 několik cílových skupin, pro které se má skript T-SQL spustit, a přihlašovací údaje, které agent úloh potřebuje k připojení 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 umožňují 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, všechny databáze v elastickém fondu s přidanou flexibilitou pro 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 pro databáze v různých předplatných. Servery a fondy se dynamicky zjišťují za běhu, takže se úlohy spouští pro všechny databáze, které existují v cílové skupině v době spuštění.

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

Koncepční diagram agenta elastických úloh, který používá přihlašovací údaje databáze jako ověřování k cíli

Cílová skupina

Cílová skupina definuje sadu databází, pro které se provede určitý krok úlohy. Cílová skupina může obsahovat libovolný počet a kombinaci následujících položek:

  • Logický SQL server – pokud je zadaný server, všechny databáze, které existují na serveru v době provádění úlohy, jsou součástí skupiny. Přihlašovací master údaje databáze musí být poskytnuty, aby se skupina před spuštěním úlohy provedla výčet a aktualizace. Další informace o logických serverech najdete v tématu Co je server ve službě Azure SQL Database a Azure Synapse Analytics?
  • Elastický fond – pokud je zadaný elastický fond, součástí skupiny jsou všechny databáze, které jsou v elastickém fondu v době spuštění úlohy. Co se týče serveru, musí být zadané přihlašovací údaje databáze, master aby bylo možné skupinu aktualizovat před spuštěním úlohy.
  • Izolovaná databáze – zadejte jednu nebo několik samostatných databází, které mají být součástí skupiny.

Tip

V okamžiku spuštění úlohy dynamický výčet znovu vyhodnotí sadu databází v cílových skupinách, které zahrnují servery nebo fondy. 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é vyhodnocení seznamu databází za běhu je zejména užitečné pro scénáře, kdy se členství ve fondu nebo na serveru často mění.

Fondy a izolované databáze je možné zahrnout do skupiny nebo je z ní vyloučit. Díky tomu můžete vytvořit cílovou skupinu s jakoukoli 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 obsahovat databáze v několika předplatných a v několika oblastech. Spouštění napříč oblastmi mají vyšší latenci než spouštění ve stejné oblasti.

Následující příklady ukazují, jak se při spuštění úlohy dynamicky zjišťují různé definice cílových skupin kvůli určení, které databáze úloha spustí:

Diagram příkladů cílové skupiny

  • Příklad 1 ukazuje cílovou skupinu, která se skládá ze seznamu jednotlivých databází. Když se spustí krok úlohy s použitím této cílové skupiny, akce kroku úlohy se provede ve všech těchto databázích.
  • Příklad 2 ukazuje cílovou skupinu, která obsahuje server jako cíl. Když se spustí krok úlohy s použitím této cílové skupiny, automaticky se zjistí server a určí se seznam databází, které se aktuálně na serveru nacházejí. Akce kroku úlohy se provede ve všech těchto databázích.
  • 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 ve vyloučené databázi neprovede.
  • Příklad 4 ukazuje cílovou skupinu, která jako cíl obsahuje elastický fond. Podobně jako v příkladu 2 se fond automaticky zjistí za běhu úlohy a určí se seznam databází ve fondu.

Diagram příkladů pokročilých scénářů s cílovou skupinou zahrnuje a vylučuje pravidla

  • 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í.

Poznámka:

Samotná databáze úloh může být cílem úlohy. V tomto scénáři se s databází úloh zachází stejně jako s jakoukoli jinou cílovou databází. Uživatel úlohy musí být vytvořen a udělena dostatečná oprávnění v databázi úloh a přihlašovací údaje v oboru databáze pro uživatele úlohy musí existovat také v databázi úloh, stejně jako u jakékoli jiné cílové databáze.

Ověřování

Zvolte jednu metodu pro všechny cíle pro agenta elastických ú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 oborem databáze a jiný pro použití ověřování Microsoft Entra ID.

Agent elastických úloh se může připojit k serverům nebo 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 (dříve Azure Active Directory) 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. Díky podpoře Microsoft Entra ID se agent úloh bude moct připojit k cílovým databázím (databázím, serverům, elastickým fondům) a výstupním databázím pomocí rozhraní UMI.

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

Volitelně je možné povolit ověřování Microsoft Entra ID také na logickém serveru, který obsahuje databázi elastických úloh, pro přístup k této databázi prostřednictvím připojení Microsoft Entra ID. Samotný 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. Na agenta úloh se podporuje jenom jeden UMI. Jakmile je rozhraní UMI přiřazeno k agentovi úloh, bude tento agent úloh používat tuto identitu pouze pro připojení a spuštění úloh t-SQL v cílových databázích. Ověřování SQL nebude použito pro cílový server nebo databáze tohoto agenta úloh.

Název UMI musí začínat písmenem nebo číslem a délkou od 3 do 128. Může obsahovat - znaky a _ znaky.

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í rozhraní UMI jako identity logického serveru Azure SQL Database. Další informace najdete v tématu Použití Microsoft Entra (dříve Azure Active Directory) k ověřování na platformách 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 spuš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 přihlašovacích údajů v oboru databáze

Zatímco ověřování Microsoft Entra (dříve Azure Active Directory) je doporučenou možností, úlohy je možné nakonfigurovat tak, aby při spuštění 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, použijí se tyto přihlašovací údaje v oboru databáze k připojení k master databázi k vytvoření výčtu dostupných databází.

  • Přihlašovací údaje v oboru databáze musí být vytvořeny v databázi úloh.
  • 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 vytvořené v cílových databázích (LOGINa PASSWORD pro masteruser a jobuserv následujícím diagramu) by se měly shodovat s IDENTITY přihlašovacími údaji vytvořenými v databázi úloh.SECRET
  • Přihlašovací údaje je možné opakovaně používat napříč úlohami a 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 je navržený tak, aby pomohl pochopit nastavení správných přihlašovacích údajů úlohy a způsob připojení agenta elastických úloh pomocí přihlašovacích údajů databáze jako ověřování pro přihlášení/uživatele v cílových serverech/databázích.

Diagram přihlašovacích údajů elastických úloh a způsob připojení agenta elastických úloh pomocí přihlašovacích údajů databáze jako ověřování pro přihlášení/uživatele na cílových serverech/databázích

Poznámka:

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

Privátní koncové body elastické úlohy

Agent elastických úloh 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/výstupním serverům, aby se k nim agent úloh mohl stále 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/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/výstupních serverů agenta úloh, vytvoří microsoft privátní koncový bod spravovaný službou. Tento privátní koncový bod pak výhradně používá agent úlohy pro připojování a spouštění úloh nebo pro zápis výstupu úlohy do cílové/výstupní databáze.

Privátní koncové body elastické úlohy je možné 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 úlohy i cílové servery nebo databáze hostované v Azure (stejné nebo různé oblasti) i ve stejném typu cloudu (například ve veřejném cloudu nebo v cloudu pro státní správu).
  • Microsoft.Network Poskytovatel prostředků musí být zaregistrovaný pro předplatná hostitele agenta úloh i cílových/výstupních serverů.
  • Privátní koncové body elastické úlohy se vytvářejí na cílový/výstupní server. Před použitím agenta elastických úloh je nutné je schválit. Můžete to provést v podokně Sítě tohoto logického serveru nebo preferovaného klienta. Agent elastických úloh se pak bude moct 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 nebude používat 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. Jedním upozorněním je, že pokud databázi úloh přidáte jako člena cílové skupiny. Pak se chová jako běžný cíl, který byste podle potřeby museli nastavit pomocí privátního koncového bodu.

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áva istrátory můžou uživatelům poskytnout možnost monitorovat provádění úloh jejich přidáním do role jobs_reader v databázi úloh.

Název role Oprávnění ke schématu jobs Oprávnění ke schématu jobs_internal
jobs_reader VÝBĚR Nic

Upozornění

V databázi úloh byste neměli aktualizovat zobrazení interního katalogu, 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čená pouze pro dotazování 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 nebo členů, například jobs.sp_add_target_group_member.

Důležité

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 vytváření nebo úpravám ú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, což by uživateli se zlými úmysly umožnilo určit heslo přihlašovacích údajů nebo spustit škodlivé příkazy.

Monitorování elastických úloh

Od října 2023 má agent elastických úloh integraci s upozorněními azure pro oznámení o stavu úlohy, což zjednodušuje řešení pro monitorování stavu a historie provádění úloh.

Azure Portal má také nové a další funkce pro podporu elastických úloh a monitorování úloh. Na stránce Přehled agenta elastických úloh se zobrazí poslední 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ňovat prostřednictvím konfigurovatelné akce, jako je SMS nebo e-mail ze zařízení upozornění Azure. 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ýstupy kroků úloh pro každou cílovou databázi se podrobně zaznamenávají a výstup skriptu je možné zachytávat do určené tabulky. Můžete určit databázi, do které se budou ukládat všechna data vrácená z úlohy.

Historie úlohy

Zobrazte historii provádění elastických úloh v databázi úloh dotazováním tabulky jobs.job_executions. Úloha vyčištění systému vyprázdní historii spouštění starší než 45 dnů. Pokud chcete odebrat historii kratší než 45 dnů ručně, spusťte uloženou proceduru sp_purge_jobhistoryv 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.
  • Přihlašovací údaje by měly mít nejnižší úroveň oprávnění nezbytnou k provedení daného kroku úlohy. Další informace najdete v tématu Autorizace a oprávnění.
  • Při použití člena cílové skupiny serveru nebo fondu se důrazně doporučuje vytvořit samostatné přihlašovací údaje s právy k master databázi pro zobrazení a výpis databází, které se používají k rozšíření seznamů databází serverů nebo fondů 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é skupinydatabázích

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. Pro více souběžných cílových připojení pro provádění úloh upgradujte úroveň agenta úlohy 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 způsobí zpoždění fronty pro některé cílové databáze nebo servery. Pokud například spustíte úlohu s cílem 110 na úrovni JA100, 10 úloh počká, dokud se nedokončí ostatní.

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

Omezení dopadu úlohy na elastické fondy

Aby se zajistilo, že při spouštění úloh s databázemi v elastickém fondu Azure SQL Database nebudou prostředky přetížené, je možné nakonfigurovat úlohy tak, aby omezovaly počet databází, pro které může úloha běžet současně.

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í. Idempotentní znamená, že pokud je skript úspěšný 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ě se úloha automaticky pokusí znovu skript spustit tolikrát, kolikrát je uvedeno v předvolbách, a pak přestane. 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ásleduje hypotetický příklad:

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í

Toto jsou aktuální omezení služby elastických úloh. Aktivně pracujeme na odebrání co největšího počtu těchto omezení.

Problém Popis
Po převzetí služeb při selhání nebo přechodu do nové oblasti Azure je potřeba agenta elastických úloh znovu vytvořit a spustit v nové oblasti. Služba elastických úloh ukládá do databáze úloh všechny jeho agenty úloh a metadata úloh. Jakékoli převzetí služeb při selhání nebo přesun prostředků Azure do nové oblasti Azure přesune také databázovou databázi úloh, agenta úloh a metadata úloh do nové oblasti Azure. 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 v nové oblasti. Po spuštění agent elastických úloh obnoví spouštění úloh v nové oblasti podle dříve definovaného plánu úlohy.
Nadměrné protokoly auditu 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, ve kterém je databáze úloh povolená, může databáze úloh vygenerovat velký počet protokolů auditu. To lze zmírnit filtrováním těchto protokolů auditu pomocí Set-AzSqlServerAudit příkazu s predikátem výrazu.

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 "database_principal_name <> '##MS_JobAccount##'"

Tento příkaz vyfiltruje agenta úloh pouze pro úlohy protokolů auditu databáze, nikoli agenta úloh do protokolů auditu cílových databází.
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. Bezserverové databáze cílené elastickými úlohami podporují automatické pozastavení a budou obnoveny připojeními úloh.
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 by se nejprve měla vyhodit databáze úloh.

Další krok