Dicembre 14, 2021

Guida completa per SQL Database Integrity Check

Sommario

  • Informazioni su SQL DATABASE Integrity Check
  • Quanto spesso è necessario eseguire controlli di integrità del database sul database SQL Server?
  • Come controllare l’integrità del database in SQL Server?
  • Usa SQL Server Management Studio
  • Usa Verifica integrità database Task
  • Cosa fare se il controllo integrità database fallisce?
  • Alternativa per correggere gli errori di coerenza del database SQL
  • Conclusione

Informazioni su SQL Database Integrity Check

L’esecuzione di controlli di integrità fa parte del piano di manutenzione del database di SQL Server che aiuta a garantire la coerenza del database.

Per essere più precisi, l’esecuzione di controlli di integrità aiuta a mantenere l’efficacia del database di produzione o del backup ripristinato rilevando errori di coerenza (corruzione) nel database.

Con quale frequenza è necessario eseguire controlli di integrità del database sul database SQL Server?

Eseguire controlli di integrità può essere un processo che richiede molto tempo e risorse. Pertanto, è importante capire quanto spesso è necessario eseguire controlli di integrità. Per decidere questo, prendiamo due esempi:

  • Il database SQL è diventato corrotto o danneggiato. Non hai i backup. L’unico modo per ripristinare il database è eseguire l’opzione di riparazione, che comporta il rischio di perdita di dati. In tal caso, l’esecuzione regolare di controlli di integrità (giornalieri o orari) può rilevare la corruzione del database in anticipo, riducendo al minimo la perdita di dati e i tempi di inattività.
  • Si dispone di una strategia di backup del database completo in atto, che consente di ripristinare un database SQL con nessuna o minima perdita di dati e tempi di inattività. In tal caso, si può considerare l’esecuzione di controlli di integrità una volta alla settimana.

Come controllare l’integrità del database in SQL Server?

Di seguito sono riportati i due metodi per verificare l’integrità del database SQL:

Metodo 1-Utilizzare SQL Server Management Studio (SSMS)

  • Apri SSMS e connettiti all’istanza di SQL Server.
  • Dai database, fare clic con il pulsante destro del mouse sul database per il quale si desidera eseguire controlli di integrità, quindi fare clic sull’opzione Nuova query.
  • Nella finestra’ Nuova query’, digitare DBCC CHECKDB, quindi fare clic sul pulsante Esegui per eseguire la query.

Se si esegue il rapporto di query “0 errori di allocazione e 0 errori di coerenza”, significa che il database è sano. Se segnala errori di coerenza, controlla il livello minimo di riparazione consigliato che dovrai eseguire nella parte inferiore del riepilogo del messaggio (fai riferimento all’immagine qui sotto):

l'Esecuzione di DBCC CHECKDB per Eseguire il Controllo di Integrità del Database

Figura 1 – l’Esecuzione di DBCC CHECKDB per Eseguire il Controllo di Integrità del Database

Metodo 2 – Uso Verificare l’Integrità del Database Compito

Attenersi alla seguente procedura per controllare db integrità utilizzo ‘Verificare l’Integrità del Database Attività” in SQL Server Integration Services (SSIS):

  • Open SQL Server Data Tools (SSDT).
Strumenti dati SQL Server
  • Nella finestra che si apre, fare clic su File > Nuovo > Progetto.
Select-New-Project
  • Nella finestra “Nuovo progetto” visualizzata, selezionare Progetto Integration Services, quindi fare clic su OK.
seleziona Progetto Integration Services
  • In SSIS Toolbox, in Altre attività, fare doppio clic sull’opzione Controlla l’integrità del database. L’attività aiuta a verificare l’integrità logica e fisica degli oggetti del database.
fare doppio clic sull'opzione Verifica integrità database attività
  • Fare doppio clic sulla casella Verifica integrità database attività. Si aprirà una finestra pop-up ‘Verifica integrità database Task’. In questa finestra, creare una nuova connessione facendo clic sul pulsante Nuovo.
Create-New-Database-Connection
  • Nella finestra di dialogo “Proprietà connessione” che si apre, immettere il nome della connessione, il nome del server SQL e scegliere il metodo di autenticazione di Windows (consigliato). Fare clic su OK.
Proprietà di connessione
  • Fare clic sulla freccia a discesa accanto alla casella di testo Database:. Selezionare uno o più database per i quali si desidera eseguire controlli di integrità. Premere OK.
freccia a discesa accanto ai database)
  • Facoltativamente, è possibile fare clic sul pulsante Visualizza T-SQL per visualizzare l’istruzione DBCC CHECKDBA per eseguire un controllo di integrità pianificato sui database selezionati.
Visualizza il pulsante T-SQL

Nota: selezionare la casella di controllo ‘Includi indici’ se si desidera eseguire controlli di integrità anche sulle pagine indice del database.

  • Dichiarazione DBCC CHECKDB per eseguire un controllo di integrità pianificato.
Dichiarazione DBCC CHECKDB
  • Fare doppio clic sull’attività Esegui istruzione T-SQL e aggiungere le attività con un vincolo.
  • Fare clic sul pulsante ‘Avvia debug’ per eseguire il pacchetto ‘Verifica integrità database Task’ per eseguire tutte le attività create.
Avviare il debug

Le attività verranno visualizzate con lo stato verde se tutto è OK.

Ma, a volte, i controlli di integrità potrebbero non riuscire e mostrare errori. Ciò avverrà quando il database SQL è danneggiato.

Cosa fare se il controllo dell’integrità del database SQL non riesce?

Se il controllo dell’integrità del database SQL non riesce su un database, è consigliabile ripristinare il database SQL dal backup più recente. Se non si dispone di backup, è possibile eseguire il processo di riparazione del database eseguendo il comando DBCC CHECKDB con l’opzione ‘REPAIR_ALLOW_DATA_LOSS’.

Leggi questo: come riparare il database SQL utilizzando il comando DBCC CHECKDB?

L’opzione ‘REPAIR_ALLOW_DATA_LOSS’ può correggere gli errori di coerenza del database. Tuttavia, aiuta solo a correggere la struttura fisica del database, non l’integrità dei dati interni. In altre parole, l’esecuzione del comando DBCC CHECKDB con l’opzione ‘REPAIR_ALLOW_DATA_LOSS’ può causare la perdita di dati.

È anche possibile correggere gli errori di coerenza del database SQL, eseguendo il comando’ REPAIR_REBUILD’. Il comando viene solitamente utilizzato per correggere il problema in indici non cluster. Questa opzione non comporta la perdita di dati.

Alternativa per correggere gli errori di coerenza del database SQL

Se l’esecuzione del comando DBCC CHECKDB non è riuscita a preservare l’integrità e la coerenza dei dati del database SQL Server, è possibile utilizzare uno strumento alternativo di riparazione del database SQL, ad esempio Stellar Repair for MS SQL per risolvere il problema.

Il software ripara gravemente danneggiato file SQL database MDF / NDF preservando l’integrità dei dati. Può correggere la corruzione nei database SQL su entrambi i sistemi Windows e Linux. Lo strumento di riparazione SQL può recuperare tutti gli oggetti del database, inclusi i record di tabella eliminati di SQL versione 2019, 2017, 2016 e versioni precedenti.

Conclusione

Quando si esegue SQL Server controllare periodicamente l’integrità del database per assicurarsi che il database sia sano e non sia danneggiato. Questo articolo spiega i passaggi che è necessario eseguire in SSIS per eseguire controlli di integrità su un database SQL Server. Discute anche l’uso del comando DBCC CHECKDB con le opzioni di riparazione quando il controllo di integrità fallisce. Tuttavia, l’esecuzione di DBCC CHECKDB con il comando ‘REPAIR_ALLOW_DATA_LOSS’ può causare perdita di dati e causare errori di incoerenza. In tal caso, un’alternativa migliore è utilizzare Stellar Repair per MS SQL per correggere gli errori di coerenza del database senza il rischio di perdita di dati.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.