Creazione di un processo master di SQL Server Agent

Si applica a:SQL ServerIstanza gestita di SQL di Azure

Importante

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

Questo argomento illustra come creare un processo master di Microsoft SQL Server Agent in SQL Server usando SQL Server Management Studio o Transact-SQL.

Prima di iniziare

Limitazioni e restrizioni

Le modifiche apportate ai processi master di SQL Server Agent devono essere propagate a tutti i server di destinazione interessati. Poiché i server di destinazione non scaricano il processo finché le destinazioni non vengono specificate, è consigliabile completare tutti i passaggi e le pianificazioni di un particolare processo prima di specificare i server di destinazione. In caso contrario, è necessario richiedere manualmente che i server di destinazione scarichino nuovamente il processo modificato, eseguendo la stored procedure sp_post_msx_operation o modificando il processo con SQL Server Management Studio. Per altre informazioni, vedere sp_post_msx_operation (Transact-SQL) o Modificare un processo.

Sicurezza

Autorizzazioni

I processi distribuiti con passaggi associati a un proxy vengono eseguiti nel contesto dell'account proxy nel server di destinazione. Verificare che siano soddisfatte le condizioni seguenti, per assicurare che i passaggi di processo associati a un proxy vengano scaricati dal server master a quello di destinazione:

  • La sottochiave del Registro di sistema \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<*nome_istanza*>\SQL Server Agent\AllowDownloadedJobsToMatchProxyName (REG_DWORD) è impostata su 1 (true). Per impostazione predefinita, questa sottochiave è impostata su 0 (falso).

  • Nel server di destinazione deve esistere un account proxy con lo stesso nome dell'account proxy del server master utilizzato per l'esecuzione del passaggio del processo.

Se si verificano errori nel download dei passaggi dei processi che usano account proxy dal server master a quello di destinazione, è possibile controllare se nella colonna error_message della tabella sysdownloadlist nel database msdb sono presenti i messaggi di errore seguenti:

  • "Per questo passaggio del processo è necessario un account proxy, ma l'individuazione dei proxy è disabilitata nel server di destinazione". Per risolvere questo errore, impostare la sottochiave del Registro di sistema AllowDownloadedJobsToMatchProxyName su 1.

  • "Impossibile trovare il proxy". Per risolvere questo errore, verificare che nel server di destinazione sia disponibile un account proxy con lo stesso nome dell'account proxy del server master utilizzato per l'esecuzione del passaggio del processo.

Utilizzo di SQL Server Management Studio

Per creare un processo master di SQL Server Agent

  1. In Esplora oggettifare clic sul segno più per espandere il server in cui si desidera creare un processo di SQL Server Agent.

  2. Fare clic sul segno più per espandere SQL Server Agent.

  3. Fare clic con il pulsante destro del mouse sulla cartella Processi e quindi selezionare Nuovo processo.

  4. Nella pagina Generale della finestra di dialogo Nuove processo modificare le proprietà generali del processo. Per altre informazioni sulle opzioni disponibili in questa pagina, vedere Proprietà processo - Nuovo processo (pagina Generale)

  5. Nella pagina Passaggi , organizzare i passaggi del processo. Per altre informazioni sulle opzioni disponibili in questa pagina, vedere Proprietà processo - Nuovo processo (pagina Passaggi)

  6. Nella pagina Pianificazioni , organizzare le pianificazioni per il processo. Per altre informazioni sulle opzioni disponibili in questa pagina, vedere Proprietà processo - Nuovo processo (pagina Pianificazioni)

  7. Nella pagina Avvisi , organizzare gli avvisi per il processo. Per altre informazioni sulle opzioni disponibili in questa pagina, vedere Proprietà processo - Nuovo processo (pagina Avvisi)

  8. Nella pagina Notifiche impostare le azioni che SQL Server Agent deve eseguire al completamento del processo. Per altre informazioni sulle opzioni disponibili in questa pagina, vedere Proprietà processo - Nuovo processo (pagina Notifiche).

  9. Nella pagina Destinazioni , gestire i server di destinazione per il processo. Per altre informazioni sulle opzioni disponibili in questa pagina, vedere Proprietà processo - Nuovo processo (pagina Destinazioni).

  10. Al termine, fai clic su OK.

Utilizzo di Transact-SQL

Per creare un processo master di SQL Server Agent

  1. In Esplora oggetti connettersi a un'istanza del motore di database.

  2. Sulla barra Standard fare clic su Nuova query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.

    USE msdb ;  
    GO  
    -- Adds a new job executed by the SQLServerAgent service called 'Weekly Sales Data Backup'  
    EXEC dbo.sp_add_job  
        @job_name = N'Weekly Sales Data Backup' ;  
    GO  
    -- Adds a step (operation) to the 'Weekly Sales Data Backup' job.  
    EXEC sp_add_jobstep  
        @job_name = N'Weekly Sales Data Backup',  
        @step_name = N'Set database to read only',  
        @subsystem = N'TSQL',  
        @command = N'ALTER DATABASE SALES SET READ_ONLY',   
        @retry_attempts = 5,  
        @retry_interval = 5 ;  
    GO  
    -- Creates a schedule called RunOnce  
    EXEC dbo.sp_add_schedule  
        @schedule_name = N'RunOnce',  
        @freq_type = 1,  
        @active_start_time = 233000 ;  
    USE msdb ;  
    GO  
    -- Sets the 'RunOnce' schedule to the "Weekly Sales Data Backup' Job  
    EXEC sp_attach_schedule  
       @job_name = N'Weekly Sales Data Backup',  
       @schedule_name = N'RunOnce';  
    GO  
    -- assigns the multiserver job Weekly Sales Backups to the server SEATTLE2  
    -- assumes that SEATTLE2 is registered as a target server for the current instance.  
    EXEC dbo.sp_add_jobserver  
        @job_name = N'Weekly Sales Data Backups',  
        @server_name = N'SEATTLE2' ;  
    GO  
    

Per altre informazioni, vedi: