SQL Server 2000/2005 : Errore 926, SUSPECT DB
Testo del messaggio
“Durante il processo di recupero il database '%1!' è stato contrassegnato come SUSPECT. Impossibile aprirlo. Per ulteriori informazioni, vedere il log degli errori di SQL Server.”
Spiegazione
Il database è stato contrassegnato come sospetto in seguito all'esito negativo del processo di recupero con cui viene impostato uno stato transazionale coerente. Ciò può verificarsi durante le operazioni seguenti:
- Avvio di un'istanza di Microsoft® SQL Server™ 2000.
- Collegamento di un database.
- Utilizzo delle procedure RESTORE database o RESTORE LOG.
Azione
Esaminare il log degli errori di Microsoft SQL Server per determinare la causa dell'errore. Se dopo l'ultimo tentativo di recupero con esisto negativo SQL Server è stato riavviato, individuare il motivo dell'esito negativo del recupero nei log degli errori precedenti.
Se il recupero ha avuto esito negativo a causa di un errore di I/O persistente, di una pagina incompleta o di altri possibili problemi hardware, risolvere il problema hardware e ripristinare il database da una copia di backup. In mancanza di copie di backup, utilizzare le opzioni di correzione di DBCC CHECKDB.
Se non è possibile risolvere il problema, rivolgersi al servizio di supporto tecnico. Tenere a portata di mano il log degli errori di SQL Server.
Reimpostazione di un database contrassegnato come “SUSPECT”
In Microsoft® SQL Server™ 2000 viene restituito l'errore 1105 e la colonna status di sysdatabases viene impostata su sospetto se SQL Server non è in grado di completare il recupero di un database in quanto lo spazio disponibile sul disco rigido è esaurito. Per risolvere il problema, seguire questa procedura:
- Eseguire sp_resetstatus.
- Utilizzare ALTER DATABASE per aggiungere un file di dati o un file di log al database.
- Interrompere e riavviare SQL Server.
Lo spazio aggiuntivo creato dal nuovo file di dati o dal file di log consente di completare il recupero del database.
- Liberare spazio su disco e rieseguire l'operazione di recupero.
La stored procedure sp_resetstatus rimuove il flag di database sospetto senza modificare le altre opzioni del database.
Attenzione Utilizzare la stored procedure sp_resetstatus solo se indicato dal servizio di supporto tecnico o nella sezione Risoluzione dei problemi. In caso contrario, il database potrebbe venire danneggiato.
Dato che questa procedura modifica le tabelle di sistema, prima di crearla l'amministratore di sistema deve consentire l'aggiornamento delle tabelle tramite la procedura seguente:
USE master
GO
sp_configure 'allow updates', 1
GO
RECONFIGURE WITH OVERRIDE
GO
Dopo la creazione della procedura, gli aggiornamenti alle tabelle di sistema devono essere disattivati immediatamente:
sp_configure 'allow updates', 0
GO
RECONFIGURE WITH OVERRIDE
GO
La stored procedure sp_resetstatus può essere eseguita solo dall'amministratore di sistema. Chiudere sempre SQL Server immediatamente dopo l'esecuzione della procedura.
La sintassi è la seguente:
sp_resetstatus database_name
ESEMPIO UTILIZZO:
USE master
GO
sp_configure 'allow updates', 1
GO
RECONFIGURE WITH OVERRIDE
GO
sp_resetstatus ‘DB NAME’
//Verifica coerenza db dopo aver tolto il flag “Suspect”
ALTER DATABASE 'db name' SET SINGLE_USER
GO
DBCC CHECKDB ('db name') WITH PHYSICAL_ONLY
GO
è CONTROLLO VELOCE PER L’I/O
Links:
Check the event viewer log, SQL server error log to findout why the database is getting in SUSPECT mode. I doubt on the disk subsytem or network issues on the server.
Articles on resolving the Suspect status:
http://support.microsoft.com/kb/889266
http://www.devx.com/vb2themax/Tip/18624
http://www.sql-server-performance.com/absolutenm/templates/?a=1249&z=1 (bit info on SQL 2000)