Jump to content

Archived

This topic is now archived and is closed to further replies.

Marcos Aurélio Jr.

Como abrir arquivo .mdf e .ldf?

Recommended Posts

Opa amigos, como vão?

A História é a seguinte, me foram passados alguns arquivos para que fossem extraídos os seus dados, esses arquivos são do tipo .mdf e .ldf, inicialmente foi sugerido que seriam arquivos do ACCESS, e que poderiam ser abertos por lá.

 

Contudo após falhar ao tentar abrir tais arquivos no ACCESS e pesquisando a origem dos arquivos, pude perceber que se tratam de extensões do SQLServer, o .mdf seria o banco e o .ldf o seu log.

 

Sendo assim, descobri que utilizando o SQL Manangment Studio, poderia ANEXAR (ATTACH) os arquivos, adicionando-os a uma instância pré-existente. Ao realizar tal procedimento inicialmente foi relatado erro de permissão ao acessar os arquivos, para solucionar copiei-os para a pasta DATA, diretório com os demais arquivos .mdf direcionados ao SQLServer na pasta /Arquivos de Programas/Microsoft SQL Server/MSSQLServer/... . Esta alteração resolveu o problema de permissão de acesso, todavia em seguida foi relatado um segundo erro, que tratando da incompatibilidade entre a versão utilizada para criação do arquivo (655) e a que estou utilizando para tentar acessá-lo (661), desta forma ao meu ver, teria de buscar a tal versão de criação para acessar o arquivo, ou ter acesso ao banco de dados onde foi criado, para solucionar tal questão.

Diante disso gostaria de saber a opinião de vocês sobre a situação acima, dicas, sugestões e depoimentos parecidos são bem vindos.

Obrigado.

Share this post


Link to post
Share on other sites

Marcos, bem vindo ao fórum.

 

Infelizmente o que mais acontece é quando pegamos um sistema legado e bases que desconhecemos.

Como você já "apanhou" e chegou a versão do arquivo (655) isso ajuda e muito.

Database version 655 é do SQL Server 2008

Database version 661 é do SQL Server 2008 R2

 

Mas tem outro porém: O tipo de versão do SQL, seja Express, Standard, Enterprise também pode influenciar.

 

Aconselho a você baixar a versão Trial do SQL2012 e "atachar" o banco para extrair os dados.

Para esta extração, utilize o DTSx (Import/Export), nativo do SQLServer. De uma procurada no fórum que vários materiais e até um tutorial que eu mesmo montei.

 

[]´s

Share this post


Link to post
Share on other sites

Marcos, bem vindo ao fórum.

 

Infelizmente o que mais acontece é quando pegamos um sistema legado e bases que desconhecemos.

Como você já "apanhou" e chegou a versão do arquivo (655) isso ajuda e muito.

Database version 655 é do SQL Server 2008

Database version 661 é do SQL Server 2008 R2

 

Mas tem outro porém: O tipo de versão do SQL, seja Express, Standard, Enterprise também pode influenciar.

 

Aconselho a você baixar a versão Trial do SQL2012 e "atachar" o banco para extrair os dados.

Para esta extração, utilize o DTSx (Import/Export), nativo do SQLServer. De uma procurada no fórum que vários materiais e até um tutorial que eu mesmo montei.

 

[]´s

Obrigado A Jr,

 

Então, nós tentamos aqui com o SQL Server 2012, porém foi quando apresentou essa mensagem de erro de versão. Daí o próximo passo seria instalar o SQL 2005 express, para ver se resolveria, porém como você disse que se tratam de verões 2008, vou tentar utiliza-las para ver no que dá. Acredito que funcione se for com a mesma função. Encontrei também um tutorial que diz para rodar a seguinte rotina :

 

EXEC sp_attach_db @dbname = N'AdventureWorks',

@filename1 = N'c:\Program Files\Microsoft SQL Server

\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf',

@filename2 = N'c:\Program Files\Microsoft SQL Server

\MSSQL.1\MSSQL\Data\AdventureWorks_log.ldf' ;

 

Ainda não testei, vou dar uma olhada nos outros tutoriais também como você disse, caso ache algo que funcione e retorno aqui.

 

Obrigado.

Share this post


Link to post
Share on other sites

No SQL2012 você consegue fazer este "atach" sim, mesmo pelo MMS quanto por linha de comando, não havendo necessidade de instalar uma versão do SQL2008. O que não consegueria fazer seria usar esta base do 2008 em uma instancia do 2005.

 

Tente esta linha de comando e não obtendo sucesso, retorne ao post que tem outras opções de comandos T-SQL.

 

[]´s e boa sorte

Share this post


Link to post
Share on other sites

No SQL2012 você consegue fazer este "atach" sim, mesmo pelo MMS quanto por linha de comando, não havendo necessidade de instalar uma versão do SQL2008. O que não consegueria fazer seria usar esta base do 2008 em uma instancia do 2005.

 

Tente esta linha de comando e não obtendo sucesso, retorne ao post que tem outras opções de comandos T-SQL.

 

[]´s e boa sorte

 

Tentei o "attach" utilizando o Management Studio, mas sempre apresenta o mesmo erro:

 

"The database 'GPWORK' cannot be opened because it is version 661. This server supports version 655 and earlier. A downgrade path is not supported.

Could not open new database 'GPWORK'. CREATE DATABASE is aborted. (Microsoft SQL Server, Erro: 948)"

 

Acho que trata da mesma coisa que tu falou, só que a minha instância é o 2012, e ainda assim não consigo abrir.

 

:(

Share this post


Link to post
Share on other sites

Hum, roda o seguinte comando e poste o resultado por favor:

 

SELECT -- SERVERPROPERTY('servername') As "Nome do Servidor",SERVERPROPERTY('productversion') As Versão,SERVERPROPERTY ('productlevel') As "Service Pack", SERVERPROPERTY ('edition') As Edição,@@Version As "Sistema Operacional"
[]´s

Share this post


Link to post
Share on other sites

 

Hum, roda o seguinte comando e poste o resultado por favor:

 

SELECT -- SERVERPROPERTY('servername') As "Nome do Servidor",SERVERPROPERTY('productversion') As Versão,SERVERPROPERTY ('productlevel') As "Service Pack", SERVERPROPERTY ('edition') As Edição,@@Version As "Sistema Operacional"
[]´s

 

 

Aparece o seguinte:

 

versão: 10.0.5500.0

Service: Pack: SP3

Edição: Express Edition

Sistema operacional: Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (Intel X86) Sep 22 2011 00:28:06 Copyright (coffee) 1988-2008 Microsoft Corporation Express Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)

Share this post


Link to post
Share on other sites

Então, você está tentando atachar uma base do SQL2008 em uma Versão Express (gratuita) por isso aparece esta mensagem de erro.

 

Tente executar a linha de comando do post #3 na sua instancia do SQL2012.

Share this post


Link to post
Share on other sites

Então, você está tentando atachar uma base do SQL2008 em uma Versão Express (gratuita) por isso aparece esta mensagem de erro.

 

Tente executar a linha de comando do post #3 na sua instancia do SQL2012.

Conseguimos abrir a partir de uma instância 2008 R2, porém para nossa surpresa o arquivo se encontra vazio. O que nos faz acreditar que pode ter ocorrido algum outro erro ou o tal arquivo está corrompido, pois estar vazio se torna estranho a partir do tamanho do programa.

 

 

:S

 

Share this post


Link to post
Share on other sites

Vazio em que sentido? sem dados na tabela? qual o tamanho do arquivo MDF?

Se bem que pode-se "setar" o tamanho do MDF mesmo sem ter dado algum.

Share this post


Link to post
Share on other sites

Vazio em que sentido? sem dados na tabela? qual o tamanho do arquivo MDF?

Se bem que pode-se "setar" o tamanho do MDF mesmo sem ter dado algum.

Sem tabelas, só as pastas Tabelas do Sistema e as FileTable vazias, o tamanho do arquivo .mdf é de 5.77mb.

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.