Come recuperare il database MS SQL dalla modalità sospetta?

Summary: Leggete questo post per trovare le soluzioni per recuperare il database MS SQL contrassegnato come sospetto. Descrive le istruzioni passo-passo per risolvere il problema del "database sospetto del server SQL" eseguendo i comandi Transact-SQL (T-SQL) in SQL Server Management Studio (SSMS). Inoltre, fornisce una soluzione alternativa per ripristinare il database utilizzando uno strumento di recupero SQL.

Quando il database SQL passa in modalità sospetta, diventa inaccessibile. In questa situazione, non sarà possibile connettersi al database né recuperarlo durante l’avvio del server.

Figura 1: Database in modalità Sospetto

Consultate l’infografica qui sotto per scoprire le soluzioni rapide per recuperare il database dalla modalità sospetta in SQL Server 2008 e versioni successive.

Quando il database SQL passa in modalità sospetta?

Quando SQL server sospetta che il gruppo di file primario del database sia danneggiato o che il file del database sia mancante, lo stato del database viene impostato su “Sospetto”.

Inoltre, esiste un’ampia gamma di errori che possono portare il database SQL in modalità sospetta. Alcuni di essi sono elencati di seguito:

Come si fa a far uscire il database SQL dalla modalità sospetta?

NOTA: È possibile provare a ripristinare il database in modalità sospetta da un buon backup noto. Se il backup non è disponibile, procedere con i passaggi seguenti.

Seguite i passaggi in sequenza indicati di seguito per recuperare il database MS SQL dalla modalità sospetta:

Passo 1: aprire SSMS e collegarsi al database.

Figura 2: Collegamento al database

Fase 2: Selezionare l’opzione Nuova query.

Figura 3: Selezionare una nuova query

Fase 3: nella finestra Query editor, inserire il seguente codice per disattivare il flag di sospetto sul database e impostarlo su EMERGENZA:

EXEC sp_resetstatus ‘db_name’;

ALTER DATABASE db_name SET EMERGENZA

Figura 4: Impostazione del database in modalità di emergenza

NOTA: Se non è possibile impostare il database in modalità di emergenza, passare alla soluzione successiva.

Fase 4: Un database sospetto potrebbe non essere danneggiato. È possibile determinare se il database è danneggiato o meno eseguendo il seguente comando DBCC CHECKDB.

DBCC CHECKDB (‘nome_database’)

Questa dichiarazione segnala eventuali errori di coerenza (se riscontrati) nel database e consiglia l’esecuzione dell’opzione di riparazione di livello minimo per risolvere la corruzione.

Prima di avviare il processo di riparazione, è necessario impostare il database in “modalità utente singolo”. In questo modo si impedisce ad altri utenti di apportare modifiche al database durante il processo di riparazione.

Figura 5: Verifica della consistenza del database

Passo 5: ora portiamo il database in modalità utente singolo e annulliamo le transazioni precedenti eseguendo il comando seguente:

ALTER DATABASE nome_database SET SINGLE_USER CON ROLLBACK IMMEDIATO

Figura 6: Impostazione del database in modalità utente singolo

Fase 6: Eseguire un backup completo dei file danneggiati per evitare la perdita di dati.

Fase 7: Dopo aver messo il db in modalità UTENTE SINGOLO, provare a correggere gli errori di coerenza usando l’opzione REPAIR_REBUILD di DBCC CHECKDB. Questa opzione può riparare rapidamente le righe mancanti negli indici non raggruppati. Inoltre, può essere utilizzata per operazioni di riparazione più lunghe, come la ricostruzione di un indice.

DBCC CHECKDB (‘nome_database’, REPAIR_REBUILD)

Tuttavia, se viene suggerito REPAIR_ALLOW_DATA_LOSS come livello minimo di riparazione, eseguire DBCC CHECKDB con l’opzione di riparazione suggerita. La sintassi è la seguente:

DBCC CHECKDB (‘nome_database’, REPAIR_ALLOW_DATA_LOSS)

Figura 7: Riparazione del database con DBCC CHECKDB

Fase 8: Portare il database in modalità multiutente:

ALTER DATABASE nome_database SET MULTI_USER

Figura 8: Impostazione del database in modalità multiutente

ALTER DATABASE nome_database SET MULTI_USER

Fase 9: Aggiornare il server di database.

Dopo aver completato questi passaggi, dovreste essere in grado di connettervi al database. In caso di perdita di dati, avrete il backup del database da cui ripristinare (passaggio 6).

E se questa soluzione non funziona?

Se il file di database del server è gravemente danneggiato, i passaggi sopra descritti potrebbero non riuscire a ripristinare il database. A questo punto, provare a ripristinare il database utilizzando Stellar Repair for MS SQL.

Il software è in grado di risolvere i comuni errori di corruzione del database SQL che si verificano a causa di motivi quali il database in modalità sospetta e molti altri. Il software utilizza algoritmi avanzati per riparare e ripristinare il database SQL dalla modalità sospetta allo stato normale (online).

Come recuperare il database SQL dalla modalità sospetta con lo strumento Stellar SQL Recovery?

NOTA: assicurarsi di chiudere l’istanza del server prima di eseguire il software Stellar Repair for MS SQL.

Passo 1: Scaricare, installare ed eseguire il software Stellar Repair for MS SQL.

Fase 2: dalla finestra Seleziona database, scegliere Sfoglia o Cerca per selezionare il file di database SQL (.mdf) del database sospetto.

Figura 9: Selezionare il file del database

Fase 3: una volta selezionato il file, premere Ripara.

Figura 10 – Ripara il file selezionato

NOTA: Assicurarsi di deselezionare la casella di controllo “Includi record eliminati” se non si desidera recuperare i record eliminati.

Fase 4: Anteprima del file MDF riparato per gli oggetti di database del server SQL recuperabili.

Figura 11: Finestra di anteprima

Fase 5: Fare clic su Salva nel menu File per salvare il file riparato.

Figura 12: Menu File

Fase 6: dalla finestra Salva database, eseguire le seguenti operazioni:

Figura 13: Finestra Salva database

Passo 7: fare clic su Salva.

Aprire SSMS e collegare il db (contenente il file MDF riparato). Sarà possibile accedere al database.

Caratteristiche aggiuntive del software

Il software è apprezzato dagli MVP di Microsoft.

Il software è apprezzato dagli MVP di Microsoft.

Conclusione

In questo post sono stati discussi i metodi su ‘Come ripristinare il database MS SQL dalla modalità sospetta’. L’approccio migliore è quello di ripristinare il database da un backup sano. Se non si dispone di un backup, è possibile utilizzare la modalità EMERGENZA per accedere al database e ripararlo. Tuttavia, è possibile che non si riesca a eseguire il rollback delle transazioni attive quando il database è entrato in modalità sospetta. Inoltre, l’utilizzo dell’opzione REPAIR_ALLOW_DATA_LOSS come livello minimo di riparazione può comportare la perdita di dati. Un’alternativa migliore è quella di utilizzare un software specializzato nella riparazione di database SQL che aiuta a riparare e ripristinare il database da uno stato sospetto a uno stato normale.

Related Post

Exit mobile version