Ricostruire il database msdb

Se SQL Server Agent funziona correttamente, ma avete comunque problemi a schedulare delle operazioni di backup sui database, è possibile che a causa di un problema (normalmente di mancanza spazio) il database di sistema msdb si sia corroto e per questo motivo le vostre operazioni pianificate vanno in crush.

Come recita msdn, l’msdb database è usato sia da SQL Agent per schedulare alert e jobs che da altri servizi come Service Broker e Database Mail; dato che si tratta di un database di sistema, non potete eseguire su di esso normali operazioni quali attach e detach, ma per operare su questo db dovete seguire una procedura differente.

  • Come primo passo fate lo shutdown di SQL
  • aprite un prompt dei comandi e portatevi nella directory Binn di SQL (C:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\Binn per le versioni in italiano)
  • lanciate dal prompt SQL in modalita MASTER
    sqlservr.exe -c -T3608 -s <nomeistanza>
  • aprite una console di Management di SQL e fate il detach del db
    sp_detach_db ‘msdb’
  • uscite dalla console, andate nella cartella C:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\Data (per le versioni italiane) e rinominate i file del database msdb; sia il fine di dati .mdf e il log .ldf
  • dal prompt dei comandi portatevi in C:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\Install e lanciate lo script di ricostruzione
    osql -E -S <nomeserver>\<nomeistanza> -i instmsdb.sql
  • riavviate il servizio in modalità normale

In questo modo potete ripristinare il database, ma perderete tutti i dati in esso contenuti come ad esempio i piani di manutenzione e backup.

Per evitare di dover essere costretti a ricorrere a procedure di questo tipo consiglio sempre di eseguire i backup anche dei database di sistema.

Lascia un commento

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

Moderazione dei commenti attiva. Il tuo commento non apparirà immediatamente.