none
Como recuperar base de dados com os arquivos .mdf .ldf ? RRS feed

  • Pergunta

  • Pessoal

    A minha situacão e a seguinte:

    Esses dia ocorreu um um erro no servidor que nos fomos obrigado a refazer o servidor. na pressa Paramos o SQL e copiamos os  arquivos .mdf e .ldf da pasta padrão do sql (isso manualmente) com isso eu precisava saber como faço para recuperar a base somente com esses dois arquivos??

    Ja grato

    ATT

    Jonathan Santos

    quarta-feira, 11 de março de 2009 18:02

Respostas

  • Jonatahn,

    execute o seguinte comando

    USE [master]  
    GO  
    CREATE DATABASE [database_name] ON   
    ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\<database name>.mdf' ),  
    ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\<database name>.ldf' )  
     FOR ATTACH ;  
    GO 

    direto em uma Query




    ou como o Marcelo informou acima, execute a stored procedure sp_attach_db

    exec sp_attach_db 
    database_name , 'd:\database_name.mdf' 
    *OBS.  Você pode manter os arquivos do banco de dados em qualquer diretório










    att.
    • Marcado como Resposta Jonathan Santos quinta-feira, 12 de março de 2009 20:17
    quarta-feira, 11 de março de 2009 18:28

Todas as Respostas

  • Ola Jonathan

    Basta vc "atachar" os arquivos

    sp_attach_db

    Att.
    Marcelo Fernandes

    quarta-feira, 11 de março de 2009 18:20
    Moderador
  • Jonatahn,

    execute o seguinte comando

    USE [master]  
    GO  
    CREATE DATABASE [database_name] ON   
    ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\<database name>.mdf' ),  
    ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\<database name>.ldf' )  
     FOR ATTACH ;  
    GO 

    direto em uma Query




    ou como o Marcelo informou acima, execute a stored procedure sp_attach_db

    exec sp_attach_db 
    database_name , 'd:\database_name.mdf' 
    *OBS.  Você pode manter os arquivos do banco de dados em qualquer diretório










    att.
    • Marcado como Resposta Jonathan Santos quinta-feira, 12 de março de 2009 20:17
    quarta-feira, 11 de março de 2009 18:28
  • Miguel

    Esse comando e para criar uma nova base? pois o que eu preciso é recuperar a base com esses arquivos .mdf.

    quando eu executo este comando ele me mostra o seguinte erro:

    Msg 5120, Level 16, State 101, Line 1
    Unable to open the physical file "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\Infotec_CRM_MSCRM.mdf". Operating system error 32: "32(The process cannot access the file because it is being used by another process.)".

    o que eu faco?

    ATT

    Jonathan Santos
    quarta-feira, 11 de março de 2009 19:09
  • Jonathan,

    Esta mensagem é exibida pq vc esta tentando atachar um arquivo que esta em uso por outro database.

    Att.
    Marcelo Fernandes
    quarta-feira, 11 de março de 2009 19:50
    Moderador
  •  Jonathan,

    O comando também pode ser utilizado para criar um novo banco de dados em um diretório especifico. Mas a instrução "FOR ATTACH"   no final, indica que é para anexar o banco de dados que se econtra no diretório especificado.

    Com relação a msg de erro,  provavelmente o arquivo está alocado por um processo e por causa disso não pode ser acessado. Geralmente isto acontece quando o banco de dados que vc está tentando anexar ja está anexado e possui conexões ativas.

    Existem vários outros motivos também. Por exemplo, vc pode não ter permissão para acessar o arquivo.

    Procure descrobir por qual motivo o acesso ao arquivo está sendo bloqueado.

    Você provavelmente tem um back up destes arquivos né ?  Restaure o back up em outro dirétorio e tente anexar o banco a partir daí.


    att.
    • Sugerido como Resposta Miguel_Faria sexta-feira, 15 de maio de 2009 20:46
    quarta-feira, 11 de março de 2009 20:18
  • Obrigado Miguel ocorreu tudo certo.
    quinta-feira, 12 de março de 2009 20:17