Come recuperare il database MS SQL dalla modalità sospetta?
Riassunto: 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.
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:
- Il sistema non riesce ad aprire il dispositivo in cui risiede il file di dati o di registro del server SQL.
- Il server SQL si blocca o si riavvia nel bel mezzo di una transazione, causando un file di log delle transazioni corrotto o inaccessibile.
- SQL Server tenta di aprire un database e il file appartenente a tale database è già aperto dal software antivirus installato sul sistema.
- Il database è stato chiuso in modo anomalo.
- Mancanza di spazio su disco.
- SQL non può completare un’operazione di rollback o roll forward.
- I file di database sono trattenuti dal sistema operativo, dal software di backup di terze parti, ecc.
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.
Fase 2: Selezionare l’opzione 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
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.
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
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)
Fase 8: Portare il database in modalità multiutente:
ALTER DATABASE nome_database SET MULTI_USER
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.
Fase 3: una volta selezionato il file, premere Ripara.
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.
Fase 5: Fare clic su Salva nel menu File per salvare il file riparato.
Fase 6: dalla finestra Salva database, eseguire le seguenti operazioni:
- Selezionate MDF in Salva con nome.
- Salvare il file riparato in Nuovo database o in Live database.
- Compilare i dettagli in corrispondenza di Connetti al server.
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
- Ripara i file MDF e NDF danneggiati.
- Recupera tabelle, trigger, chiavi, indici, stored procedure, impostazioni predefinite, regole, schemi, ecc.
- Supporta MS SQL 2019, 2017, 2016, 2014, 2012, 2008 R2 e versioni inferiori.
- Fornisce diverse opzioni di salvataggio del database riparato, tra cui MS SQL (MDF), CSV, HTML e XLS.
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.