Perché eseguire DBCC CHECKDB?
DBCC CHECKDB controlla l’integrità logica e fisica di tutti gli oggetti in un database e fornisce informazioni su qualsiasi corruzione.
Poiché eseguire DBCC CHECKDB è un compito esaustivo delle risorse, si consiglia di eseguirlo su un server di produzione quando c’è meno traffico possibile, o meglio ancora, poiché uno dei modi per accelerare il processo DBCC CHECKDB, è trasferire il lavoro su un server diverso automatizzando un processo ed eseguire CHECKDB dopo un ripristino del database. Poiché un processo di backup è una copia di un database e un database ripristinato sarà esattamente lo stesso di un database online, quindi se ci sono state incongruenze o problemi saranno nel backup e trovati in un ripristino. Utilizzando questo approccio, entrambi i ripristini verranno testati e i backup verificati senza alcun impatto su un database di produzione.
Eseguire DBCC CHECKDB dopo un ripristino può anche essere una buona pratica se la qualità di un backup è sconosciuta.
In questo articolo, descriveremo come automatizzare un DBCC CHECKDB dopo un ripristino del database automatizzando DBCC CHECKDB dopo un ripristino del database utilizzando un lavoro di SQL Server Agent e piani di manutenzione.
Come automatizzare DBCC CHECKDB dopo un ripristino del database utilizzando un job SQL Server Agent
Per automatizzare DBCC CHECKDB dopo un ripristino del database utilizzando SQL Server Agent:
- Selezionare un Nuovo Job dal nodo SQL Server Agent Jobs Jobs
-
Creare un primo passo e specificare un backup del database da ripristinare utilizzando il seguente script:
RESTORE DATABASE AdventureWorks2014CheckDB FROM DISK = 'E:\EncBackup\AdventureWorks2014_Full_20150612_1916.bak' WITH RECOVERYGO
-
Aggiungere un secondo passo per eseguire DBCC CHECKDB in un database ripristinato aggiungendo il seguente script T-SQL:
DBCC CHECKDB (AdventureWorks2014CheckDB)
Per utilizzare diversi DBCC CHECKDB opzioni utilizzare il seguente script T-SQL:
Per controllare i valori di colonna e di controllo ci sono i valori di colonna di intervallo:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH DATA_PURITY
Per sottomettere inutili messaggi informativi:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH NO_INFOMSGS
controllare le viste indicizzate, spaziale, e gli indici XML:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH EXTENDED_LOGICAL_CHECKS
Per controllare solo la struttura fisica di un database:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH PHYSICAL_ONLY
Per applicare la tabella condivisa di chiusura:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH TABLOCK
Queste opzioni possono essere combinate tranne CON PHYSICAL_ONLY opzione che non può essere combinato con alcune opzioni, che sarà spiegato più avanti in questo articolo.
- Programma un lavoro alla frequenza di esecuzione desiderata.
Sebbene relativamente facile da configurare utilizzando un lavoro di SQL Server Agent per queste operazioni richiede la scrittura di script T-SQL e una conoscenza della sintassi delle opzioni DBCC CHECKDB, nonché una conoscenza di ciascuna funzionalità di opzione e possibilità di combinazione.
Come automatizzare DBCC CHECKDB dopo un ripristino del database utilizzando Maintenance Plan
I piani di manutenzione possono essere utilizzati anche per eseguire questa azione. Sebbene la barra degli strumenti Piani di manutenzione non contenga un’attività di ripristino, è possibile utilizzare l’attività T-SQL.
Per automatizzare il comando DBCC CHECKDB dopo il ripristino di un database utilizzando Piani di Manutenzione:
- Dal nodo di Gestione nel riquadro Esplora Oggetti, al di sotto di Piani di Manutenzione di selezionare il Nuovo Piano di Manutenzione
- Nel Nuovo Piano di Manutenzione il nome di un nuovo piano
-
Dal Piano di Manutenzione della barra degli strumenti selezionare Esegui Istruzione T-SQL Task
-
Doppio slick il compito e incollare uno script T-SQL:
-
Aggiungi Verificare l’Integrità del Database Compito di un Piano di Manutenzione Attività barra degli strumenti:
-
Doppio clic su un’attività e selezionare un database per eseguire l’operazione contro:
-
Quando un piano di manutenzione è impostare una pianificazione come un processo di Agente SQL Server:
Lo svantaggio di questo approccio, oltre ad essere più complicato da impostare è che attualmente, Verificare l’Integrità del Database di Attività offre solo gli indici di controllo come opzione aggiuntiva ed esegue un DBCC CHECKDB completo controllo.
Verranno aggiunte altre opzioni in una versione di SQL Server 2016.