Condividi tramite


Gestire i passaggi del lavoro

si applica a:SQL ServerIstanza gestita di SQL di Azure

Importante

In Istanza gestita di SQL di Azure, la maggior parte, ma non tutte le funzionalità di SQL Server Agent sono attualmente supportate. Per informazioni dettagliate, vedere differenze T-SQL tra Istanza gestita di SQL di Azure e SQL Server.

Una fase del lavoro è un'azione compiuta dal lavoro su un database o un server. Ogni lavoro deve avere almeno un passaggio. I passaggi del lavoro possono essere:

  • Programmi eseguibili e comandi del sistema operativo.
  • Transact-SQL istruzioni, incluse procedure memorizzate e procedure memorizzate estese.
  • Script di PowerShell.
  • Attività di replica.
  • Attività di Analysis Services.
  • Pacchetti di Integration Services.

Ogni passaggio del processo viene eseguito in un contesto di sicurezza specifico. Se la fase del lavoro specifica un proxy, la fase del lavoro viene eseguita nel contesto di sicurezza della credenziale per il proxy. Se un passaggio del processo non specifica un proxy, il passaggio del processo viene eseguito nel contesto dell'account del servizio SQL Server Agent. Solo i membri del ruolo predefinito del server sysadmin possono creare processi che non specificano in modo esplicito un proxy.

Poiché i passaggi del processo vengono eseguiti nel contesto di un utente windows specifico, tale utente deve disporre delle autorizzazioni e della configurazione necessarie per l'esecuzione del passaggio di processo. Ad esempio, se si crea un processo che richiede una lettera di unità o un percorso UNC (Universal Naming Convention), i passaggi del processo potrebbero essere eseguiti con l'account utente di Windows durante il test delle attività. Tuttavia, l'utente di Windows per il passaggio del processo deve avere anche le autorizzazioni necessarie, le configurazioni delle lettere di unità o l'accesso all'unità richiesta. In caso contrario, la fase del lavoro ha esito negativo. Per evitare questo problema, assicurarsi che il proxy per ciascun passaggio del processo disponga delle autorizzazioni necessarie per i compiti svolti in quel passaggio. Per altre informazioni, vedere Sicurezza per il motore di database di SQL Server e il database SQL di Azure.

Log dei passaggi dell'operazione

SQL Server Agent può scrivere l'output di alcuni passaggi del processo in un file del sistema operativo o nella tabella sysjobstepslogs nel database msdb. I tipi di fase di lavoro seguenti possono scrivere output verso entrambe le destinazioni:

  • Programmi eseguibili e comandi del sistema operativo.
  • "Transact-SQL dichiarazioni."
  • Attività di Analysis Services.

Solo i passaggi di processo eseguiti dagli utenti membri del ruolo predefinito del server sysadmin possono scrivere l'output del passaggio del processo nei file del sistema operativo. Se i passaggi del processo vengono eseguiti dagli utenti membri di SQLAgentUserRole, SQLAgentReaderRole o i ruoli predefiniti del database SQLAgentOperatorRole nel msdb database, l'output di questi passaggi del processo può essere scritto solo nella tabella sysjobstepslogs.

I log dei passaggi del processo vengono eliminati automaticamente quando vengono eliminati processi o passaggi di processo.

Nota

La registrazione dei passaggi del pacchetto di Integration Services e dell'attività di replica viene gestita dai rispettivi sottosistemi. Non è possibile usare SQL Server Agent per configurare la registrazione dei passaggi di lavoro per questi tipi di passaggi di lavoro.

Programmi eseguibili e comandi del sistema operativo come fasi di lavoro

I programmi eseguibili e i comandi del sistema operativo possono essere usati come passaggi del processo. Questi file potrebbero avere .bat, .cmd, .com o estensioni di file di .exe.

Quando si usa un programma eseguibile o un comando del sistema operativo come passaggio del processo, è necessario specificare:

  • Codice di uscita del processo restituito se il comando ha avuto esito positivo.

  • Comando da eseguire. Per eseguire un comando del sistema operativo, si tratta semplicemente del comando stesso. Per un programma esterno, questo è il nome del programma e gli argomenti del programma, ad esempio:

    C:\Program Files\Microsoft SQL Server\160\Tools\Binn\sqlcmd.exe -e -q "sp_who"
    

    Specificare il percorso completo del file eseguibile se non si trova in una directory specificata nel percorso di sistema, o il percorso per l'utente con cui viene eseguita la fase del lavoro.

Transact-SQL passaggi di lavoro

Quando crei un passaggio lavorativo Transact-SQL, devi:

  1. Identificare il database in cui eseguire il processo.

  2. Digitare l'istruzione Transact-SQL da eseguire. L'istruzione può chiamare una stored procedure o una stored procedure estesa.

Se lo desideri, è possibile aprire un file di Transact-SQL esistente come comando per il job step.

Suggerimento

I passaggi del processo T-SQL nei processi di SQL Server Agent modificano il valore di TEXTSIZEper limitare la lunghezza di determinate colonne nei set di risultati. Questo comportamento potrebbe causare risultati imprevisti. Ad esempio, SELECT le query che funzionano come previsto in SQL Server Management Studio possono restituire valori di colonna troncati quando vengono eseguiti tramite SQL Server Agent. Per evitare il troncamento, impostare TEXTSIZE nella query eseguita dalla fase del job T-SQL.

Transact-SQL passaggi di processo non usano proxy di SQL Server Agent. Invece, il passaggio di processo viene eseguito come proprietario del passaggio di processo o come account del servizio SQL Server Agent se il proprietario del passaggio di processo è un membro del ruolo predefinito del server sysadmin. I membri del ruolo fisso del server sysadmin possono anche specificare che i passaggi di processo Transact-SQL vengano eseguiti sotto l'identità di un altro utente usando il parametro database_user_name della sp_add_jobstep stored procedure. Per altre informazioni, vedere sp_add_jobstep.

Nota

Un singolo passaggio di processo Transact-SQL può contenere più batch. I passaggi del processo Transact-SQL possono contenere comandi incorporati GO.

Passaggi del processo di scripting di PowerShell

Quando si crea un passaggio del processo script di PowerShell, è necessario specificare uno dei due elementi come comando per il passaggio:

  • Testo di uno script di PowerShell.
  • File di script di PowerShell esistente da aprire.

Il sottosistema PowerShell di SQL Server Agent apre una sessione di PowerShell e carica gli snap-in PowerShell di SQL Server. Lo script di PowerShell usato come comando del passaggio di lavoro può fare riferimento al provider e ai cmdlet di SQL Server PowerShell. Per altre informazioni sulla scrittura di script di PowerShell con gli snap-in powerShell di SQL Server, vedere SQL Server PowerShell.

Passaggi dell'attività di replica

Quando si creano pubblicazioni e sottoscrizioni usando la replica, i processi di replica vengono creati per impostazione predefinita. Il tipo di lavoro creato è determinato dal tipo di replica (snapshot, transazionale o merge) e dalle opzioni utilizzate.

I passaggi del processo di replica attivano uno di questi agenti di replica:

  • Agente di snapshot (processo di snapshot)
  • Agente di lettura log (lavoro LogReader)
  • Agente di distribuzione (attività di distribuzione)
  • Agente di merge (attività di merge)
  • Agente di lettura coda (attività QueueReader)

Quando la replica è configurata, è possibile specificare di eseguire gli agenti di replica in uno dei tre modi seguenti: continuamente dopo l'avvio di SQL Server Agent, su richiesta o in base a una pianificazione. Per altre informazioni sugli agenti di replica, vedere Panoramica degli agenti di replica .

Passaggi del lavoro di Analysis Services

SQL Server Agent supporta due tipi distinti di passaggi di Analysis Services: passaggi di comando e passaggi di query.

Passaggi del processo di comando di Analysis Services

Quando si crea un passaggio del processo di comando di Analysis Services, è necessario:

  1. Identificare il server OLAP del database in cui eseguire il passaggio del processo.

  2. Digitare l'istruzione da eseguire. L'istruzione deve essere un metodo Execute di XML per Analysis Services. L'istruzione potrebbe non contenere una busta SOAP completa o un metodo XML per il Discover dei servizi di analisi Analysis Services. Si noti che, mentre SQL Server Management Studio supporta buste SOAP complete e il metodo Discover , i passaggi di processo di SQL Server Agent non lo sono.

Passaggi delle attività di query di Analysis Services

Quando si crea un passaggio di processo per una query di Analysis Services, è necessario:

  1. Identificare il server OLAP del database in cui eseguire il passaggio del processo.

  2. Digitare l'istruzione da eseguire. L'istruzione deve essere una query di espressioni multidimensionali (MDX).

Per altre informazioni su MDX, vedere MDX Statement Fundamentals (MDX).

pacchetti di Integration Services

Quando si crea un passaggio del processo del pacchetto di Integration Services, è necessario eseguire la procedura seguente:

  1. Identificare l'origine del pacchetto.

  2. Identificare la posizione del pacchetto.

  3. Se per il pacchetto sono necessari file di configurazione, identificare i file di configurazione.

  4. Se i file di comando sono necessari per il pacchetto, identificare i file di comando.

  5. Identifica la procedura di verifica da usare per il pacchetto. Ad esempio, è possibile specificare che il pacchetto deve essere firmato o che il pacchetto deve avere un ID pacchetto specifico.

  6. Identificare le fonti di dati per il pacchetto.

  7. Identificare i provider di log per il pacchetto.

  8. Specificare variabili e valori da impostare prima di eseguire il pacchetto.

  9. Identificare le opzioni di esecuzione.

  10. Aggiungere o modificare le opzioni della riga di comando.

Se il pacchetto è stato distribuito nel catalogo SSIS e si specifica SSIS Catalog come origine del pacchetto, molte di queste informazioni di configurazione vengono ottenute automaticamente dal pacchetto. Nella scheda Configurazione è possibile specificare l'ambiente, i valori dei parametri, i valori del gestore delle connessioni, le sovrascritture delle proprietà e se il pacchetto viene eseguito in un ambiente di runtime a 32 bit.

Per ulteriori informazioni sulla creazione di fasi di lavoro che eseguono pacchetti di Integration Services, vedere Lavori di SQL Server Agent per pacchetti.

Descrizione Articolo
Viene descritto come creare un passaggio del processo con un programma eseguibile. Creare un passaggio di attività CmdExec
Viene descritto come reimpostare le autorizzazioni di SQL Server Agent. Configurare un utente per creare e gestire processi dell'agente di SQL Server
Descrive come creare una fase di lavoro Transact-SQL. Creare una fase del lavoro Transact-SQL
Descrive come definire le opzioni per i passaggi lavoro di Microsoft SQL Server Agent Transact-SQL. Definire Transact-SQL opzioni della fase del lavoro
Descrive come creare un passaggio di lavoro di script ActiveX. Creare una fase del lavoro di script ActiveX
Viene descritto come creare e definire i passaggi di processo di SQL Server Agent che eseguono comandi e query di SQL Server Analysis Services. Creare un passaggio di attività di Analysis Services
Descrive l'azione che SQL Server deve eseguire se si verifica un errore durante l'esecuzione del processo. Impostare il flusso di successo o fallimento del passaggio di lavoro
Descrive come visualizzare i dettagli del passaggio del processo nella finestra di dialogo Proprietà passaggio processo. Visualizzare le Informazioni sul Passaggio di Processo
Viene descritto come eliminare un log dei passaggi del processo di SQL Server Agent. Eliminare un registro dei passaggi di un lavoro