Creare e gestire database SQL di Azure con scalabilità orizzontale tramite processi elastici (anteprima)Create and manage scaled out Azure SQL Databases using elastic jobs (preview)

processi di database elastico semplificano la gestione dei gruppi di database con l'esecuzione di operazioni amministrative, come le modifiche dello schema, la gestione delle credenziali, gli aggiornamenti dei dati di riferimento, la raccolta dei dati sulle prestazioni o la raccolta dei dati di telemetria dei tenant (clienti).Elastic Database jobs simplify management of groups of databases by executing administrative operations such as schema changes, credentials management, reference data updates, performance data collection or tenant (customer) telemetry collection. L'opzione relativa ai processi di database elastici è attualmente disponibile tramite il portale di Azure e i cmdlet di PowerShell.Elastic Database jobs is currently available through the Azure portal and PowerShell cmdlets. Il portale di Azure presenta tuttavia funzionalità ridotte, limitate all'esecuzione in tutti i database di un pool elastico (anteprima).However, the Azure portal surfaces reduced functionality limited to execution across all databases in an elastic pool (preview). Per accedere a funzionalità aggiuntive e all'esecuzione di script in un gruppo di database, compreso un insieme personalizzato o un insieme di partizioni (creato usando la libreria client dei database elastici), vedere Creare e gestire processi di database elastici del database SQL tramite PowerShell.To access additional features and execution of scripts across a group of databases including a custom-defined collection or a shard set (created using Elastic Database client library), see Creating and managing jobs using PowerShell. Per ulteriori informazioni sui processi, vedere Panoramica dei processi di database elastici.For more information about jobs, see Elastic Database jobs overview.

PrerequisitiPrerequisites

Creazione di processiCreating jobs

  1. Mediante il portale di Azure, da un pool di processi di database elastici esistente, fare clic su Crea processo.Using the Azure portal, from an existing elastic database job pool, click Create job.
  2. Digitare il nome utente e la password dell'amministratore del database (creati in fase di installazione) per il database di controllo dei processi (archivio dei metadati relativi ai processi).Type in the username and password of the database administrator (created at installation of Jobs) for the jobs control database (metadata storage for jobs).

    Denominare il processo, digitare o incollare il nome nel codice e fare clic su Esegui

  3. Nel pannello Crea processo digitare il nome del processo.In the Create Job blade, type a name for the job.
  4. Digitare il nome utente e la password per connettersi ai database di destinazione con autorizzazioni sufficienti per l'esecuzione di script.Type the user name and password to connect to the target databases with sufficient permissions for script execution to succeed.
  5. Incollare o digitare nello script T-SQL.Paste or type in the T-SQL script.
  6. Fare clic su Salva e quindi su Esegui.Click Save and then click Run.

    Creare processi ed eseguirli

Eseguire processi idempotentiRun idempotent jobs

Quando si esegue uno script su un insieme di database, è necessario assicurarsi che tale script sia idempotente.When you run a script against a set of databases, you must be sure that the script is idempotent. In altri termini, è necessario che lo script possa essere eseguito più volte anche se in precedenza aveva avuto esito negativo e non era stato completato.That is, the script must be able to run multiple times, even if it has failed before in an incomplete state. Se ad esempio uno script non riesce, il processo verrà ripetuto automaticamente fino a quando non avrà esito positivo (all'interno di limiti stabiliti, poiché la logica di ripetizione potrà eventualmente interrompere l'esecuzione di nuovi tentativi).For example, when a script fails, the job will be automatically retried until it succeeds (within limits, as the retry logic will eventually cease the retrying). Il metodo per eseguire questa operazione consiste nell'uso della clausola "IF EXISTS" e nell'eliminazione di qualsiasi istanza trovata prima della creazione di un nuovo oggetto.The way to do this is to use the an "IF EXISTS" clause and delete any found instance before creating a new object. Di seguito è riportato un esempio:An example is shown here:

IF EXISTS (SELECT name FROM sys.indexes
        WHERE name = N'IX_ProductVendor_VendorID')
DROP INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor;
GO
CREATE INDEX IX_ProductVendor_VendorID
ON Purchasing.ProductVendor (VendorID);

In alternativa, usare una clausola "IF NOT EXISTS" prima di creare una nuova istanza:Alternatively, use an "IF NOT EXISTS" clause before creating a new instance:

IF NOT EXISTS (SELECT name FROM sys.tables WHERE name = 'TestTable')
BEGIN
 CREATE TABLE TestTable(
  TestTableId INT PRIMARY KEY IDENTITY,
  InsertionTime DATETIME2
 );
END
GO

INSERT INTO TestTable(InsertionTime) VALUES (sysutcdatetime());
GO

Questo script aggiorna quindi la tabella creata in precedenza.This script then updates the table created previously.

IF NOT EXISTS (SELECT columns.name FROM sys.columns INNER JOIN sys.tables on columns.object_id = tables.object_id WHERE tables.name = 'TestTable' AND columns.name = 'AdditionalInformation')
BEGIN

ALTER TABLE TestTable

ADD AdditionalInformation NVARCHAR(400);
END
GO

INSERT INTO TestTable(InsertionTime, AdditionalInformation) VALUES (sysutcdatetime(), 'test');
GO

Verifica dello stato del processoChecking job status

Dopo aver iniziato un processo, è possibile controllarne lo stato di avanzamento.After a job has begun, you can check on its progress.

  1. Nella pagina del pool elastico fare clic su Gestione processi.From the elastic pool page, click Manage jobs.

    Fare clic su "Gestione processi"

  2. Fare clic sul nome (a) di un processo.Click on the name (a) of a job. Lo STATO può essere "Completato" o "Non riuscito".The STATUS can be "Completed" or "Failed." I dettagli del processo vengono visualizzati (b) insieme alla data e all'ora di creazione ed esecuzione.The job's details appear (b) with its date and time of creation and running. L'elenco (c) sottostante mostra lo stato di avanzamento dello script su ogni database del pool, fornendo dettagli relativi alla data e all'ora.The list (c) below the that shows the progress of the script against each database in the pool, giving its date and time details.

    Controllo di un processo completato

Controllo dei processi non riuscitiChecking failed jobs

Se un processo ha esito negativo, è disponibile un log dell'esecuzione.If a job fails, a log of its execution can found. Fare clic sul nome del processo non riuscito per visualizzarne i dettagli.Click the name of the failed job to see its details.

Controllo di un processo non riuscito

Risorse aggiuntiveAdditional resources

Se non si usano gli strumenti di database elastici,Not using elastic database tools yet? vedere la Guida introduttiva.Check out our Getting Started Guide. Se ci sono domande, è possibile visitare il forum sul database SQL mentre è possibile inserire le richieste di nuove funzionalità nel forum relativo a commenti e suggerimenti sul database SQL.For questions, please reach out to us on the SQL Database forum and for feature requests, please add them to the SQL Database feedback forum.