- master: registra toda informação de nível de sistema de uma instância SQL Server. É o repositório para todos os objetos que residem no esquema sys;
- msdb: usado pelo SQL Server Agent para o alerta de agendamento e tarefas , e registrar operadores; contém também tabelas de histórico de tarefas de backup e restore;
- model: modelo para criação todos os bancos de dados. Customizações são registradas neste banco;
- tempdb: uma área de trabalho para criação de objetos temporários (tabelas, variáveis, stored procedures, cursores, resultados de ordenações, etc.). É recriado sempre que a instância reinicia;
- resource: um banco de dados somente leitura que contém a cópia de todos objetos de sistema
- distribution: este banco somente existe se o servidor foi configurado como Distribuidor de replicação. Armazena informações como metadados e dados históricos de todos os tipos de replicação.
Reiniciei o serviço MSSQLServer com os seguintes parâmetros:
"C:\Arquivos de programas\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn\sqlservr.exe" -c -T3608 -m -s SQLEXPRESSConectei à instância, via prompt de comando com a ajuda do aplicativo sqlcmd:
sqlcmd -S computador\sqlexpress -E
Com isso, pude desconectar o banco com problemas :
1) EXEC sp_detach_db 'msdb'Isso mesmo, vamos sair do aplicativo e executar o sqlcmd com um novo parâmetro:
2) go
1) exit
sqlcmd -S computador\sqlexpress -E -i"C:\Arquivos de programas\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Install\instmsdb.sql"
O arquivo instmsdb.sql é utilizado para a criação do banco msdb. É interessante renomear ou apagar o arquivo MSDBData.mdf e MSDBLog.ldf antes de executar este comando.
O banco é recriado do zero (todas as informações já existentes serão perdidas).
Digite Ctrl-C no console do serviço SQL Server que foi inicializado manualmente e inicie a sua instância (através do console 'Serviços', pelo SSMS ou prompt de comando).
Mas nada melhor do que o bom e velho backup!
Referências:
http://msdn.microsoft.com/en-us/library/ms190190.aspx