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.
[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.
Importante |
---|
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.
Importante |
---|
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.
[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.
|
||
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:
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.
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.
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. |
|
Viene descritto come avviare, arrestare e sospendere il servizio SQL Server Agent. |
|
Descrive le considerazioni di cui tener conto per specificare un account per il servizio SQL Server Agent. |
|
Descrive come utilizzare il log degli errori di SQL Server Agent. |
|
Viene descritto come utilizzare gli 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) |
[Inizio pagina]