Il database di sistema ‘msdb’ di SQL Server 2005 può danneggiarsi: ecco come ripararlo.
Tra i database di sistema di Microsoft SQL Server 2005, ve ne è uno denominato ‘msdb’ che viene usato normalmente come supporto per le pianificazioni ed altre operazioni di manutenzione o di backup.
Può accadere che si danneggi, e che di conseguenza molte operazioni diventino impossibili.
Dato che non si tratta di un normale database, non può essere oggetto di normali operazioni quali attach e detach, ma bisogna seguire una procedura diversa.
1. Spegnere SQL Server
Innanzitutto dovrete spegnere il servizio di SQL Server. Esistono diversi metodi; uno dei più veloci è di aprire SQL Server Management Console ed eseguire il seguente comando:
SHUTDOWN
Attendete il completamento del comando ed uscite dalla console.
2. Lanciare SQL Server in modalità master
Per poter eseguire i comandi successivi (specificatamente per poter fare un detach del database ‘msdb’), dovrete lanciare SQL Server col trace flag 3608.
Dovrete portarvi nella cartella dei programmi di SQL Server (‘C:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\Binn’ per le installazioni in italiano o ‘C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn’ per le installazioni in inglese) e lanciare il seguente comando:
sqlservr.exe -c -T3608 -s <NOMEISTANZA>
Il comando non restituisce subito il prompt di DOS (C:>), che verrà restuituito quando SQL Server verrà nuovamente spento.
3. Detach-are il database di sistema ‘msdb’
Per detach-are il database di sistema ‘msdb’ dovrete riaprire SQL Server Management Console, che potrebbe mostrare alcuni messaggi di avvertimento, visto che ci si trova in una modalità master.
La console comunque è pronta per accettare comandi; lanciate il seguente:
sp_detach_db 'msdb'
Attendete il completamento del comando ed uscite dalla console.
4. Rinominare i files del database ‘msdb’
Ora che il database ‘msdb’ è disconnesso, potete rinominare i files che lo costituiscono (.mdf e .ldf), che si trovano in ‘C:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\Data’ per le installazioni in italiano o in ‘C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data’ per le installazioni in inglese.
5. Lanciare lo script di ricostruzione
Lo script di rigenerazione si trova nella cartella di installazione di SQL Server (‘C:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\Install’ per le installazioni in italiano o ‘C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Install’ per le installazioni in inglese); dopo che vi sarete portati nella cartella, lanciate il seguente comando:
osql -E -S <NOMESERVER>\<NOMEISTANZA> -i instmsdb.sql
e attendete il termine delle operazioni.
6. Operazioni finali
La procedura è terminata. Spegnete e riaccendete normalmente SQL Server, e reinserite, se del caso, le informazioni memorizzate nel database di sistema ‘msdb’.