Este artigo explicará como resolver bancos de dados duvidosos do SQL Server. Às vezes, um banco de dados é marcado como duvidoso por acidente. 1. Primeiro confirme se o backup dos arquivos .mdf e .ldf foi feito.
2. Crie um novo banco de dados com o mesmo nome no SQL Server e interrompa o serviço SQL Server.
3. Substitua os arquivos .mdf e .ldf correspondentes ao novo banco de dados pelos arquivos .mdf e .ldf originais.
4. Reinicie o serviço SQL Server. Você verá que o banco de dados está com status suspeito.
5. Execute o seguinte comando no SQL Query Analyzer para permitir que as tabelas do sistema sejam atualizadas:
use mastergosp_configure 'permitir atualizações', 1reconfigure com overridego
6. Coloque este banco de dados em modo de emergência:
atualizar sysdatabases definir status = 32768 onde nome = 'db_name'go
7. Use o comando DBCC CHECKDB para verificar erros no banco de dados:
DBCC CHECKDB('nome_bd')GO
8. Se o comando DBCC CHECKDB falhar, vá para a etapa 10, caso contrário, coloque o banco de dados no modo de usuário único antes de tentar repará-lo:
sp_dboption 'db_name','usuário único','true'DBCC CHECKDB('db_name', REPAIR_ALLOW_DATA_LOSS)GO
Se você for avisado de que o banco de dados não está no modo de usuário único ao executar o comando DBCC CHECKDB('db_name', REPAIR_ALLOW_DATA_LOSS), reinicie o serviço SQL Server e continue tentando.
9. Se o comando DBCC CHECKDB('db_name', REPAIR_ALLOW_DATA_LOSS) falhar, vá para a etapa 10, caso contrário, se o erro no banco de dados for reparado com sucesso:
Execute novamente o comando DBCC CHECKDB('db_name') para confirmar se não há erros no banco de dados.
Limpe o status suspeito do banco de dados: sp_resetstatus 'db_name'
Limpe o status do modo de usuário único do banco de dados: sp_dboption 'db_name','single user','false'
Reinicie o serviço SQL Server. Se tudo estiver normal, o banco de dados foi restaurado com sucesso.
10. Se as etapas acima não resolverem o problema, consulte o documento anexo e tente restaurar os dados no banco de dados reconstruindo o log de transações. Se você tiver apenas arquivos MDF, o problema será mais complicado e precisaremos reconstruir o log de transações diretamente:
1. Crie um novo banco de dados com o mesmo nome no SQL Server e interrompa o serviço SQL Server.
2. Use o arquivo ldf original para substituir o arquivo .mdf correspondente ao banco de dados recém-criado e exclua seu arquivo de log (.ldf).
3. Inicie o serviço SQL Server e coloque o banco de dados em modo de emergência (igual ao acima: Etapa 5 e Etapa 6).
4. Pare e reinicie o serviço SQL Server.
5. Execute o seguinte comando para reconstruir o arquivo de log do banco de dados: (O exemplo a seguir é necessário usar o nome real do banco de dados)
DBCC REBUILD_LOG('cas_db', 'D:cas_dbcas_db_Log.LDF')
6. Substitua o banco de dados no modo de usuário único.
7. Tente novamente usando o comando DBCC CHECKTABLE ou DBCC CHECKDB para verificar e corrigir erros no banco de dados
-