Como reconstruir la MSDB.

Por algún motivo, después de un reinicio inesperado de un servidor, el SQL empezó a mostrar el siguiente error:

2012-11-22 11:18:41.65 spid17s An error occurred while processing the log for 
database 'msdb'.  If possible, restore from backup. If a backup is not available, 
it might be necessary to rebuild the log.

Buscando en Internet encontré este artículo sobre las bases de datos del sistema y su reconstrucción, que incluye la base de datos msdb.

A partir de ahi, realice lo siguiente:

1. Detener el servicio de SQL Server:

NET STOP MSSQLSERVER

2. Desde la linea de comandos, abierta en modo ADMINISTRADOR, lo inicie con un flag 3608:

NET START MSSQLSERVER /T3608

3. Una vez que inicio el servidor SQL Server, podes separar (desatachar) la base de datos msdb:

SQLCMD -U SA -P CLAVE -S MISERVER -dmaster -Q"EXEC sp_detach_db msdb"

4. Borro los archivos de la MSDB, mdfs y ldfs.

5. Ejecuto el script instmsdb.sql, buscarlo en la carpeta de instalacion del SQL SERVER o en el DVD de SQL.

SQLCMD -U SA -P CLAVE -S MISERVER -i"C:\SQL Server\MSSQL10_50.MSSQLSERVER
\MSSQL\Install\instmsdb.sql" -o"C:\temp\instmsdb.out"

6. Revisar el C:\temp\instmsdb.out en busca de errores…

7. Reiniciar el servicio de SQL normalmente.

NET STOP MSSQLSERVER
NET START MSSQLSERVER

8. Revisar el Agent… listo!