SQL: come riparare il database di sistema ‘msdb’ danneggiato

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.

important

Importante! La procedura che descriverò di seguito rigenererà il database di sistema ‘msdb’ come appena installato, quindi tutto il suo contenuto andrà perso. Vi raccomando inoltre di effettuare il backup di tutti i dati di tutti i database dell’istanza. La procedura è riservata ad utenti esperti, e non mi assumo nessuna responsabilità; eventualmente provatelo prima su un database di test.

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’.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *