Utilizzando i piani di manutenzione del database, possiamo automatizzare le attività di amministrazione del database di base. I piani di manutenzione sono pacchetti del servizio di integrazione di SQL Server che vengono eseguiti dal processo di SQL Server Agent in base alla pianificazione configurata. Utilizzando i piani di manutenzione, possiamo automatizzare le seguenti attività.
- Riduci un database
- Backup di un database
- Notifica operatore
- Aggiorna le statistiche del database
- Esegui il controllo dell'integrità del database
- Esegui processi di SQL Server Agent
- Esegui script T-SQL
- Riorganizza o ricostruisci gli indici
Inoltre, possiamo impostare un avviso per notificare a un DBA lo stato di esecuzione del piano di manutenzione abilitando Database Mail.
In questo articolo spiegherò come creare un piano di manutenzione di base per eseguire il controllo della coerenza del database su un database utente.
Prerequisiti per creare un piano di manutenzione del database
Per creare un piano di manutenzione del database, i prerequisiti sono i seguenti:
- Devono essere installati i servizi di integrazione
- Il servizio SQL Server Agent deve essere in esecuzione.
I servizi di integrazione devono essere in esecuzione
Come accennato, i piani di manutenzione del database sono pacchetti di servizi di integrazione di SQL Server, quindi per eseguirli è necessario installare i servizi di integrazione.
Per verificare che i servizi di integrazione siano stati installati, apri Gestione configurazione SQL Server , seleziona Servizi SQL Server nel riquadro di sinistra. Puoi visualizzare la versione del servizio di integrazione in cima all'elenco.
Se i servizi di integrazione non sono stati installati, installarli utilizzando il programma di installazione di SQL Server. Vedi questo articolo come riferimento.
Il servizio SQL Server Agent deve essere in esecuzione
Posta elettronica database invia messaggi di posta elettronica o messaggi utilizzando il servizio SQL Server Agent. Se i servizi dell'agente non sono in esecuzione, SQL Server non è in grado di inviare e-mail. Mentre il servizio agente non è in esecuzione, tutti i messaggi verranno accodati e, all'avvio del servizio agente, tutti i messaggi in coda verranno consegnati.
Per verificare lo stato del servizio agente, eseguire il comando seguente in SQL Server Management Studio.
use master go EXEC xp_servicecontrol N'querystate',N'SQLAgent$CMS'
L'output è il seguente:
Se il servizio SQL Server Agent non è in esecuzione, è necessario avviarlo. Per avviare SQL Server Agent Service, apri i servizi, vai a Pannello di controllo , fai clic su Strumenti di amministrazione , quindi fai clic su Servizi . Nell'elenco dei servizi, cerca SQL Server Agent . Fare clic con il pulsante destro del mouse su SQL Server Agent e seleziona Inizia .
Se desideri inviare via email lo stato del piano di manutenzione, devi abilitare il Database Mail e può essere fatto modificando i parametri di configurazione dell'istanza del database. Per impostazione predefinita, il Posta di database la funzione non è abilitata. Deve essere abilitato modificando il valore di configurazione di Database Mail XPs.
Per abilitare Database Mail , esegui le seguenti query in sequenza.
USE master Go EXEC sp_configure 'show advanced options', 1 --Enable advance option Go RECONFIGURE Go EXEC sp_configure 'Database Mail XPs,' 1 --Enable database Mail option Go RECONFIGURE Go EXEC sp_configure 'show advanced options', 0 --Disabled advanced option Go RECONFIGURE Go
Impostazione demo
Per questa demo, creerò un piano di manutenzione per eseguire il controllo della coerenza del database su FileStream_Demo Banca dati. Il piano di manutenzione verrà eseguito ogni domenica alle 00:00.
Versione di SQL Server :SQL Server 2017.
Software :SQL Server Management Studio.
È possibile creare un piano di manutenzione del database utilizzando la Procedura guidata del piano di manutenzione o utilizzando la superficie di progettazione del piano di manutenzione. In primo luogo, spiegherò come creare il piano di manutenzione utilizzando la Procedura guidata del piano di manutenzione .
Crea un piano di manutenzione utilizzando la procedura guidata del piano di manutenzione
Possiamo creare più piani di manutenzione utilizzando la Procedura guidata del piano di manutenzione del database . La procedura guidata ha alcune attività di manutenzione predefinite che possono essere configurate passo dopo passo.
Per creare un piano di manutenzione utilizzando la procedura guidata, apri SSMS, espandi Gestione , fai clic con il pulsante destro del mouse su Piano di manutenzione e seleziona Procedura guidata del piano di manutenzione.
La Procedura guidata del piano di manutenzione si apre la finestra di dialogo, in cui è possibile visualizzare il riepilogo delle attività che possono essere eseguite utilizzando la procedura guidata. Puoi ignorarlo e fare clic su Avanti .
Nella finestra di dialogo successiva, specificare il nome e la descrizione desiderati del piano di manutenzione. Specificare l'utente o l'account che esegue il piano di manutenzione. Come accennato, puoi creare più piani di manutenzione utilizzando la procedura guidata; questa finestra di dialogo contiene un'opzione per configurare la pianificazione. È possibile eseguire tutte le attività contemporaneamente oppure specificare un'unica pianificazione per l'intero piano. Specificare il nome e la descrizione desiderati nel Nome e Descrizione caselle di testo. SQL Server Agent esegue il piano di manutenzione se account di servizio di SQL Server Agent è selezionato. Il nostro piano verrà eseguito individualmente, quindi seleziona Programmazione singola per l'intero piano o nessuna programmazione .
Per configurare la pianificazione, fai clic su Programma accanto a Modifica casella di testo. Il nuovo programma di lavoro si apre la finestra di dialogo. Specificare il nome desiderato nel Nome casella di testo. Il piano di manutenzione verrà eseguito settimanalmente, quindi seleziona Ricorrente nel Tipo di programma casella a discesa. Come accennato, il piano di manutenzione viene eseguito settimanalmente, quindi seleziona Settimanale nella casella a discesa e seleziona Domenica. L'attività viene eseguita alle 00:00, quindi inserisci 00:00:00 nella casella di testo corrispondente. Fai clic su OK .
Una volta configurata la pianificazione, fai clic su Avanti in Seleziona proprietà del piano dialogo.
In Seleziona attività di manutenzione finestra di dialogo, seleziona Verifica integrità database casella di controllo e fai clic su Avanti .
Se sono state configurate più attività di manutenzione, puoi ordinarle in Seleziona ordine attività di manutenzione dialogo. È configurata solo un'attività, quindi non è necessaria alcuna azione qui. Fai clic su Avanti .
Nella finestra di dialogo successiva, selezionare il nome del database in cui verrà eseguita l'attività di manutenzione. Seleziona la Demo_FileStream database dai Banche dati casella a discesa e fai clic su Avanti .
Nella finestra di dialogo successiva, seleziona l'opzione di registrazione. È possibile scrivere lo stato di esecuzione del piano di manutenzione in un file di testo oppure inviare un'e-mail di avviso. Seleziona l'opzione desiderata e fai clic su Avanti .
Nella finestra di dialogo successiva è possibile visualizzare il riepilogo delle attività eseguite per creare il piano di manutenzione. Esaminali e fai clic su Fine .
Una volta creato il piano, la Procedura guidata del piano di manutenzione completa con successo.
Crea un piano di manutenzione personalizzato utilizzando la superficie Maintenance Plan Designer
Come ho spiegato, la Procedura guidata del piano di manutenzione ha alcune attività di base predefinite che non offrono più controllo e opzioni di personalizzazione. Ad esempio, se desideri eseguire uno script SQL prima di eseguire qualsiasi attività di manutenzione, non può essere eseguito utilizzando la procedura guidata.
Per creare un piano di manutenzione personalizzato, apri SQL Server Management Studio, espandi Gestione , fai clic con il pulsante destro del mouse su Piani di manutenzione e seleziona Nuovo piano di manutenzione .
Nella finestra di dialogo, specifica il nome desiderato del piano di manutenzione e fai clic su OK .
Il Progettista del piano di manutenzione si apre. Ha due sezioni. Nella prima sezione è possibile specificare il nome e la descrizione del piano di manutenzione. Puoi modificare le proprietà del sottopiano esistente o aggiungere i sottopiani ai piani di manutenzione esistenti.
La descrizione dei singoli componenti:
Quando crei un nuovo piano di manutenzione, SQL crea un sottopiano predefinito denominato Subplan_1 . Possiamo modificarne le proprietà. Per modificare il sottopiano predefinito, fai clic su Modifica proprietà del sottopiano pulsante. In alternativa, selezionare il sottopiano dalla vista griglia e fare doppio clic su di esso. Le Proprietà del sottopiano si apre la finestra di dialogo. Specificare il nome desiderato del sottopiano e fare clic su OK .
Come accennato in precedenza, creeremo un lavoro di manutenzione per eseguire il controllo della coerenza del database. Trascina Attività di verifica dell'integrità del database dal Piano di manutenzione casella degli strumenti e passa a Progettazione del piano di manutenzione superficie.
Fare doppio clic su Attività di verifica dell'integrità del database . L'attività di verifica dell'integrità del database si apre la finestra di dialogo.
Nella finestra di dialogo, seleziona la connessione SQL Server da Connessione casella a discesa. Puoi anche creare una nuova connessione facendo clic su Nuovo pulsante. Quando fai clic su Database/i casella a discesa, si apre una finestra di dialogo con più opzioni. Puoi eseguire controlli di coerenza su:
- Tutti i database
- Solo database di sistema (master, msdb, modello, TempDB)
- Banca dati utente
- Banche dati specifiche.
Puoi anche ignorare l'elenco dei database offline. Come accennato, vogliamo eseguire un controllo di coerenza su FileStream_Demo Banca dati. Seleziona Demo_FileStream da Questi database elenco e fai clic su OK .
Una volta completata l'attività di verifica dell'integrità del database, pianificarne il tempo di esecuzione. Per farlo, fai clic sul Calendario pulsante nella barra degli strumenti.
In alternativa, puoi fare doppio clic sul sottopiano per aprire le proprietà e fare clic sul Calendario accanto al Programma casella di testo.
Il nuovo programma di lavoro si apre la finestra di dialogo. Come accennato, il lavoro deve essere eseguito ogni domenica alle 00:00, quindi creare la pianificazione di conseguenza. Nel Nome casella di testo, specificare il nome desiderato del lavoro, selezionare il tipo di pianificazione desiderato. Nella Frequenza sezione, seleziona Settimanale in Si verifica casella di testo. Il lavoro verrà eseguito una volta alla settimana, quindi seleziona 1 in Ricorre ogni casella di testo. Sotto, seleziona Domenica . Nella Frequenza giornaliera nella sezione, specifica l'ora nella sezione Si verifica una volta alle casella di testo. Il lavoro verrà eseguito alle 00:00, quindi inserisci 00:00:00 in esso. Infine, seleziona la data di inizio del lavoro e fai clic su OK .
Una volta creata la pianificazione, puoi visualizzare il riepilogo della pianificazione nella Programma colonna della vista griglia del sottopiano.
Una volta creato il piano di manutenzione, salvalo. Puoi visualizzare il piano di manutenzione nel Piano di manutenzione directory in Gestione .
Il servizio SQL Server Agent esegue il piano di manutenzione; quindi il programma del piano di manutenzione è elencato sotto il Lavoro directory. Per visualizzarlo, apri SSMS, espandi SQL Server Agent ed espandi Offerte di lavoro .
È possibile eseguire il piano di manutenzione manualmente. Per farlo, fai clic con il pulsante destro del mouse su Piano di manutenzione e fai clic su Esegui .
Il piano di manutenzione viene completato correttamente. Puoi visualizzare il rapporto facendo clic su Rapporto e selezionando il pulsante Visualizza rapporto opzione.
È inoltre possibile spostare l'attività di manutenzione esistente in un altro server esportandola nel file system e distribuendola manualmente su un altro server. Come accennato, i piani di manutenzione del database sono pacchetti di servizi di integrazione archiviati nel database MSDB. Per esportare i piani di manutenzione nel file system, connettiti ai servizi di integrazione utilizzando SQL Server Management Studio, espandi i Pacchetti archiviati nodo, quindi espandi Piani di manutenzione , fai clic con il pulsante destro del mouse sul piano di manutenzione denominato Lavoro di verifica della coerenza del database e seleziona Esporta pacchetto .
Il pacchetto di esportazione si apre la finestra di dialogo. Nella Posizione del pacchetto casella a discesa, seleziona File system . Nel Percorso pacchetto casella di testo, inserisci la posizione in cui salvare il piano di manutenzione e fai clic su OK.
Il piano di manutenzione verrà esportato nella posizione desiderata.
Riepilogo
In questo articolo ho spiegato:
- Che cosa sono i piani di manutenzione;
- Prerequisiti per creare piani di manutenzione;
- Come creare piani di manutenzione personalizzati;
- Come creare un piano di manutenzione utilizzando la procedura guidata;
- Come esportare un piano di manutenzione nel file system.
Strumento utile:
dbForge Studio per SQL Server:potente IDE per la gestione, l'amministrazione, lo sviluppo, il reporting e l'analisi dei dati di SQL Server.