Creare, configurare e gestire processi elastici

Si applica a: Database SQL di Azure

Questo articolo illustra i passaggi necessari per creare, configurare e gestire processi elastici per il database SQL di Azure. È possibile eseguire molti di questi passaggi nel portale di Azure e usando T-SQL, PowerShell e l'API REST. I processi elastici permettono l'esecuzione di uno o più script di Transact-SQL (T-SQL) in parallelo tra molti database. Per altri dettagli, vedere ulteriori informazioni sui concetti di automazione dei processi nel database SQL di Azure o leggere ulteriori informazioni sui processi elastici nel database SQL di Azure.

Creare e configurare l’operatore dei processi elastici

  1. Creare o identificare un database SQL di Azure S1 o superiore vuoto usando il modello di acquisto DTU. Questo database dovrebbe trovarsi nello stesso server dell’operatore del processo. Questo database è usato come database di processo durante la creazione dell'operatore del processo elastico. È possibile creare un database singolo attraverso il portale di Azure, l'interfaccia della riga di comando di Azure (sql up) o PowerShell.

  2. Creare un operatore del processo elastico nel portale di Azure o con PowerShell.

    Le istruzioni per creare un operatore del processo elastico nel portale di Azure sono le seguenti:

    1. Nel portale di Azure, cercare Operatori del processo elastico. Selezionare Crea per iniziare il provisioning di una nuova risorsa dell’operatore del processo elastico. In alternativa, seguire questo collegamento per creare un operatore del processo elastico nel portale di Azure.
    2. Fornire un Nome dell'operatore del processo elastico.
    3. Scegliere la sottoscrizione e il Gruppo di risorse per l’operatore. Se necessario, creare un nuovo gruppo di risorse. Un processo elastico può rimandare a database in altri gruppi di risorse, sottoscrizioni, anche in altre aree di Azure.
    4. Scegliere il server logico del database SQL di Azure come server dell’operatore del processo elastico.
    5. Scegliere un database del processo nel server logico come database dell'operatore del processo elastico. Alcune convalide assicurano l’idoneità del database.
    6. In Livello di servizio, scegliere JA 100.
    7. Selezionare Avanti: Identità.
    8. Esistono due metodi di autenticazione per l'operatore del processo per il/i server/database di destinazione, l'autenticazione di Microsoft Entra con un'identità gestita assegnata dall'utente (UMI) o credenziali nell’ambito del database.
      1. Creare l'UMI all'esterno del processo di provisioning dell'operatore del processo elastico o usare un'UMI esistente. Selezionare Aggiungere identità gestita assegnata dall'utente. Selezionare l'UMI. Selezionare Aggiungi.
      2. Per usare le credenziali con nell’ambito del database, vedere i passaggi più avanti in questa esercitazione.
    9. Al termine, selezionare Avanti: Tag.
    10. Prendere in considerazione l'uso dei tag di Azure. Ad esempio, il tag "Proprietario" o "CreatedBy" per identificare chi ha creato la risorsa e il tag "Ambiente" per stabilire se questa risorsa si trova in Produzione, Sviluppo e così via. Per ulteriori informazioni, vedere Sviluppare una strategia di denominazione e assegnazione di tag per le risorse di Azure.
    11. Selezionare Rivedi e crea.
    12. Convalidare le selezioni del nuovo operatore del processo elastico nella pagina Rivedi e crea, quindi selezionare Crea.
    13. Sono necessari altri passaggi per eseguire l'autenticazione nel/nei server/database di destinazione. Continuare i passaggi nelle sezioni seguenti di questo articolo sull'esercitazione.

Creare l'autenticazione dell'operatore del processo

L'operatore del processo elastico deve essere in grado di autenticarsi in ogni server o database di destinazione. In questa sezione vengono illustrati i passaggi necessari per l'operatore del processo elastico per autenticarsi nel/nei server/database nei gruppi di destinazione.

Esistono due opzioni per l'autenticazione di un operatore del processo elastico nelle destinazioni:

Usare l'autenticazione di Microsoft Entra con un'identità gestita assegnata dall'utente (UMI)

Usare l'autenticazione di Microsoft Entra (in precedenza Azure Active Directory) con un'identità gestita assegnata dall'utente (UMI). Questo è il metodo di autenticazione consigliato.

  1. Abilitare l'autenticazione di Microsoft Entra (in precedenza Azure Active Directory) per tutti i server logici/database di destinazione del processo e nel server logico di output del processo.
  2. Creare un'identità gestita assegnata dall'utente (UMI) o usare un'UMI già esistente.
  3. Assegnare l'UMI all'operatore del processo elastico creato.
    • È consigliabile assegnare un’UMI durante la creazione dell'operatore del processo elastico, seguendo la procedura descritta in Creare e configurare l'operatore del processo elastico. Durante la creazione di un operatore del processo nel portale di Azure, nella tab Identità assegnare all'operatore del processo elastico.
    • Per aggiornare un operatore del processo elastico esistente per usare una UMI, nella pagina del portale di Azure per l'operatore del processo elastico passare a Identità nel menu Sicurezza del menu delle risorse. Selezionare l'UMI e assegnarla all'operatore del processo elastico.
    • Durante la creazione o l'aggiornamento di un operatore del processo elastico con i cmdlet New-AzSqlElasticJobAgent o PowerShell Set-AzSqlElasticJobAgent, usare i parametri: -IdentityType UserAssigned -IdentityID <identity resource path>. Ad esempio:
      $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
      
    • L'API REST può essere usata anche per creare o aggiornare l'operatore del processo elastico.
  4. Creare un gruppo di destinazione e aggiungere destinazioni per i processi. Definire il gruppo di destinazione e le destinazioni (i database su cui si vuole eseguire il processo) con PowerShell o definire il gruppo di destinazione e le destinazioni con T-SQL.
  5. In ognuno dei server/database di destinazione, creare un utente indipendente mappato alla credenziale nell’ambito del database o nell'UMI con T-SQL o PowerShell:
    1. Creare l'autenticazione del processo con T-SQL.
    2. Creare l'autenticazione del processo con PowerShell.
  6. Nel database di output, creare e assegnare le autorizzazioni all'utente del processo UMI. Connettersi al database di output ed eseguire il seguente script di esempio per un utente denominato jobuserUMI:
    CREATE USER [jobuserUMI] FROM EXTERNAL PROVIDER; 
    GO 
    
  7. Se i parametri di output vengono specificati nella chiamata sp_add_jobstep in the @output_table_name argument, alle credenziali nell'ambito del database o UMI dell'operatore del processo devono essere concesse le autorizzazioni per creare una tabella (CREATE TABLE) e inserire i dati (INSERT) nella tabella di output.
    GRANT CREATE TABLE TO [job_user];
    GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[output_table_name] TO job_user;
    
  8. In ognuno dei server/database di destinazione, concedere all'utente del database le autorizzazioni necessarie per eseguire gli script del processo. Queste autorizzazioni variano in base ai requisiti della query T-SQL.

Usare le credenziali nell’ambito del database

È possibile usare credenziali nell'ambito del database nel database del processo e in ogni server/database di destinazione per l'autenticazione. In passato, le credenziali nell’ambito del database erano l'unica opzione disponibile con i processi elastici.

Nota

Se un'UMI viene assegnata all'agente di processo, l'autenticazione SQL non verrà usata per connettersi alle destinazioni. L'operatore del processo userà solo l'autenticazione di Microsoft Entra con l'UMI per connettersi a tutti i relativi database di destinazione.

  1. Creare credenziali nell'ambito del database nel database del processo.
    1. Usare PowerShell per creare credenziali nell'ambito del database
    2. Usare T-SQL per creare credenziali nell'ambito del database
  2. Definire il gruppo di destinazione (i database sui quali eseguire il processo) con PowerShell o definire le destinazioni con T-SQL.
  3. Creare un account di accesso/utente dell'operatore del processo in ogni database di destinazione in cui verrà eseguito il processo. L'account di accesso/utente in ogni server/database di destinazione deve essere denominato allo stesso modo dell'identità delle credenziali nell'ambito del database per l'utente del processo, nonché possedere la stessa password delle credenziali nell'ambito del database per l'utente del processo.
    1. Usare PowerShell per aggiungere credenziali e utente a ogni database di destinazione.
    2. Per ulteriori informazioni sull'aggiunta di utenti, vedere Autorizzare l'accesso al server e al database usando account di accesso e account utente.
  4. Nel database di output, creare e assegnare le autorizzazioni all'utente del processo.
    1. Connettersi al database master del server logico che ospita il database di output. Se non esiste già, creare l'account di accesso autenticato SQL con lo stesso nome dell'identità delle credenziali nell'ambito del database per l'utente del processo e la stessa password delle credenziali nell'ambito del database per l'utente del processo.
      CREATE LOGIN [job_user] WITH PASSWORD '<same_password_as_database-scoped_credential>'
      GO 
      
    2. Connettersi al database di output ed eseguire il seguente script di esempio per un utente denominato job_user:
      CREATE USER [job_user] FROM LOGIN [job_user]; 
      GO 
      
    3. Se i parametri di output vengono specificati nella chiamata sp_add_jobstep nell'argomento @output_table_name, alle credenziali nell'ambito del database o UMI dell'operatore del processo devono essere concesse le autorizzazioni per creare una tabella (CREATE TABLE) e inserire i dati (INSERT) nella tabella di output.
      GRANT CREATE TABLE TO [job_user];
      GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[output_table_name] TO job_user;
      
  5. In ognuno dei server/database di destinazione, concedere all'utente del database le autorizzazioni necessarie per eseguire gli script del processo. Queste autorizzazioni variano in base ai requisiti della query T-SQL.

Creare, eseguire e gestire i processi

  1. Usare PowerShell per creare un processo o usare T-SQL per creare un processo.
  2. Aggiungere passaggi a ogni processo elastico. È necessario scegliere un gruppo di destinazione per ogni passaggio del processo. Usare PowerShell per aggiungere i passaggi del processo o usare T-SQL per aggiungere i passaggi del processo.
  3. Usare PowerShell per eseguire un processo o usare T-SQL per eseguire un processo.
  4. Monitorare lo stato di esecuzione del processo usando il portale di Azure, monitorare i processi con PowerShell o monitorare i processi con T-SQL.

Configurare l'endpoint privato dei processi elastici di Azure SQL

È possibile raggiungere ogni server di destinazione tramite un endpoint privato gestito dal servizio, creato e gestito da Microsoft ed esclusivamente per l'uso con processi elastici. La creazione di un endpoint privato dei processi elastici consente di stabilire un collegamento privato tra il processo elastico e il server di destinazione. Dopo la configurazione, tutte le comunicazioni tra l'operatore del processo elastico e il server di destinazione verranno eseguite tramite l'endpoint privato.

La configurazione è semplice. Per abilitare questa comunicazione, è necessario creare un endpoint privato per ogni server di destinazione desiderato e per il server di output del processo.

  1. Nel menu di spostamento dell'operatore del processo elastico, in Sicurezza selezionare Endpoint privati.
  2. Selezionare Aggiungi un server e crea un endpoint privato.
  3. Si aprirà la finestra Crea un endpoint privato.
    1. È possibile selezionare un server di destinazione da qualsiasi Sottoscrizione, ovunque in Azure.
    2. In quella sottoscrizione, selezionare un server logico di destinazione del database SQL di Azure.
    3. Specificare un Nome dell'endpoint privato.
  4. Selezionare Creare un endpoint privato. La distribuzione richiederà qualche secondo. Subito dopo, lo Stato della connessione nella pagina Endpoint privati risulterà In sospeso.
  5. Nel portale di Azure, passare al server logico di destinazione del database SQL di Azure.
  6. In qualità di amministratore di quel server logico di destinazione del database SQL di Azure, nel menu di spostamento di SQL Server, in Sicurezza selezionare Rete.
  7. Selezionare Accesso privato.
  8. Approvare la richiesta in sospeso dell'endpoint privato.
  9. Lo Stato della connessione nella pagina Endpoint privati risulterà Approvato. A questo punto, qualsiasi comunicazione tra l'operatore del processo e qualsiasi database o pool elastico in quel server logico di destinazione del database SQL di Azure passerà attraverso l'endpoint privato gestito dal servizio.
  10. In qualità di amministratore di quel server logico di destinazione del database SQL di Azure, nel menu di spostamento di SQL Server, in Sicurezza selezionare Rete. Non è necessario abilitare l'Accesso pubblico ai fini dei processi elastici.

Configurare gli avvisi dell'operatore del processo con il Monitoraggio di Azure

Configurare gli avvisi del Monitoraggio di Azure nella risorsa dell'operatore del processo elastico per ricevere una notifica sullo stato di esecuzione del processo. Ad esempio, è possibile ricevere un avviso di errore/successo di un processo tramite gruppi di operazioni configurati dall'utente.

È possibile creare avvisi all'operatore del processo usando il portale di Azure, PowerShell o l'API REST.

Creare avvisi all'operatore del processo usando il portale di Azure

Creare regole di avviso del Monitoraggio di Azure con il portale di Azure, l'interfaccia della riga di comando di Azure, PowerShell e l'API REST. Le regole di avviso per i processi elastici funzionano in modo analogo ad altre regole di avviso, ad esempio per il database SQL di Azure.

Per procedere con il portale di Azure:

  1. Nel menu delle risorse del portale di Azure per l'operatore del processo elastico, aprire il menu Monitoraggio e selezionare Avvisi.
  2. Nella richiesta Configura regole di avviso per questa risorsa, selezionare Crea una regola di avviso.
  3. Nella pagina Crea una regola di avviso si aprirà la pagina Selezionare un segnale. Selezionare le metriche dei processi elastici Esecuzioni dei processi elastici non riuscite, Esecuzioni di processi elastici riuscite o Esecuzioni di processi elastici scadute. Screenshot dal portale di Azure che mostra la pagina Crea una regola di avviso.
  4. In Logica di avviso, lasciare Soglia, Tipo di aggregazione, Operatore e Unità sui valori predefiniti.
  5. Impostare il Valore soglia su 0. Lasciare le altre impostazioni sui valori predefiniti.
  6. Al termine, selezionare Avanti: Azioni.
  7. Selezionare Crea un gruppo di azioni o sceglierne uno esistente.
    1. Creare gruppi di azioni di avviso del Monitoraggio di Azure nel portale di Azure per configurare le impostazioni di notifica, ad esempio per gli amministratori di posta elettronica o gli sviluppatori dell'errore.
    2. Testare il gruppo di azioni di avviso.
  8. Selezionare Avanti: Dettagli.
  9. Specificare una Sottoscrizione e un Gruppo di risorse come Dettagli del progetto.
  10. Specificare i Dettagli della regola di avviso per la comunicazione degli avvisi. Specificare un Nome della regola di avviso.
  11. Selezionare Tag e specificare i metadati, ad esempio CreatedBy o Ambiente per questo avviso.
  12. Selezionare Rivedi e crea. Seleziona Crea. La visualizzazione della regola di avviso nel portale di Azure potrebbe richiedere alcuni minuti.
  13. Facoltativamente, creare regole di elaborazione degli avvisi di Monitoraggio di Azure usando il portale di Azure, l'interfaccia della riga di comando di Azure o PowerShell. Usare le regole di elaborazione degli avvisi per decidere cosa accade quando si attiva un avviso, come l'eliminazione di notifiche o l'applicazione di azioni specifiche a determinati tipi di avvisi.

Dimensionare l'operatore del processo

Per impostazione predefinita, gli operatori del processo vengono creati in JA100, consentendo fino a 100 esecuzioni di processi elastici contemporaneamente. L'avvio di una modifica del livello di servizio è un'operazione asincrona; il nuovo livello di servizio verrà reso disponibile dopo un breve ritardo per il provisioning.

Se sono necessarie più di 100 esecuzioni simultanee di operatori del processo elastico, sono disponibili livelli di servizio più elevati; vedere Livelli di capacità simultanei. È attualmente possibile modificare il livello di servizio di un operatore del processo tramite il portale di Azure, PowerShell o l'API REST.

Il superamento del livello di servizio con processi simultanei creerà ritardi di accodamento prima che i processi inizino oltre il limite di processi simultanei del livello di servizio.

Dimensionare l'operatore del processo elastico usando il portale di Azure

  1. Passare alla pagina Operatore del processo elastico nel portale di Azure.
  2. Selezionare Piano tariffario o Aumentare/Ridurre dal menu contestuale.
  3. Scegliere un nuovo livello di servizio dall'elenco a discesa Livello di servizio.
  4. Revisionare la scheda dei costi.
  5. Selezionare Aggiorna.

Dimensionare l'operatore del processo elastico usando PowerShell

È possibile usare il parametro facoltativo -ServiceObjective per Set-AzSqlElasticJobAgent per specificare un nuovo obiettivo di servizio. Ad esempio:

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

Dimensionare l'operatore del processo elastico usando l'API REST

È possibile usare l'API REST dell'operatore del processo per dimensionare un operatore del processo. Ad esempio:

{ 
"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"
}  
}