none
Atachar (anexar) BD a partir de MDF com LDF corrompido RRS feed

  • Pergunta

  • Ola pessoal

    .

    estou com uma situação um tanto  grave, de perda de dados,

    um cliente teve problemas na maquina, e colocou o HD (instalado SQL Server 2000) em outra maquina temporariamente, (sem reinstalar nada - funcionou alguns dias) porém, começou a dar erros até que o banco de dados não funcionou mais

    não foi mais feito backup tambem, desde o dia do desastre.

    .

    .

    O sql server 2000 não sobe mais nessa maquina, apenas consegui copiar o mdf e o ldf (do jeito que estavam)

    para não perder os dados mais recentes, a unica maneira que pensei foi anexar o banco novamente, e ver o que fosse preciso fazer para coloca-lo em funcionamento novamente.

    .

    Porém, não estou conseguindo fazer isso de forma alguma.

    .

    Inicialmente tentei anexar no proprio sql server 2000 (em outra maquina) com o log junto, e não deu..

    dá um erro, "passed to log scan in database" is invalid

    algo assim...

    .

    depois tentei um comando para anexar sem o log, tambem não deu.

    USE [master]
    GO
    exec sp_attach_single_file_db @dbname = 'banco',
    @physname = 'D:\Arquivos de programas\Microsoft SQL Server\MSSQL$SQL2000\Data\banco_Data.MDF'

    Could not open new database 'banco'. CREATE DATABASE is aborted.
    Device activation error. The physical file name 'C:\Arquivos de programas\Microsoft SQL Server\MSSQL\data\banco_Log.LDF' may be incorrect.

    (vejam que o caminho que trouxe no erro nem é o que eu estou usando, padrão da instalação do sql server 2000 quando ja tinha o 2008 instalado)

    .

    .

    Tentei tambem no SQL Server 2008, que eu vi que tinha comandos diferentes...( FOR ATTACH_REBUILD_LOG ;)

    mas não deu tambem, dá o seguinte erro:

    Falha de ativação do arquivo. O nome do arquivo físico "C:\Arquivos de programas\Microsoft SQL Server\MSSQL\data\banco_Log.LDF" pode estar incorreto.
    O log não pode ser recriado porque havia transações/usuários abertos quando o banco de dados foi fechado, nenhum ponto de verificação ocorreu para o banco de dados, ou o banco de dados era somente leitura. Este erro poderia ocorrer se o arquivo de log de transações fosse excluído manualmente ou fosse perdido devido a uma falha de hardware ou do ambiente.

    .

    .

    Não achei em lugar nenhum sobre esse erro.

    Alguem pode dar uma luz do que fazer, nesse caso?

    o mdf tambem está corrompido , não vai ser possivel atacha-lo?

    em ultimos casos, volto um backup de 1 semana atras
    • Editado Julio Costi quarta-feira, 21 de novembro de 2012 14:39
    quarta-feira, 21 de novembro de 2012 14:38

Respostas

  • Olá Julio,

    Tente Enganar o sql server, crie um banco de dados com o mesmo nome do seu banco e o mesmo nome de arquivos de dados e de log.

    Execute o comando abaixo para deixar a base offline

    ALTER DATABASE banco SET OFFLINE

    Agora você substitui os arquivos do banco que você criou pelos arquivos corrompidos .mdf e .ldf

    E tente deixar a base online novamente

    ALTER DATABASE banco SET ONLINE


    [ ]´s,
    Lukas Baldan

    • Marcado como Resposta Julio Costi segunda-feira, 26 de novembro de 2012 11:53
    quarta-feira, 21 de novembro de 2012 16:01

Todas as Respostas

  • Olá Julio,

    Tente Enganar o sql server, crie um banco de dados com o mesmo nome do seu banco e o mesmo nome de arquivos de dados e de log.

    Execute o comando abaixo para deixar a base offline

    ALTER DATABASE banco SET OFFLINE

    Agora você substitui os arquivos do banco que você criou pelos arquivos corrompidos .mdf e .ldf

    E tente deixar a base online novamente

    ALTER DATABASE banco SET ONLINE


    [ ]´s,
    Lukas Baldan

    • Marcado como Resposta Julio Costi segunda-feira, 26 de novembro de 2012 11:53
    quarta-feira, 21 de novembro de 2012 16:01
  • hummm interessante! vou tentar

    sera que é mais provavel q dê certo no 2008 ou 2000?

    valeu mesmo!!


    Julio C.

    quarta-feira, 21 de novembro de 2012 16:10
  • Julio,

    Tente fazer isso diretamente no ambiente que você esta tentando anexar o banco de dados.

    O local em que se encontra os arquivos .mdf e .ldf estão acessíveis para o usuário que o SQL Server esta conectado?


    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]

    quinta-feira, 22 de novembro de 2012 16:00
    Moderador
  • feedback

    .

    Ola Junior

    .

    obrigado pela sugestão,

    .

    até estava acessivel, via remote desktop.. agora estou com ela presencimaente aqui

    mas a maquina está sem condições de mexer mais.. acho que é o HD que está baleado

    .

    eu fiz o que o amigo acima falou, de criar outro BD, colocar offline, substituir os novos MDF e LDF criados pelos antigos...

    claro, dai quando coloca online novamente, ele volta como suspect...

    daí mexi um pouco no novo BD, até que consegui deixa-lo em emergencia.

    não consegui deixa-lo operante novamente... mas ficou acessivel, e não tendo mais o que fazer, dentro do meu conhecimento, achei a melhor solução exportar/importar os dados para um novo BD zerado (com a mesma estrutura , etc, claro).

    .

    a principio deu certo.


    • Editado Julio Costi segunda-feira, 26 de novembro de 2012 11:40 correção texto
    segunda-feira, 26 de novembro de 2012 11:38