Gestire passaggi di processo

 

Data di pubblicazione: maggio 2016

Un passaggio di processo è un'operazione eseguita dal processo in un database o in un server. Ogni processo deve essere composto da almeno un passaggio. I passaggi di processo possono essere costituiti dagli elementi seguenti:

  • Programmi eseguibili e comandi del sistema operativo.

  • Transact-SQL istruzioni, incluse stored procedure e stored procedure estese.

  • Script di PowerShell.

  • Microsoft Script ActiveX.

  • Attività di replica.

  • Analysis Services attività.

  • Integration Services pacchetti.

Ogni passaggio di processo viene eseguito in un contesto di sicurezza specifico. Se tramite il passaggio di processo viene specificato un proxy, il passaggio viene eseguito nel contesto di sicurezza della credenziale per il proxy. Se tramite il passaggio di processo non viene specificato un proxy, il passaggio viene eseguito nel contesto dell'account del servizio SQL Server Agent. Solo i membri del ruolo predefinito del server sysadmin possono creare processi in cui non venga specificato esplicitamente un proxy.

Poiché i passaggi di processo vengono eseguiti nel contesto di un utente specifico di Microsoft Windows, l'utente deve essere in possesso delle autorizzazioni e della configurazione necessarie per l'esecuzione del passaggio di processo. Se, ad esempio, si crea un processo che richiede una lettera di unità o un percorso UNC (Universal Naming Convention), i passaggi di processo possono essere eseguiti con l'account utente di Windows durante la verifica delle operazioni. L'utente di Windows per il passaggio di processo, tuttavia, deve inoltre disporre delle autorizzazioni richieste, delle configurazioni della lettera di unità o dell'accesso all'unità necessaria. In caso contrario, il passaggio di processo non verrà eseguito correttamente. Per evitare questo problema, assicurarsi che il proxy per ogni passaggio di processo disponga delle autorizzazioni necessarie per l'operazione eseguita dal passaggio. Per altre informazioni, vedere Sicurezza e protezione (Motore di database).

SQL Server Agent può scrivere output da alcuni passaggi di processo in un file del sistema operativo o nella tabella sysjobstepslogs del database msdb. I tipi di passaggi di processo seguenti consentono la scrittura dell'output in entrambe le destinazioni:

  • Programmi eseguibili e comandi del sistema operativo.

  • Transact-SQL .

  • Analysis Services attività.

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

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

System_CAPS_ICON_note.jpg Nota


La registrazione delle attività di replica e dei passaggi di processo dei pacchetti Integration Services viene gestita dal rispettivo sottosistema. Non è possibile utilizzare SQL Server Agent per configurare la registrazione di questi tipi di passaggi di processo.

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

Quando si utilizza un programma eseguibile o un comando del sistema operativo come passaggio di processo, è necessario specificare gli elementi seguenti:

  • Il codice di uscita del processo, restituito se il comando ha esito positivo.

  • Comando da eseguire. Per eseguire un comando del sistema operativo, è necessario immettere solo il comando specifico. Per un programma esterno, è necessario immettere il nome del programma e gli argomenti del programma, ad esempio: C:\Programmi\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe -e -q "sp_who"

    System_CAPS_ICON_note.jpg Nota


    È necessario indicare il percorso completo del programma eseguibile se questo non è incluso in una directory specificata nel percorso di sistema o nel percorso per l'account utente con cui viene eseguito il passaggio di processo.

Quando si crea un passaggio di processo Transact-SQL, è necessario eseguire le operazioni seguenti:

  • Identificare il database in cui eseguire il processo.

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

In alternativa, è possibile aprire un file Transact-SQL esistente come comando per il passaggio di processo.

Transact-SQL I passaggi di processo non usano proxy di SQL Server Agent. Il passaggio di processo viene invece eseguito come proprietario del passaggio oppure come account del servizio SQL Server Agent se il proprietario è un membro del ruolo predefinito del server sysadmin. I membri del ruolo predefinito del server sysadmin possono anche specificare che i passaggi di processo Transact-SQL vengano eseguiti nel contesto di un altro utente tramite il parametro database_user_name della stored procedure sp_add_jobstep. Per altre informazioni, vedere sp_add_jobstep (Transact-SQL).

System_CAPS_ICON_note.jpg Nota


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

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

  • Il testo di uno script di PowerShell.

  • Un file script di PowerShell esistente da aprire.

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

System_CAPS_ICON_important.jpg Importante


Il passaggio di processo con script ActiveX verrà rimosso da SQL Server Agent in una versione futura di MicrosoftSQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

Quando si crea un passaggio di processo con script ActiveX, è necessario eseguire le operazioni seguenti:

  • Identificare il linguaggio di script con cui scrivere il passaggio di processo.

  • Scrivere lo script ActiveX.

È inoltre possibile aprire un file di script ActiveX esistente come comando per il passaggio di processo. In alternativa, i comandi degli script ActiveX possono essere compilati esternamente, ad esempio tramite Microsoft Visual Basic, e quindi eseguiti come file eseguibili.

Quando un comando di un passaggio di processo è uno script ActiveX, è possibile utilizzare l'oggetto SQLActiveScriptHost per stampare l'output nella cronologia dei passaggi di processo o per creare oggetti COM. SQLActiveScriptHost è un oggetto globale introdotto dal sistema di hosting di SQL Server Agent nello spazio dei nomi dello script. L'oggetto dispone di due metodi (Stampa e CreateObject). Nell'esempio seguente viene illustrato il funzionamento degli script ActiveX in Visual Basic Scripting Edition (VBScript).

' VBScript example for ActiveX Scripting job step  
' Create a Dmo.Server object. The object connects to the  
' server on which the script is running.  
  
Set oServer = CreateObject("SQLDmo.SqlServer")  
oServer.LoginSecure = True  
oServer.Connect "(local)"  
'Disconnect and destroy the server object  
oServer.DisConnect  
Set oServer = nothing  

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

I passaggi dei processi di replica attivano uno degli agenti di replica seguenti:

  • Agente snapshot (processo Snapshot)

  • Agente lettura log (processo LogReader)

  • Agente di distribuzione (processo Distribuzione)

  • Agente di merge (processo Merge)

  • Agente di lettura coda (processo QueueReader)

Durante la configurazione della replica, è possibile specificare di eseguire gli agenti di replica in tre modi diversi: in modo continuativo 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.

SQL Server Agent supporta due tipi diversi di passaggi di processo Analysis Services, ovvero i passaggi di processo con comandi e i passaggi di processo con query.

Passaggi di processo con comandi di Analysis Services

Quando si crea un passaggio di processo con un comando di Analysis Services, è necessario eseguire le operazioni seguenti:

  • Identificare il server OLAP di database in cui eseguire il passaggio di processo.

  • Digitare l'istruzione da eseguire. È necessario che l'istruzione sia un file XML per il metodo Execute diAnalysis Services. L'istruzione non può includere una busta SOAP completa o un file XML per il metodo Discover di Analysis Services. A differenza di SQL Server Management Studio, i passaggi di processo di SQL Server Agent non supportano le buste SOAP complete e il metodo Discover.

Passaggi di processo con query Analysis Services

Quando si crea un passaggio di processo con una query di Analysis Services, è necessario eseguire le operazioni seguenti:

  • Identificare il server OLAP di database in cui eseguire il passaggio di processo.

  • Digitare l'istruzione da eseguire. L'istruzione deve essere una query MDX.

Per altre informazioni su MDX, vedere Elementi fondamentali dell'istruzione MDX (MDX).

Quando si crea un passaggio di processo con un pacchetto di Integration Services, è necessario eseguire le operazioni seguenti:

  • Identificare l'origine del pacchetto.

  • Identificare la posizione del pacchetto.

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

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

  • Identificare la verifica da utilizzare per il pacchetto. È possibile, ad esempio, specificare che il pacchetto deve essere firmato o deve disporre di un ID pacchetto specifico.

  • Identificare le origini dei dati per il pacchetto.

  • Identificare i provider di log per il pacchetto.

  • Specificare le variabili e i valori da impostare prima di eseguire il pacchetto.

  • Identificare le opzioni di esecuzione.

  • Aggiungere o modificare le opzioni della riga di comando.

Se il pacchetto è stato distribuito al catalogo SSIS e si specifica Catalogo SSIS 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 della gestione connessione, gli override delle proprietà e se il pacchetto è in esecuzione in un ambiente di runtime a 32 bit.

Per altre informazioni sulla creazione di passaggi di processo eseguiti come pacchetti Integration Services, vedere Processi di SQL Server Agent per i pacchetti.

DescriptionArgomento
Viene descritto come creare un passaggio di processo con un programma eseguibile.Creare un passaggio di processo CmdExec
Viene descritto come reimpostare le autorizzazioni di SQL Server Agent.Configurare un utente per la creazione e la gestione di processi di SQL Server Agent
Viene descritto come creare un passaggio di processo di Transact-SQL Agent.Create a Transact-SQL Job Step
Viene descritto come definire le opzioni per i passaggi di processo Transact-SQL di Microsoft SQL Server Agent.Define Transact-SQL Job Step Options
Viene descritto come creare un passaggio di processo dello script ActiveX.Create an ActiveX Script Job Step
Viene descritto come creare e definire passaggi di processo di SQL Server Agent tramite cui vengono eseguiti comandi e query di SQL Server Analysis Services.Create an Analysis Services Job Step
Viene descritta quale azione di SQL Server occorre eseguire se si verifica un errore durante l'esecuzione del processo.Set Job Step Success or Failure Flow
Viene descritto come visualizzare informazioni dettagliate sui passaggi di processo nella finestra di dialogo Proprietà passaggio processo.Visualizzare informazioni sui passaggi di processo
Viene descritto come eliminare un log dei passaggi di processo di SQL Server Agent.Delete a Job Step Log

sysjobstepslogs (Transact-SQL)
Crea processi
sp_add_job (Transact-SQL)

Aggiunte alla community

AGGIUNGI
Mostra: