Skapa, konfigurera och hantera elastiska jobb (förhandsversion)

Gäller för:Azure SQL Database

Den här artikeln innehåller de steg som krävs för att skapa, konfigurera och hantera elastiska jobb för Azure SQL Database. Du kan utföra många av dessa steg i Azure-portalen och med hjälp av T-SQL, PowerShell och REST-API:et. Elastiska jobb aktiverar körning av ett eller flera Transact-SQL-skript (T-SQL) parallellt över flera databaser. Mer information finns i begreppen för jobbautomatisering i Azure SQL Database eller läs mer om elastiska jobb i Azure SQL Database.

Kommentar

Elastiska jobb finns i förhandsversion. Funktioner som för närvarande är i förhandsversion är tillgängliga under kompletterande användningsvillkor, granska för juridiska villkor som gäller för Azure-funktioner som är i förhandsversion. Azure SQL Database innehåller förhandsversioner som ger dig möjlighet att utvärdera och dela feedback med produktgruppen om funktioner innan de blir allmänt tillgängliga (GA).

Skapa och konfigurera den elastiska jobbagenten

  1. Skapa eller identifiera en tom S1 eller högre Azure SQL Database med hjälp av DTU-köpmodellen. Den här databasen ska finnas på samma server som jobbagenten. Den här databasen används som jobbdatabas när den elastiska jobbagenten skapas. Du kan skapa en enkel databas via Azure-portalen, Azure CLI, Azure CLI (sql up) eller PowerShell.

  2. Skapa en elastisk jobbagent i Azure-portalen eller med PowerShell.

    Anvisningarna för att skapa en elastisk jobbagent i Azure-portalen är följande:

    1. Sök efter elastiska jobbagenter i Azure-portalen. Välj Skapa för att börja etablera en ny elastisk jobbagentresurs. Du kan också följa den här länken för att skapa en elastisk jobbagent i Azure-portalen.
    2. Ange ett namn på den elastiska jobbagenten.
    3. Välj en prenumeration och resursgrupp för agenten. Om det behövs skapar du en ny resursgrupp. Ett elastiskt jobb kan rikta in sig på databaser i andra resursgrupper, prenumerationer och även andra Azure-regioner.
    4. Välj den logiska Azure SQL Database-servern som elastisk jobbagentserver.
    5. Välj en jobbdatabas på den logiska servern som ska vara den elastiska jobbagentdatabasen. Viss validering säkerställer att databasen är lämplig.
    6. Under Tjänstnivå väljer du JA 100.
    7. Välj Nästa: Identitet.
    8. Det finns två autentiseringsmetoder för jobbagenten till målservrar/databaser, Microsoft Entra-autentisering med en användartilldelad hanterad identitet (UMI) eller autentiseringsuppgifter med databasomfattning.
      1. Skapa UMI utanför etableringsprocessen för elastiska jobbagenter eller använd en befintlig UMI. Välj Lägg till användartilldelad hanterad identitet. Välj UMI. Markera Lägga till.
      2. Information om hur du använder autentiseringsuppgifter med databasomfattning finns i stegen senare i den här självstudien.
    9. Välj Nästa: Taggar.
    10. Överväg att använda Azure-taggar. Till exempel taggen "Ägare" eller "CreatedBy" för att identifiera vem som skapade resursen och taggen Miljö för att identifiera om den här resursen finns i Produktion, Utveckling osv. Mer information finns i Utveckla din namngivnings- och taggningsstrategi för Azure-resurser.
    11. Välj Granska + skapa.
    12. Verifiera dina nya val av elastisk jobbagent på sidan Granska + skapa och välj sedan Skapa.
    13. Ytterligare steg krävs för att autentisera till målservrar/databaser. Fortsätt stegen i följande avsnitt i den här självstudieartikeln.

Skapa jobbagentautentisering

Den elastiska jobbagenten måste kunna autentisera till varje målserver eller databas. I det här avsnittet går vi igenom de steg som krävs för att den elastiska jobbagenten ska kunna autentisera till servrar/databaser i målgrupper.

Det finns två alternativ för autentisering av en elastisk jobbagent till mål:

Använda Microsoft Entra-autentisering med en användartilldelad hanterad identitet (UMI)

Använd Microsoft Entra-autentisering (tidigare Azure Active Directory) med en användartilldelad hanterad identitet (UMI). Det här är den rekommenderade autentiseringsmetoden.

  1. Aktivera Microsoft Entra-autentisering (tidigare Azure Active Directory) på alla logiska jobbmålservrar/databaser och på den logiska servern för jobbutdata.
  2. Skapa en användartilldelad hanterad identitet (UMI) eller använd en redan befintlig UMI.
  3. Tilldela UMI till den skapade elastiska jobbagenten.
    • Vi rekommenderar att du tilldelar en UMI när du skapar den elastiska jobbagenten, se stegen i Skapa och konfigurera den elastiska jobbagenten. När du skapar en jobbagent i Azure-portalen går du till fliken Identitet och tilldelar till den elastiska jobbagenten.
    • Om du vill uppdatera en befintlig elastisk jobbagent så att den använder en UMI går du till sidan i Azure-portalen för den elastiska jobbagenten och går till Identitet under menyn Säkerhet på resursmenyn. Välj och tilldela UMI till den elastiska jobbagenten.
    • När du skapar eller uppdaterar en elastisk jobbagent med New-AzSqlElasticJobAgentSet-AzSqlElasticJobAgent eller PowerShell-cmdletar använder du parametrarna: -IdentityType UserAssigned -IdentityID <identity resource path>. Till exempel:
      $parameters = @{
          Name = '<job agent name>'
          ResourceGroupName = '<Resource_Group_Name>'
          IdentityType = 'UserAssigned'
          IdentityID = '/subscriptions/fa58cf66-caaf-4ba9-875d-f1234/resourceGroups/<resource group name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<UMI name here>'
      }
      Set-AzSqlElasticJobAgent @parameters
      
    • REST-API:et kan också användas för att skapa eller uppdatera den elastiska jobbagenten.
  4. Skapa en målgrupp och lägg till mål för jobben. Definiera målgruppen och målen (de databaser som du vill köra jobbet mot) med hjälp av PowerShell eller definiera målgruppen och målen med hjälp av T-SQL.
  5. I var och en av målservrarna/databaserna skapar du en innesluten användare som mappas till UMI-autentiseringsuppgiften eller databasomfattningen med hjälp av T-SQL eller PowerShell:
    1. Skapa jobbautentiseringen med T-SQL.
    2. Skapa jobbautentiseringen med PowerShell.
  6. I utdatadatabasen skapar och tilldelar du behörigheter till UMI-jobbanvändaren. Anslut till utdatadatabasen och kör följande exempelskript för en användare med namnet jobuserUMI:
    CREATE USER [jobuserUMI] FROM EXTERNAL PROVIDER; 
    GO 
    
  7. Om utdataparametrar anges i anropet sp_add_jobstep i the @output_table_name argumentmåste jobbagentens UMI- eller databasomfattningsautentiseringsuppgifter beviljas behörighet till CREATE TABLE och INSERT-data i utdatatabellen.
    GRANT CREATE TABLE TO [job_user];
    GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[output_table_name] TO job_user;
    
  8. I var och en av målservrarna/databaserna ger du databasanvändaren behörighet att köra jobbskript. Dessa behörigheter varierar beroende på kraven för T-SQL-frågan.

Använda databasomfångsbegränsade autentiseringsuppgifter

Du kan använda en databasomfattande autentiseringsuppgift i jobbdatabasen och i varje målserver/databas för autentisering. Tidigare var databasomfattande autentiseringsuppgifter det enda alternativet som var tillgängligt med elastiska jobb.

Kommentar

Om en UMI tilldelas till jobbagenten används inte SQL-autentisering för att ansluta till dess mål. Jobbagenten använder endast Microsoft Entra-autentisering med UMI för att ansluta till alla sina måldatabaser.

  1. Skapa en databasomfattande autentiseringsuppgift i jobbdatabasen.
    1. Använda PowerShell för att skapa en databasomfattande autentiseringsuppgift
    2. Använd T-SQL för att skapa en databasomfattande autentiseringsuppgift.
  2. Definiera målgruppen (de databaser som du vill köra jobbet mot) med hjälp av PowerShell eller definiera mål med hjälp av T-SQL.
  3. Skapa en inloggning/användare för jobbagenten i varje måldatabas där jobbet ska köras. Inloggningen/användaren på varje målserver/databas måste ha samma namn som identiteten för den databasomfattande autentiseringsuppgiften för jobbanvändaren och samma lösenord som jobbanvändarens databasomfattande autentiseringsuppgifter.
    1. Använd PowerShell för att lägga till autentiseringsuppgifterna och användaren i varje måldatabas.
    2. Mer information om hur du lägger till användare finns i Auktorisera server- och databasåtkomst med hjälp av inloggningar och användarkonton.
  4. Skapa och tilldela behörigheter till jobbanvändaren i utdatadatabasen.
    1. Anslut till databasen för master den logiska server som är värd för utdatadatabasen. Om det inte redan finns någon skapar du sql-autentiserad inloggning med samma namn som identiteten för jobbanvändarens databasomfång och samma lösenord som jobbanvändarens databasomfattning.
      CREATE LOGIN [job_user] WITH PASSWORD '<same_password_as_database-scoped_credential>'
      GO 
      
    2. Anslut till utdatadatabasen och kör följande exempelskript för en användare med namnet job_user:
      CREATE USER [job_user] FROM LOGIN [job_user]; 
      GO 
      
    3. Om utdataparametrar anges i anropet sp_add_jobstepi argumentet @output_table_name måste jobbagentens UMI- eller databasomfattande autentiseringsuppgifter beviljas behörigheter till CREATE TABLE och INSERT-data i utdatatabellen.
      GRANT CREATE TABLE TO [job_user];
      GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[output_table_name] TO job_user;
      
  5. I var och en av målservrarna/databaserna ger du databasanvändaren behörighet att köra jobbskript. Dessa behörigheter varierar beroende på kraven för T-SQL-frågan.

Skapa, kör och hantera jobb

  1. Använd PowerShell för att skapa ett jobb eller använda T-SQL för att skapa ett jobb.
  2. Lägg till steg i varje elastiskt jobb. En målgrupp måste väljas för varje jobbsteg. Använd PowerShell för att lägga till jobbsteg eller använda T-SQL för att lägga till jobbsteg.
  3. Använd PowerShell för att köra ett jobb eller använda T-SQL för att köra ett jobb.
  4. Övervaka jobbkörningsstatus med hjälp av Azure-portalen, övervaka jobb med PowerShell eller övervaka jobb med T-SQL.

Konfigurera en privat slutpunkt för elastiska Azure SQL-jobb

Varje målserver kan nås via en tjänsthanterad privat slutpunkt, skapad och hanterad av Microsoft och exklusivt för användning med elastiska jobb. När du skapar en privat slutpunkt för elastiska jobb upprättas en privat länk mellan det elastiska jobbet och målservern. När den har konfigurerats sker all kommunikation mellan den elastiska jobbagenten och målservern via den privata slutpunkten.

Konfigurationen är enkel. Du måste skapa en privat slutpunkt för varje önskad målserver och jobbutdataservern för att aktivera den här kommunikationen.

  1. I navigeringsmenyn Elastisk jobbagent går du till Säkerhet och väljer Privata slutpunkter.
  2. Välj Lägg till en server och skapa en privat slutpunkt.
  3. Fönstret Skapa privat slutpunkt öppnas.
    1. Du kan välja en målserver från valfri prenumeration, var som helst i Azure.
    2. Välj en logisk Azure SQL Database-målserver i den prenumerationen.
    3. Ange ett privat slutpunktsnamn.
  4. Välj Skapa privat slutpunkt. Distributionen tar en stund. Snart visas Anslut ionsstatussidan Privata slutpunkter väntar.
  5. I Azure-portalen navigerar du till den logiska azure SQL Database-målservern.
  6. Som administratör för den logiska Azure SQL Database-målservern går du till SQL Server-navigeringsmenyn under Säkerhet och väljer Nätverk.
  7. Välj Privat åtkomst.
  8. Godkänn den väntande privata slutpunktsbegäran.
  9. Statusen Anslut ionsidan Privata slutpunkter visar Godkänd. Nu går all kommunikation mellan jobbagenten och eventuella databaser eller elastiska pooler i den logiska Azure SQL Database-målservern via den tjänsthanterade privata slutpunkten.
  10. Som administratör för den logiska Azure SQL Database-målservern går du till SQL Server-navigeringsmenyn under Säkerhet och väljer Nätverk. Det är inte nödvändigt att aktivera offentlig åtkomst för elastiska jobb.

Konfigurera jobbagentaviseringar med Azure Monitor

Konfigurera Azure Monitor-aviseringar för den elastiska jobbagentresursen så att de meddelas om jobbets körningsstatus. Du kan till exempel få ett meddelande om att ett jobb har misslyckats/lyckats via användarkonfigurerade åtgärdsgrupper.

Du kan skapa aviseringar för elastiska jobbagenter med hjälp av Azure-portalen, PowerShell eller REST-API:et.

Skapa jobbagentaviseringar med hjälp av Azure-portalen

Skapa Azure Monitor-aviseringsregler med Azure-portalen, Azure CLI, PowerShell och REST API. Aviseringsregler för elastiska jobb fungerar på samma sätt som med andra aviseringsregler, till exempel för Azure SQL Database.

Så här fortsätter du med Azure-portalen:

  1. På resursmenyn i Azure-portalen för agenten elastiskt jobb går du till menyn Övervakning och väljer Aviseringar.
  2. Under Konfigurera aviseringsregler i den här resursprompten väljer du Skapa aviseringsregel.
  3. På sidan Skapa en aviseringsregel öppnas sidan Välj en signal. Välj de elastiska jobbmåtten Elastiska jobbkörningar misslyckades, Elastiska jobbkörningar lyckades eller Elastiska jobbkörningar överskriden tidsgräns. Screenshot from the Azure portal showing the Create an alert rule page.
  4. Under Aviseringslogik lämnar du tröskelvärdet, sammansättningstypen, operatorn och enheten som standard.
  5. Ange Tröskelvärde till 0. Låt andra inställningar vara kvar som standard.
  6. Granska kostnadsuppskattningen i kostnadsförhandsversionen.
  7. Välj Nästa: Åtgärder.
  8. Välj Skapa åtgärdsgrupp eller välj en befintlig åtgärdsgrupp.
    1. Skapa Åtgärdsgrupper för Azure Monitor-aviseringar i Azure-portalen för att ange meddelandeinställningar, till exempel för e-postadministratörer eller utvecklare av felet.
    2. Testa åtgärdsgruppen Avisering.
  9. Välj Nästa: Information.
  10. Ange en prenumeration och resursgrupp som projektinformation.
  11. Ange information om aviseringsregeln för aviseringskommunikationen. Ange ett namn på aviseringsregeln.
  12. Välj Taggar och ange metadata, till exempel CreateBy eller Miljö för den här aviseringen.
  13. Välj Granska + skapa. Välj Skapa. Det kan ta några minuter innan aviseringsregeln visas i Azure-portalen.
  14. Du kan också skapa Azure Monitor-aviseringsbearbetningsregler med hjälp av Azure-portalen, Azure CLI eller PowerShell. Använd regler för aviseringsbearbetning för att avgöra vad som händer när en avisering utlöses, till exempel genom att ignorera meddelanden eller tillämpa specifika åtgärder på vissa typer av aviseringar.

Skala jobbagenten

Som standard skapas jobbagenter på JA100, vilket tillåter upp till 100 elastiska jobbkörningar samtidigt. Att initiera en ändring på tjänstnivå är en asynkron åtgärd och den nya tjänstnivån kommer att göras tillgänglig efter en kort etableringsfördröjning.

Om du behöver fler än 100 samtidiga körningar av elastiska jobbagenter är högre tjänstnivåer tillgängliga, se Samtidiga kapacitetsnivåer. Du kan för närvarande ändra tjänstnivån för en jobbagent via Azure-portalen, PowerShell eller REST-API:et.

Om du överskrider tjänstnivån med samtidiga jobb uppstår köfördröjningar innan jobben börjar över servicenivåns gräns för samtidiga jobb.

Skala den elastiska jobbagenten med hjälp av Azure-portalen

  1. Gå till sidan Elastic Job-agent i Azure-portalen.
  2. Välj Prisnivå eller välj Skala upp/ned på snabbmenyn.
  3. Välj en ny tjänstnivå i listrutan Tjänstnivå .
  4. Granska kostnadskortet.
  5. Välj Uppdatera.

Skala den elastiska jobbagenten med hjälp av PowerShell

Den valfria -ServiceObjective parametern för kan användas för Set-AzSqlElasticJobAgent att ange ett nytt tjänstmål. Till exempel:

$parameters = @{
    Name = '<job agent name>'
    ResourceGroupName = '<Resource_Group_Name>'
    ServiceObjective = 'JA200'
}
Set-AzSqlElasticJobAgent @parameters

Skala den elastiska jobbagenten med hjälp av REST API

Du kan använda REST-API:et för jobbagenten för att skala en jobbagent. Till exempel:

{ 
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/group1/providers/Microsoft.Sql/servers/server1/jobAgents/agent1", 
"name": "agent1", 
"type": "Microsoft.Sql/servers/jobAgents", 
"location": "southeastasia", 
"sku": {
"name": "JA100  ", 
"capacity": 100 
}, 
"properties": {  
"databaseId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/group1/providers/Microsoft.Sql/servers/server1/databases/db1"
}  
}