Vytváření, konfigurace a Správa elastických úlohCreate, configure, and manage elastic jobs

platí pro:  Ano Azure SQL DatabaseAPPLIES TO: yesAzure SQL Database

V tomto článku se dozvíte, jak vytvářet, konfigurovat a spravovat elastické úlohy.In this article, you will learn how to create, configure, and manage elastic jobs.

Pokud jste elastické úlohy nepoužívali, Přečtěte si další informace o konceptech automatizace úloh v Azure SQL Database.If you have not used Elastic jobs, learn more about the job automation concepts in Azure SQL Database.

Vytvoření a konfigurace agentaCreate and configure the agent

  1. Vytvořte nebo určete prázdnou databázi SQL S0 nebo vyšší.Create or identify an empty S0 or higher SQL database. Tato databáze bude použita jako databáze úlohy během vytváření agenta elastické úlohy.This database will be used as the Job database during Elastic Job agent creation.

  2. Vytvořte agenta elastické úlohy na portálu nebo pomocí PowerShellu.Create an Elastic Job agent in the portal or with PowerShell.

    Vytváří se agent elastické úlohy.

Vytváření, spouštění a správa úlohCreate, run, and manage jobs

  1. Vytvořte přihlašovací údaje pro spuštění úlohy v databázi úloh pomocí PowerShellu nebo T-SQL.Create a credential for job execution in the Job database using PowerShell or T-SQL.

  2. Definujte cílovou skupinu (databáze, u kterých chcete úlohu spustit) pomocí PowerShellu nebo T-SQL.Define the target group (the databases you want to run the job against) using PowerShell or T-SQL.

  3. V každé databázi, ve které se bude úloha spouštět, vytvořte přihlašovací údaje agenta úloh (do každé databáze ve skupině přidejte příslušného uživatele nebo roli).Create a job agent credential in each database the job will run (add the user (or role) to each database in the group). Příklad najdete v kurzu pro PowerShell.For an example, see the PowerShell tutorial.

  4. Vytvořte úlohu pomocí PowerShellu nebo T-SQL.Create a job using PowerShell or T-SQL.

  5. Pomocí PowerShellu nebo T-SQL přidejte kroky úlohy.Add job steps using PowerShell or T-SQL.

  6. Spusťte úlohu pomocí PowerShellu nebo T-SQL.Run a job using PowerShell or T-SQL.

  7. Monitorujte stav spuštění úlohy pomocí portálu, PowerShellu nebo T-SQL.Monitor job execution status using the portal, PowerShell or T-SQL.

    Portál

Přihlašovací údaje pro spouštění úlohCredentials for running jobs

Úlohy se při spuštění připojují k databázím určeným cílovou skupinou pomocí přihlašovacích údajů v oboru databáze.Jobs use database scoped credentials to connect to the databases specified by the target group upon execution. Pokud cílová skupina obsahuje servery nebo fondy, použijí se tyto přihlašovací údaje v oboru databáze k připojení k hlavní databázi a výčtu dostupných databází.If a target group contains servers or pools, these database scoped credentials are used to connect to the master database to enumerate the available databases.

Nastavení správných přihlašovacích údajů pro spuštění úlohy může být trochu matoucí, proto mějte na paměti následující body:Setting up the proper credentials to run a job can be a little confusing, so keep the following points in mind:

  • V databázi úlohse musí vytvořit přihlašovací údaje v oboru databáze.The database scoped credentials must be created in the Job database.
  • Všechny cílové databáze musí mít přihlašovací údaje s dostatečným oprávněním , aby se úloha úspěšně dokončila ( jobuser v diagramu níže).All target databases must have a login with sufficient permissions for the job to complete successfully (jobuser in the diagram below).
  • Přihlašovací údaje je možné opakovaně používat napříč úlohami a hesla přihlašovacích údajů jsou šifrovaná a zabezpečená uživatelům, kteří mají k objektům úlohy přístup jen pro čtení.Credentials can be reused across jobs, and the credential passwords are encrypted and secured from users who have read-only access to job objects.

Následující obrázek by vám měl pomoct porozumět přihlašovacím údajům úloh a správně je nastavit.The following image is designed to assist in understanding and setting up the proper job credentials. Nezapomeňte vytvořit příslušného uživatele v každé databázi (ve všech cílových uživatelských databázích), ve které se má úloha spouštět.Remember to create the user in every database (all target user dbs) the job needs to run.

Přihlašovací údaje k elastickým úlohám

Osvědčené postupy zabezpečeníSecurity best practices

Tady je několik osvědčených postupů, které byste při práci s elastickými úlohami měli brát v úvahu:A few best practice considerations for working with Elastic Jobs:

  • Omezte možnost používat rozhraní API na důvěryhodné osoby.Limit usage of the APIs to trusted individuals.
  • Přihlašovací údaje by měly mít nejnižší úroveň oprávnění nezbytnou k provedení daného kroku úlohy.Credentials should have the least privileges necessary to perform the job step. Další informace najdete v tématu autorizace a oprávnění.For more information, see Authorization and Permissions.
  • Při použití členu cílové skupiny serveru nebo fondu je důrazně navrženo vytvoření samostatného pověření s právy k hlavní databázi k zobrazení nebo zobrazení seznamu databází, které se používají k rozšíření seznamů databáze serverů a/nebo fondů před provedením úlohy.When using a server and/or pool target group member, it is highly suggested to create a separate credential with rights on the master database to view/list databases that is used to expand the database lists of the server(s) and/or pool(s) prior to the job execution.

Výkon, kapacita a omezení agentaAgent performance, capacity, and limitations

Elastické úlohy při čekání na dokončení dlouhotrvajících úloh využívají minimum výpočetních prostředků.Elastic Jobs use minimal compute resources while waiting for long-running jobs to complete.

V závislosti na velikosti cílové skupiny databází a požadované době spuštění úlohy (počet souběžných pracovních procesů) vyžaduje agent pro databázi úloh různé úrovně výpočetních prostředků a výkonu (čím je více cílů a úloh, tím je potřeba více výpočetních prostředků).Depending on the size of the target group of databases and the desired execution time for a job (number of concurrent workers), the agent requires different amounts of compute and performance of the Job database (the more targets and the higher number of jobs, the higher the amount of compute required).

V současné době je verze Preview omezená na 100 souběžných úloh.Currently, the preview is limited to 100 concurrent jobs.

Zabránění snižování výkonu cílových databází úlohamiPrevent jobs from reducing target database performance

Pokud chcete zajistit, aby při spouštění úloh pro databáze v elastickém fondu SQL nedocházelo k přetížení prostředků, můžete pro úlohy nakonfigurovat omezení počtu databází, pro které se můžou najednou spouštět.To ensure resources aren't overburdened when running jobs against databases in a SQL elastic pool, jobs can be configured to limit the number of databases a job can run against at the same time.

Nastavte počet souběžných databází, na kterých úloha běží sp_add_jobstep , nastavením parametru uložené procedury @max_parallelism v T-SQL nebo Add-AzSqlElasticJobStep -MaxParallelism v PowerShellu.Set the number of concurrent databases a job runs on by setting the sp_add_jobstep stored procedure's @max_parallelism parameter in T-SQL, or Add-AzSqlElasticJobStep -MaxParallelism in PowerShell.

Osvědčené postupy pro vytváření úlohBest practices for creating jobs

Idempotentní skriptyIdempotent scripts

Skripty T-SQL úlohy musí být idempotentní.A job's T-SQL scripts must be idempotent. Idempotentní znamená, že pokud se skript úspěšně provedete a spustí se znovu, výsledek bude stejný.Idempotent means that if the script succeeds, and it is run again, the same result occurs. Skript může selhat kvůli přechodným problémům se sítí.A script may fail due to transient network issues. 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.In that case, the job will automatically retry running the script a preset number of times before desisting. Výsledek idempotentního skriptu je stejný, i když se úspěšně spustí dvakrát (nebo vícekrát).An idempotent script has the same result even if its been successfully run twice (or more).

Jednoduchou taktikou je před vytvořením objektu otestovat, jestli už neexistuje.A simple tactic is to test for the existence of an object before creating it.

IF NOT EXISTS (some_object)
    -- Create the object
    -- 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.Similarly, a script must be able to execute successfully by logically testing for and countering any conditions it finds.

Další krokyNext steps