SQL Server Agent

SQL Server Agent è un servizio di Microsoft Windows per l'esecuzione di attività amministrative pianificate, denominate processi in SQL Server 2012.

Contenuto dell'argomento

  • Vantaggi di SQL Server Agent

  • Componenti di SQL Server Agent

  • Sicurezza per l'amministrazione di SQL Server Agent

Vantaggi di SQL Server Agent

Per l'archiviazione delle informazioni sui processi, in SQL Server Agent viene utilizzato SQL Server. I processi sono costituiti da uno o più passaggi, ciascuno dei quali contiene un'attività, ad esempio il backup di un database.

SQL Server Agent è in grado di eseguire un processo incluso in una pianificazione, in risposta a un evento specifico, oppure su richiesta. Se, ad esempio, l'esigenza è quella di eseguire il backup di tutti i server aziendali ogni sera in orario non lavorativo, è possibile automatizzare questa attività, Pianificare l'esecuzione del backup dal lunedì al venerdì dopo le 22.00. In caso di problemi durante l'operazione, SQL Server Agent potrà registrare l'evento e inviarne notifica all'utente.

[!NOTA]

Per impostazione predefinita, all'installazione di SQL Server 2012 il servizio SQL Server Agent viene disabilitato, a meno che l'utente non scelga esplicitamente l'avvio automatico del servizio.

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

Componenti di SQL Server Agent

SQL Server Agent utilizza i componenti seguenti per definire le attività da eseguire, quando eseguirle e come fornire informazioni in merito alla riuscita o meno delle attività.

Processi

Un processo è una serie specificata di azioni eseguite da SQL Server Agent. I processi consentono la definizione di un'attività amministrativa eseguibile una o più volte e il monitoraggio della riuscita o non riuscita di ogni esecuzione. Un processo può essere eseguito su un server locale oppure su più server remoti.

Nota importanteImportante

I processi di SQL Server Agent che sono in esecuzione al momento di un evento di failover su un'istanza del cluster di failover SQL Server non riprendono dopo il failover su un altro nodo del cluster di failover. I processi di SQL Server Agent che sono in esecuzione quando un nodo Hyper-V viene messo in pausa non riprendono se la pausa provoca un failover in un altro nodo. I processi che iniziano ma che non riescono a essere completati a causa di un evento di failover vengono registrati come avviati, ma non mostrano voci di log aggiuntive per il completamento o l'errore. I processi di SQL Server Agent in questi scenari sembrano non avere mai termine.

È possibile eseguire i processi in diversi modi:

  • In base a una o più pianificazioni.

  • In risposta a uno o più avvisi.

  • Tramite l'esecuzione della stored procedure sp_start_job.

Ogni azione di un processo viene definita passaggio del processo. Un passaggio del processo, ad esempio, può essere costituito dall'esecuzione di un'istruzione Transact-SQL, di un pacchetto di SSIS o di un comando in un server Analysis Services. I passaggi del processo vengono gestiti come parte di un processo.

Ogni passaggio del processo viene eseguito in un contesto di sicurezza specifico. Nel caso dei passaggi di processo che utilizzano Transact-SQL, specificare l'istruzione EXECUTE AS per impostare il contesto di sicurezza corrispondente. Per gli altri tipi di passaggi di processo, utilizzare un account proxy per impostare il contesto di sicurezza corrispondente.

Pianificazioni

Una pianificazione specifica quando viene eseguito un processo. È possibile eseguire più processi sulla stessa pianificazione e applicare più di una pianificazione allo stesso processo. Una pianificazione consente di definire le condizioni seguenti relativi al momento in cui un processo viene eseguito:

  • All'avvio di SQL Server Agent.

  • Quando l'utilizzo della CPU del computer corrisponde al livello di inattività.

  • Una sola volta in corrispondenza di una data e un'ora specifiche.

  • Su base periodica.

Per ulteriori informazioni, vedere Creazione e collegamento di pianificazioni ai processi.

Avvisi

Un avviso è una risposta automatica a un evento specifico. Ad esempio, un evento può essere generato dall'avvio di un processo o dal raggiungimento della soglia specifica delle risorse di sistema. Le condizioni per la generazione di un avviso vengono definite dall'utente.

Un avviso può rispondere a una delle condizioni seguenti:

  • Eventi SQL Server

  • Condizioni delle prestazioni di SQL Server

  • Eventi WMI (Microsoft Windows Management Instrumentation) nel computer in cui viene eseguito SQL Server Agent

Un avviso può eseguire le azioni seguenti:

  • Invio di una notifica a uno o più operatori

  • Esecuzione di un processo

Per ulteriori informazioni, vedere Avvisi.

Operatori

Un operatore definisce le informazioni di contatto relative al responsabile della manutenzione di una o più istanze di SQL Server. In alcune organizzazioni le mansioni di operatore vengono assegnate a un unico dipendente. In organizzazioni con più server, tali mansioni possono essere ripartite tra più dipendenti. Un operatore non include informazioni di sicurezza e non definisce alcuna entità di sicurezza.

SQL Server è in grado di segnalare gli avvisi agli operatori tramite:

  • Posta elettronica

  • Cercapersone (tramite posta elettronica)

  • net send

[!NOTA]

Per inviare notifiche utilizzando net send, è necessario che il servizio Windows Messenger sia avviato nel computer in cui si trova SQL Server Agent.

Nota importanteImportante

Le opzioni Cercapersone e net send verranno rimosse da SQL Server Agent in una versione futura di SQL Server. Evitare pertanto di utilizzarle in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui sono state implementate.

Per inviare notifiche agli operatori utilizzando la posta elettronica o i cercapersone, è necessario configurare SQL Server Agent per l'utilizzo di Posta elettronica database. Per ulteriori informazioni, vedere Posta elettronica database.

È possibile definire un operatore come alias assegnato a un gruppo di utenti. In questo modo la notifica può raggiungere contemporaneamente tutti i membri dell'alias. Per ulteriori informazioni, vedere Operatori.

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

Sicurezza per l'amministrazione di SQL Server Agent

SQL Server Agent utilizza i ruoli predefiniti del database SQLAgentUserRole, SQLAgentReaderRole e SQLAgentOperatorRole nel database msdb per controllare l'accesso a SQL Server Agent per gli utenti che non sono membri del ruolo predefinito del server sysadmin. Sottosistemi e proxy consentono agli amministratori del database di garantire l'esecuzione di tutti i passaggi di processo con le autorizzazioni minime necessarie all'esecuzione della relativa attività.

Ruoli

I membri dei ruoli predefiniti del database SQLAgentUserRole, SQLAgentReaderRolee SQLAgentOperatorRole in msdb e i membri del ruolo predefinito del server sysadmin hanno accesso a SQL Server Agent. Un utente che non appartiene a nessuno di questi ruoli non può utilizzare SQL Server Agent. Per ulteriori informazioni sui ruoli utilizzati in SQL Server Agent, vedere Implementazione della sicurezza di SQL Server Agent.

Sottosistemi

Un sottosistema è un oggetto predefinito che rappresenta funzionalità disponibili per un passaggio di processo. Ogni proxy ha accesso a uno o più sottosistemi. I sottosistemi offrono sicurezza in quanto delimitano l'accesso alle funzionalità disponibili per un proxy. Ogni passaggio di processo viene eseguito nel contesto di un proxy, ad eccezione dei passaggi di processo Transact-SQL. I passaggi di processo Transact-SQL utilizzano il comando EXECUTE AS per impostare il contesto di sicurezza.

In SQL Server vengono definiti i sottosistemi inclusi nella tabella seguente:

Nome sottosistema

Descrizione

Script Microsoft ActiveX

Esegue un passaggio di processo con script ActiveX.

Nota importanteImportante

Il sottosistema di scripting ActiveX verrà rimosso da SQL Server in una versione futura di MicrosoftSQL Server. Evitare di utilizzare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

Sistema operativo (CmdExec)

Esegue un programma eseguibile.

PowerShell

Esegue un passaggio di processo con script di PowerShell.

Server di distribuzione repliche

Esegue un passaggio di processo tramite cui viene attivata l'utilità Agente distribuzione repliche.

Merge repliche

Esegue un passaggio di processo tramite cui viene attivata l'utilità Agente merge repliche.

Lettura coda repliche

Esegue un passaggio di processo tramite cui viene attivata l'utilità Agente di lettura coda repliche.

Snapshot repliche

Esegue un passaggio di processo tramite cui viene attivata l'utilità Agente snapshot repliche.

Lettura log repliche

Esegue un passaggio di processo tramite cui viene attivata l'utilità Agente lettura log repliche.

Comando di Analysis Services

Esegue un comando di Analysis Services.

Query di Analysis Services

Esegue una query di Analysis Services.

Esecuzione del pacchetto SSIS

Esegue un pacchetto SSIS.

[!NOTA]

Poiché i passaggi di processo Transact-SQL non utilizzano proxy, non è disponibile alcun sottosistema di SQL Server per i passaggi di processo Transact-SQL.

SQL Server Agent applica restrizioni di sottosistema anche quando l'entità di sicurezza per il proxy disporrebbe dell'autorizzazione necessaria per eseguire l'attività nel passaggio di processo. Un proxy per un utente membro del ruolo predefinito del server sysadmin non può ad esempio eseguire un passaggio di processo SSIS, a meno che non abbia accesso al sottosistema di SSIS, anche se l'utente può eseguire pacchetti SSIS.

Proxy

SQL Server Agent utilizza i proxy per la gestione dei contesti di sicurezza. È possibile utilizzare un proxy in più passaggi di processo. I membri del ruolo predefinito del server sysadmin sono autorizzati alla creazione di proxy.

Ogni proxy corrisponde a una credenziale di sicurezza e può essere associato a un set di sottosistemi e a un set di account di accesso. È possibile utilizzare il proxy solo per i passaggi di processo che utilizzano un sottosistema associato al proxy stesso. Per creare un passaggio di processo che utilizza un proxy specifico, il proprietario del processo deve utilizzare un account di accesso associato a tale proxy oppure essere un membro di un ruolo con accesso senza limitazioni ai proxy. I membri del ruolo predefinito del server sysadmin hanno privilegi di accesso senza limitazioni ai proxy. I membri del ruolo SQLAgentUserRole, SQLAgentReaderRole o SQLAgentOperatorRole possono utilizzare solo i proxy ai quali sono specificamente autorizzati ad accedere. È necessario concedere l'accesso a proxy specifici a ogni utente membro di uno di questi ruoli predefiniti del database di SQL Server Agent, in modo che possa creare passaggi di processo che utilizzano tali proxy.

Attività correlate

Per configurare SQL Server Agent per automatizzare l'amministrazione di SQL Server procedere come descritto di seguito:

  1. Individuare le attività amministrative o gli eventi server che si verificano regolarmente e che possono essere gestiti a livello di programmazione. È possibile automatizzare un'attività se implica una sequenza prevedibile di passaggi e si verifica a un'ora specifica o in risposta a un evento specifico.

  2. Definire un set di processi, pianificazioni, avvisi e operatori tramite SQL Server Management Studio, script Transact-SQL o SQL Server Management Objects (SMO). Per ulteriori informazioni, vedere Crea processi.

  3. Eseguire i processi SQL Server Agent definiti.

[!NOTA]

Per un'istanza predefinita di SQL Server, il nome del servizio SQL Server è SQLSERVERAGENT. Nel caso di istanze denominate il nome del servizio SQL Server Agent è SQLAgent$ instancename.

Se si eseguono più istanze di SQL Server, è possibile utilizzare l'amministrazione multiserver per automatizzare attività comuni a tutte le istanze. Per ulteriori informazioni, vedere Amministrazione automatizzata in un'organizzazione.

Per un'introduzione a SQL Server, utilizzare le attività riportate di seguito.

Descrizione

Argomento

Viene descritto come configurare SQL Server Agent.

Configurazione di SQL Server Agent

Viene descritto come avviare, arrestare e sospendere il servizio SQL Server Agent.

Avvio, arresto o sospensione del servizio SQL Server Agent

Descrive le considerazioni di cui tener conto per specificare un account per il servizio SQL Server Agent.

Selezionare un account per il servizio SQL Server Agent

Descrive come utilizzare il log degli errori di SQL Server Agent.

Log degli errori di SQL Server Agent

Viene descritto come utilizzare gli oggetti prestazioni.

Utilizzo degli oggetti prestazioni

Viene descritta la Creazione guidata piano di manutenzione, un'utilità che è possibile utilizzare per creare processi, avvisi e operatori allo scopo di automatizzare l'amministrazione di un'istanza di SQL Server.

Utilizzare la Creazione guidata piano di manutenzione database

Viene descritto come utilizzare SQL Server Agent per automatizzare le attività amministrative.

Automatizzazione delle attività amministrative (SQL Server Agent)

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

Vedere anche

Concetti

Configurazione superficie di attacco