none
minha base ficou como "Suspected" RRS feed

  • Pergunta

  • Olá a todos.

     

    Estou com o seguinte problema:

    Movi o arquivo de log DADOS_log.ldf para o desktop e rodei a aplicação imaginando que o arquivo seria recriado.

     

    Resultado: Minha base ficou com status Suspected

    Retornei o arquivo para o mesmo lugar.. restartei o mssql e nada, desliguei a máquina..nada..

     

    No arquivo de log tenho isto..

    Bypassing recovery for database 'DADOS' because it is marked SUSPECT.

     

    Nao encostei no arquivo base de dados,  como posso reverter isto ????

     

    Muito obrigado por qualquer que seja a ajuda.

    Jhow

    quinta-feira, 25 de setembro de 2008 05:28

Respostas

  • Gustavo bom dia.
    Muito obrigado por sua resposta.

    Consegui reparar o problema.
    quinta-feira, 25 de setembro de 2008 11:55
  • Olá Jhow,

     

    Se puder classifique a resposta.

     

    Achei interessante você perguntar antes de fazer. Normalmente bases suspect deixam os DBAs bem nervosos e acabamos rodando diversos comandos antes de parar e pensar um pouco. Os comandos que citei são um teste inicial que não irão comprometê-lo.

     

    Gostaria de comentar que o REPAIR_ALLOW_DATA_LOSS resolve o problema mas pode eliminar dados da base e deve ser usado sempre como última alternativa e não como primeira. Se você consegue resolver o problema sem correr os riscos de perder dados, não devemos pensar em REPAIR_ALLOW_DATA_LOSS logo de início. Só devemos usá-lo após tentar todas as alternativas possíveis (considere até voltar um backup e usar a estratégia de Tail Log se for o caso).

     

    [ ]s,

     

    Gustavo

    quinta-feira, 25 de setembro de 2008 12:07

Todas as Respostas

  • Bom Dia,

     

    Eu sugeriria os seguintes passos iniciais (nessa ordem)

     

    - Tentar voltar o arquivo antigo (não recorte, copie e cole)

    - Usar a procedure sp_resetstatus

    - Usar o comando DBCC DBRECOVER

     

    Poste novamente senão funcionar

     

    [ ]s,

     

    Gustavo

     

    quinta-feira, 25 de setembro de 2008 11:51
  • Jhow,

     

    Veja se este exemplo ajuda:

    Code Snippet

     

    --Verificando o Status do banco
    Select * from sys.sysdatabases


    Where Name='Estoque'

    --Mudando o estado do banco para Emergency
    Alter Database Estoque
     Set Emergency

     

    --Verificando o Status do banco
    Select * from sys.sysdatabases
    Where Name='Estoque'

     

    Use Estoque
    go

    --Permitindo acesso somente para um usuário
    sp_dboption 'Estoque', 'dbo use only', false
    go
    sp_dboption 'Estoque','single_user', true
    go

     

    --Verificando a integridade física e lógica do banco, reconstruíndo os dados perdidos
    dbcc checkdb ('SeuBanco',repair_allow_data_loss)
    go

     

    --Voltando o acesso ao banco para multi usuário.
    sp_dboption 'Estoque', 'dbo use only', false
    go
    sp_dboption 'Estoque','single_user', false
    go

     

    --Verificando o Status do banco
    Select * from sys.sysdatabases
    Where Name='Estoque'

     

     

     

    quinta-feira, 25 de setembro de 2008 11:54
    Moderador
  • Gustavo bom dia.
    Muito obrigado por sua resposta.

    Consegui reparar o problema.
    quinta-feira, 25 de setembro de 2008 11:55
  • Olá Jhow,

     

    Se puder classifique a resposta.

     

    Achei interessante você perguntar antes de fazer. Normalmente bases suspect deixam os DBAs bem nervosos e acabamos rodando diversos comandos antes de parar e pensar um pouco. Os comandos que citei são um teste inicial que não irão comprometê-lo.

     

    Gostaria de comentar que o REPAIR_ALLOW_DATA_LOSS resolve o problema mas pode eliminar dados da base e deve ser usado sempre como última alternativa e não como primeira. Se você consegue resolver o problema sem correr os riscos de perder dados, não devemos pensar em REPAIR_ALLOW_DATA_LOSS logo de início. Só devemos usá-lo após tentar todas as alternativas possíveis (considere até voltar um backup e usar a estratégia de Tail Log se for o caso).

     

    [ ]s,

     

    Gustavo

    quinta-feira, 25 de setembro de 2008 12:07
  • Gustavo.
    Sou muito grato por seu auxílio!
    Muito Obrigado




    sexta-feira, 26 de setembro de 2008 00:19
  • Amigo. 
    Com seu exemplo consegui caminhar até a resolução do problema!
    Muito obrigado mesmo!
    sexta-feira, 26 de setembro de 2008 00:21