none
Banco sem o arquivo LDF RRS feed

  • Pergunta

  • Olá Pessoal,

    Houve um erro no meu banco de dados enquanto eu executavo o comando DBCC SHRINKDATABASE. Depois disso não consegui mais abrir o banco.

    Já tentei attach, mas dá um erro dizendo que o banco não foi corretamente desatachado. Já tentei criar um banco novo e jogar o MDF antigo sobre o novo e fazer attach e a diz que o ldf não pertence a aquele mdf. O pior é que não tem backup atualizado.

    Neste banco estão os dados financeiros da empresa e a gerente do financeiro está me cobrando a restauração dados.

    Alguem tem algum sugestão?

    Grato pela ajuda.

    Altair

     

    segunda-feira, 28 de fevereiro de 2011 21:55

Respostas

  • Daxxel

    Tente o SP_ATTACH_SINGLE_FILE_DB, abaixo o exemplo do BOL

    EXEC sp_attach_single_file_db @dbname = 'AdventureWorks2008R2', 
      @physname = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\AdventureWorks2008R2_Data.mdf';
    

    Att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    segunda-feira, 28 de fevereiro de 2011 22:17
    Moderador
  • Daxxel,

    Vamos por partes, você tentou realizar um DBCC ShrinkDatabase e teve problemas. Certo, por acaso você tem um backup deste banco de dados?

    Um do procedimentos que você poderia tentar realizar seria executar um Create Database Attach_Rebuild_Log ou então utilizar o comando Create Database e a opção Attach para atachar o banco sem o arquivo de log, veja abaixo os exemplos:

    USE master;
    GO
    sp_detach_db Archive;
    GO
    CREATE DATABASE Archive
       ON (FILENAME = 'D:\SalesData\archdat1.mdf') 
       FOR ATTACH ;
    GO
    GO
    sp_detach_db Archive;
    GO
    CREATE DATABASE Archive
          ON (FILENAME = 'D:\SalesData\archdat1.mdf')
          FOR ATTACH_Rebuild_Log ;
    Go
    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    terça-feira, 1 de março de 2011 17:50
    Moderador

Todas as Respostas

  • Daxxel,

     

    Não entendi direito, voce consegue visualisar a base pelo management studio? se sim, existe algum statos a direita do nome da base? se não, qual o erro exato ao tentar atachar o arquivo mdf?


    ------------------------------------------------------------- Oracle OCA11g
    segunda-feira, 28 de fevereiro de 2011 22:06
    Moderador
  • Daxxel

    Tente o SP_ATTACH_SINGLE_FILE_DB, abaixo o exemplo do BOL

    EXEC sp_attach_single_file_db @dbname = 'AdventureWorks2008R2', 
      @physname = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\AdventureWorks2008R2_Data.mdf';
    

    Att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    segunda-feira, 28 de fevereiro de 2011 22:17
    Moderador
  • Estou usando a query abaixo e já está rodando a 15 horas sem erro, mas também sem resultado. Devo continuar a esperar?

    USE

     

    [master]

    GO

    CREATE

     

    DATABASE [Daxxel] ON

    (

     

    FILENAME = N'C:\SQL_Data\Daxxel.mdf' ),

    (

     

    FILENAME = N'C:\SQL_Data\Daxxel_log.ldf' )

    FOR

     

    ATTACH ;

    GO

    terça-feira, 1 de março de 2011 13:12
  • Este é o erro que dá qundo tento attachar o mdf sem o ldf.

    The log cannot be rebuilt because the database was not cleanly shut down.

    terça-feira, 1 de março de 2011 14:41
  • Daxxel,

    Vamos por partes, você tentou realizar um DBCC ShrinkDatabase e teve problemas. Certo, por acaso você tem um backup deste banco de dados?

    Um do procedimentos que você poderia tentar realizar seria executar um Create Database Attach_Rebuild_Log ou então utilizar o comando Create Database e a opção Attach para atachar o banco sem o arquivo de log, veja abaixo os exemplos:

    USE master;
    GO
    sp_detach_db Archive;
    GO
    CREATE DATABASE Archive
       ON (FILENAME = 'D:\SalesData\archdat1.mdf') 
       FOR ATTACH ;
    GO
    GO
    sp_detach_db Archive;
    GO
    CREATE DATABASE Archive
          ON (FILENAME = 'D:\SalesData\archdat1.mdf')
          FOR ATTACH_Rebuild_Log ;
    Go
    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    terça-feira, 1 de março de 2011 17:50
    Moderador
  • Daxxel,

    Interrompa este procedimento, com certeza, tem algum procedimento que esta gerando bloqueios na conclusão da transação?

    Você utilizou o stored procedure sp_detach_db?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    terça-feira, 1 de março de 2011 17:52
    Moderador