¡Y yo que pensaba que el SQL no se corrompía¡.  Esta tarde/noche estaba trabajando con el SQL cuando de repente  Zaaas: database ‘msdb’ cannot be opened due to inaccesible files or insufficiente memory or disk space”.  Al abrir el Management Studio y desplegar el nodo “Databases” aparecía constantemente este error además del correspondiente en el log de eventos: “The log scan number (309:536:1) passed to log scan in database ‘msdb’ is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf). If this error occurred during replication, re-create the publication. Otherwise, restore from backup if the problem results in a failure during startup”.

En mi caso y después de algunas pruebas y “vueltas” la solución ha sido:

  1. Copiar los ficheros “MSDBData.mdf” y “MSDBLog.ldf” desde la ruta “C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Template Data” a la ruta “C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA”. 
  2. Ejecutar desde una nueva consuta del Management Studio el script “instmsdb.sql”  situado en la carpeta “C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Install”

Es posible comprobar el estado de la base de datos, ejecutando la consulta 

select state_desc databasestatus_sysdtabase from sys.databases where name =’msdb‘  

cuyo resultado será “RECOVERY_PENDING”, sin embargo y una vez completados los pasos anteriores el resultado pasará a ser “ONLINE” lo que indicará que todo ha vuelto a la normalidad, ¡ooooooppppppps, que alegría!.

Nota: Aunque no estoy seguro, es posible que partiendo de cualquier fichero “MSDBData.mdf” y “MSDBLog.ldf”, de un compañero, máquina virtual, etc. y siguiendo estos pasos el problema quede resuelto.

Saludos
Juanlu