Come utilizzare il comando DBCC CHECKDB per la riparazione del database SQL?

Summary: Il comando Database Console Command (DBCC) CHECKDB viene utilizzato per identificare gli errori nel database di SQL Server. DBCC CHECKDB offre tre opzioni di riparazione per risolvere gli errori relativi al database. Questo articolo illustra come utilizzare il comando DBCC CHECKDB per riparare il database SQL. Inoltre, si parlerà di un software di riparazione MS SQL specializzato che è possibile utilizzare quando DBCC CHECKDB non riesce a riparare il database.

DBCC CHECKDB viene utilizzato per verificare l’integrità fisica e logica degli oggetti del database, le relazioni degli indici e altri controlli strutturali. Il fallimento di uno di questi controlli segnala gli errori di consistenza come parte del comando della console del database.

Il metodo migliore per riparare gli errori nel database, segnalati da DBCC CHECKDB, è quello di eseguire l’ultimo backup noto come consigliato da Microsoft. Tuttavia, se il backup non è disponibile o è danneggiato, si può provare ad accedere al database in stato di emergenza.

Lo stato di emergenza consente di accedere a un database contrassegnato come sospetto. Consente inoltre di eseguire le opzioni di riparazione DBCC CHECKDB per risolvere la corruzione del database. Una volta che il database diventa accessibile, ripararlo utilizzando l’opzione di riparazione di livello minimo.

Nota: le operazioni di riparazione escludono qualsiasi vincolo applicato a o tra le tabelle. Pertanto, se una tabella ha uno o più vincoli, è necessario eseguire DBCC CHECKCONSTRAINTS dopo un’operazione di riparazione.

Come utilizzare il comando DBCC CHECKDB?

Prima di utilizzare DBCC CHECKDB, esaminiamo la sua sintassi.

Sintassi:

DBCC CHECKDB
[ ( db_name | db_id | 0
[ , NOINDEX
| , { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ]  
     ) ]       
[ WITH
{
[ ALL_ERRORMSGS ]
[ , EXTENDED_LOGICAL_CHECKS ]
[ , NO_INFOMSGS ]
[ , TABLOCK ]
[ , ESTIMATEONLY ]
[ , { PHYSICAL_ONLY | DATA_PURITY } ]
[ , MAXDOP = number_of_processors ]
} }  
     ]  
 ]

Ci sono alcune opzioni che si possono usare per eseguire i controlli di coerenza del database usando DBCC CHECKDB. Le opzioni sono le seguenti:

Prerequisiti per l’esecuzione di DBCC CHECKDB

Prima di eseguire DBCC CHECKDB per eseguire controlli di coerenza su un database o ripararlo, è necessario assicurarsi che il sistema soddisfi i seguenti prerequisiti.

  1. SQL Server Management Studio (SSMS) deve essere installato sul computer.
  2. L’utente deve avere i privilegi di amministratore.

 Passi per utilizzare DBCC CHECKDB per riparare il database SQL

Aprite SSMS e seguite questi passaggi per riparare il database SQL utilizzando DBCC CHECKDB:

Nota: nei passaggi indicati di seguito, utilizzeremo il nome del database come Dbtesting. Assicurarsi di sostituire DBtesting con il nome del database.

Passo 1: Impostare il database in modalità di emergenza

Cambiate lo stato del database in modalità EMERGENZA, che fornisce all’amministratore un accesso di sola lettura. Per mettere il database in modalità EMERGENZA, eseguite la seguente query in SSMS:

ALTER DATABASE [Dbtesting] SET EMERGENZA

SET EMERGENZA

Fase 2: Verifica degli errori di corruzione

Una volta che l’amministratore è in grado di accedere al database, eseguire il seguente comando DBCC CHECKDB per analizzare gli errori di corruzione nel database:

DBCC CHECKDB (Dbtesting)

DBCC CHECKDB (Dbtesting)

Se DBCC CHECKDB rileva errori nel database, consiglia le opzioni di riparazione appropriate per risolvere il problema.

Passo 3: Impostare il database di SQL Server in modalità SINGLE_USER

Prima di utilizzare le opzioni di riparazione di DBCC CHECKDB, mettete il database corrotto in modalità SINGLE_USER per evitare che altri utenti modifichino i dati durante il processo di riparazione. Per impostare la modalità del database SQL su SINGLE_USER, seguite i seguenti metodi:

Metodo 1: Utilizzo dell’interfaccia grafica utente (GUI)

Aprite SSMS ed eseguite i seguenti passaggi per impostare il database in modalità SINGLE_USER:

fare clic su Proprietà
Finestra Proprietà del database
Opzione SINGLE_USER

Metodo 2: utilizzo di comandi Transact-SQL (T-SQL)

È anche possibile impostare il database in modalità SINGLE_USER, eseguendo la seguente query T-SQL in SSMS:

ALTER DATABASE Dbtesting SET SINGLE_USER

ALTER DATABASE

Passo 4: Riparazione del database

Dopo aver modificato la modalità del database in SINGLE_USER, eseguire DBCC CHECKDB con l’opzione di riparazione REPAIR_ALLOW_DATA_LOSS per riparare il database di SQL server.

DBCC CHECKDB (N ‘Dbtesting’, REPAIR_ALLOW_DATA_LOSS) CON ALL_ERRORMSGS, NO_INFOMSGS;

VAI REPAIR_ALLOW_DATA_LOSS

VAI REPAIR

Nota: Sebbene l’opzione di riparazione REPAIR_ALLOW_DATA_LOSS aiuti a riparare tutti gli errori segnalati nel database di SQL server, non è l’opzione migliore per riparare la corruzione del database. Questa opzione di riparazione causa la perdita di dati. Infatti, Microsoft consiglia di utilizzare l’opzione REPAIR_ALLOW_DATA_LOSS come ultima risorsa quando non è possibile ripristinare un database dal backup. Se non si dispone di un backup e non si può rischiare di perdere i dati, utilizzare un software di riparazione MS SQL specializzato per riparare il database senza alcuna perdita di integrità.

Passo 5: Riportare il database alla modalità MULTI_USER

Dopo aver riparato il database, impostare il database in modalità MULTI_USER eseguendo il seguente comando:

ALTER DATABASE Dbtesting SET MULTI_USER

ALTER DATABASE Dbtesting

Cosa fare quando DBCC CHECKDB fallisce?

L’esecuzione del comando DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS potrebbe richiedere l’eliminazione di alcune pagine del database, con conseguente perdita di dati. Inoltre, i comandi DBCC CHECKDB potrebbero fallire e restituire un errore quando si tratta di file di database SQL gravemente danneggiati.

In tal caso, utilizzare un software di riparazione MS SQL specializzato, come Stellar Repair for MS SQL. Il software ripara i database MS SQL gravemente danneggiati e ne ripristina tutti i componenti, mantenendo l’integrità del database. Il software di recupero SQL aiuta a ripristinare l’accesso al database con un impegno manuale e di tempo minimo.

Caratteristiche principali:

Per conoscere il processo di funzionamento completo del software, guardate il video

Conclusione

Un database corrotto può causare inutili tempi di inattività e perdita di dati. Per superare gli errori relativi al database, ripristinare il database dal backup più recente. Se il backup corrente del database non esiste o se il backup stesso è corrotto, è possibile utilizzare l’opzione di riparazione DBCC CHECKDB ‘REPAIR_ALLOW_DATA_LOSS’ per riparare il database. Tuttavia, questa opzione di riparazione comporta il rischio di perdita di dati. Inoltre, DBCC CHECKDB potrebbe non risolvere il problema.

Utilizzate il software Stellar Repair for SQL per riparare il database MS SQL e recuperare tutti i suoi componenti con precisione, mantenendo la struttura del database e l’integrità degli oggetti del database.

Related Post

Exit mobile version