Msdb Database Suspected/Corrupted-Solution (SQL 2000&2005)


In Sql server 2000you start the server with trace flag 3608.

In SQL Server 
Enterprise Manager, right-click the server name, and then click Properties.
On the General tab, click Startup Parameters.
Add the following new parameter:
-c -m -T3608
After this restart the sql server and detatch the msdb database and move the mdf and ldf files from the default folder C:\Program Files\Microsoft SQL Server\MSSQL\DAta
Then recreate msdb file by executing in new query window
instmsdb.sql (C:\Program Files\Microsoft SQL erver\MSSQL\Install)
Then remove-c -m -T3608 from the startup parameters in SQL Server Enterprise Manager
Then stop and restart the sql server 2000 and then recreate the maintenance plans


In SQL Server 2005
Detach the msdb database and install/create new msdb database. This will solve the problem. But the problem is that SQL Server 2005 does not allow to detach a system database. This will be solved by the following
another way is (you start the server with trace flag 3608. )
Start>Sql Server 2005>Configuration Tools>SQL Server Configuration Manager

Then click on SQL server 2005 services.
On the right side>Right click on SQL Server>Select Properties
Click on the Advance Tab and change the Parameters of Start up Parameters 
ie please add -m;-c;-T3608 in front of the existing parameter.
Then restart SQL server
detach the msdb database by query
use master
go
sp_detach_db ‘msdb’
go
and click Execute

Then move the existing mdf and ldf files of msdb from C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data 


Then recreate msdb files open the nstmsdb.sql(C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Install) in a new query window and execute, Then your msdb is restored. 

Before restarting the sql server remove the parameters (-m;-c;-T3608 )Then restart the sql server. Be and recreate the new maintenance plan.