Che cosa è WARNING: Database < db-name> is SUSPECT? Probabilmente hai visto un database contrassegnato come SOSPETTO in SSMS e non sai cosa rappresenta. Leggi l’articolo qui sotto per scoprire maggiori dettagli su questo!
Che cosa è WARNING: Database db-name è SOSPETTO?
A volte possiamo trovarci di fronte a una situazione critica, a causa del fatto che il nostro database SQL Server entra in modalità sospetta. A quel punto, il database non può più essere utilizzato e non è possibile eseguire alcun lavoro.
Il motivo principale per cui il database entra in modalità sospetto è perché il gruppo di file primario è stato danneggiato e il database non può essere recuperato durante l’avvio di SQL Server.
Inoltre, il database può entrare nello stato SOSPETTO per più altri motivi, che possono includere:
- un malfunzionamento del sistema che potrebbero essere causati da uso improprio arresto del server di database
- un file di REGISTRO danneggiato o danneggiato file MDF
- nel caso in cui non c’è più spazio sul Disco
- SQL Server è in grado di completare un rotolo in avanti o operazione di rollback
- limitazioni in termini di spazio per i file system FAT32 e altri motivi
per ripristinare il database e recuperare da questo stato, si dovrà eseguire la procedura seguente:
- inizierà a cambiare lo stato del database eseguendo l’sp_resetstatus stored procedure
EXEC sp_resetstatus 'TestDB'
- Impostare il database di “Emergenza” modalità
ALTER DATABASE TestDB SET di EMERGENZA;
- consulta la banca dati per eventuali incongruenze
DBCC checkdb('TestDB');
- nel caso In cui si verificano errori durante l’istruzione DBCC fase, quindi mettere il database in MODALITÀ UTENTE SINGOLO con l’aiuto di query riportata di seguito:
ALTER DATABASE TestDB SET SINGLE_USER CON ROLLBACK IMMEDIATA;
- Inoltre, a questo punto, per motivi di sicurezza si consiglia di effettuare un backup del database
- Dopo aver finito di fare un backup del database che si dovrebbe procedere per eseguire la query riportata di seguito. Ma ricorda che durante l’utilizzo della seguente query, con il parametro REPAIR_ALLOW_DATA_LOSS, stai eseguendo un’operazione unidirezionale che riparerà il tuo database ma tutte le azioni eseguite durante questo processo non possono essere ripristinate. Non esiste una soluzione per tornare a uno stato precedente del database, motivo per cui si consiglia vivamente di eseguire il backup suggerito nel punto precedente
DBCC CheckDB ('TestDB', REPAIR_ALLOW_DATA_LOSS);
- L’ultima query da eseguire è impostare il database in modalità MULTIUTENTE
MODIFICA DATABASE TestDB IMPOSTA MULTI_UTENTE;
- Il passaggio finale consiste nell’aggiornare il server del database e verificare che la connettività al database funzioni. Dopo questo punto gli utenti dovrebbero avere la possibilità di connettersi al database. In caso di perdita di dati è possibile ripristinare il database di cui è stato eseguito il backup in precedenza