none
Attachar Banco Em Outro Servidor RRS feed

  • Pergunta

  • Pessoal, bom dia!

    Tínhamos 2 bancos de dados em um servidor, mas deu "pau" no HD.

    Mandamos o HD para uma empresa que realiza recuperação, e os bancos foram recuperados.

    Instalei o SQL Server em um outro servidor e dei attach em um dos bancos;  subiu com sucesso. No outro banco já não deu certo, é apresentada a mensagem abaixo:

    Attach database failed for server

    an error ocurred while processing the log for database 'wf_prd'. 
    If possible, resotore from backup. If a backup is not available, it might be necessary to rebuild the log.
    Could nod open new database 'wf_prd'. CREATE DATABASE is aborted. (Microsoft SQL Server, Error: 9004)

    Como é possível attachar este banco?


    Obrigado,

    Denison Soares



    • Editado Denison Soares sexta-feira, 25 de maio de 2012 12:00
    • Movido Gustavo Maia Aguiar sexta-feira, 25 de maio de 2012 22:54 (De:SQL Server - Desenvolvimento Geral)
    sexta-feira, 25 de maio de 2012 11:59

Respostas

  • Você pode verificar se copiou todos os arquivos do banco a ser atachado(*.mdf e *.ldf).

    No caso desse banco que estás querendo recuperar, pode ser que você não tenha copiado o arquivo de log(*.ldf) ou ele pode estar corrompido.

    Caso tenha o arquivo de log(*.ldf) e tenha esquecido de copiar, copie e tente novamente. Caso o erro persista, você pode tentar atachá-lo usando o comando sp_attach_single_file_db passando como parâmetros o nome da base e o nome do arquivo com sua localização completa. Exemplo:

    USE [SEUBANCO]
    GO
    EXEC sp_attach_single_file_db @dbname = 'NOMEDESUABASE', 
        @physname = N'C:\CAMINHO\SEU_AQRUIVO_MDF.mdf'
    
    GO


    Antero Marques


    • Editado Antero Marques sexta-feira, 25 de maio de 2012 13:28
    • Sugerido como Resposta Antero Marques sexta-feira, 25 de maio de 2012 13:28
    • Marcado como Resposta Denison Soares segunda-feira, 28 de maio de 2012 14:58
    sexta-feira, 25 de maio de 2012 13:26

Todas as Respostas

  • Você pode verificar se copiou todos os arquivos do banco a ser atachado(*.mdf e *.ldf).

    No caso desse banco que estás querendo recuperar, pode ser que você não tenha copiado o arquivo de log(*.ldf) ou ele pode estar corrompido.

    Caso tenha o arquivo de log(*.ldf) e tenha esquecido de copiar, copie e tente novamente. Caso o erro persista, você pode tentar atachá-lo usando o comando sp_attach_single_file_db passando como parâmetros o nome da base e o nome do arquivo com sua localização completa. Exemplo:

    USE [SEUBANCO]
    GO
    EXEC sp_attach_single_file_db @dbname = 'NOMEDESUABASE', 
        @physname = N'C:\CAMINHO\SEU_AQRUIVO_MDF.mdf'
    
    GO


    Antero Marques


    • Editado Antero Marques sexta-feira, 25 de maio de 2012 13:28
    • Sugerido como Resposta Antero Marques sexta-feira, 25 de maio de 2012 13:28
    • Marcado como Resposta Denison Soares segunda-feira, 28 de maio de 2012 14:58
    sexta-feira, 25 de maio de 2012 13:26
  • Apenas complementando a resposta do Antero Marques,

    se você quiser explicitar o diretório para os arquivos de dados use o seguinte comando

    EXEC SP_ATTACH_DB @DBNAME = 'BANCO'
    FILENAME1 = 'c:\CAMINHO.MDF',
    FILENAME2 = 'C:\CAMINHO_LOG.LDF'

    Se útil, Classifique


    Dhiego Piroto - MCP | MCTS SQL Server 2008 Developer | Email: dhiegopiroto@gmail.com Blog: http://dhiegopiroto.wordpress.com/

    sexta-feira, 25 de maio de 2012 14:20
  • Pessoal, bom dia!

    Consegui subir o banco.

    Informamos à empresa que recuperou o HD que não estávamos conseguindo subir o banco. Através da engenharia reversa, geraram uns scripts e disponibilizaram um arquivo BAT. Executamos o BAT e o banco foi criado com todas as tabelas, views, demais objetos e dados.

    Obrigado,

    Denison Soares

    • Marcado como Resposta Denison Soares segunda-feira, 28 de maio de 2012 14:57
    • Não Marcado como Resposta Denison Soares segunda-feira, 28 de maio de 2012 14:58
    segunda-feira, 28 de maio de 2012 14:53