Jump to content

Archived

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

MEDIA

Tentando abrir um arquivo mdf

Recommended Posts

Galera meu primeiro post em SqlServer. Estou somente com o arquivo .mdf e não consigo recriar o arquivo de log pois ele apresenta um erro, como se fosse necessário o arquivo de .ldf que se perdeu, segue abaixo erro se alguém puder dar uma luz agradeço imensamente.

 

Inglês

 

File activation failure. The physical file name "D:\Databases\GWOLAP_log.ldf" may be incorrect.

The log cannot be rebuilt because there were open transactions/users when the database was shutdown, no checkpoint occurred to the database, or the database was read-only. This error could occur if the transaction log file was manually deleted or lost due to a hardware or environment failure.

Msg 1813, Level 16, State 2, Line 1

Could not open new database 'GWOLAP'. CREATE DATABASE is aborted.

 

Tradução

 

Falha de ativação de arquivo. O nome do arquivo físico "D: \ Databases \ GWOLAP_log.ldf" pode estar incorreta.

O log não pode ser reconstruído porque havia transações abertas / usuários quando o banco foi desligado, nenhum ponto de verificação ocorreu para o banco de dados ou banco de dados era somente leitura. Esse erro pode ocorrer se o arquivo de log de transações manualmente foi excluído ou perdido devido a uma falha de hardware ou ambiente.

Msg 1813, Level 16, State 2, Line 1

Não foi possível abrir novo banco de dados 'GWOLAP'. CREATE DATABASE é abortada.

Share this post


Link to post
Share on other sites

Media,

A pasta em questao existe?

 

Tente isso:

sp_attach_db e sp_attach_single_file_db: permitem attachar um arquivo .mdf para o SQL Server.

Na falta de um arquivo de log (.ldf), o SQL Server cria um novo arquivo de log.

 

Exemplo de uso:

EXEC sp_attach_single_file_db @dbname = 'BASE', 
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQLData\BASE.mdf' 

 

É um dos modos de se resolver. Simples e funcional. Se não der certo, poste a mensagem de erro e sua versão de SQL.

 

Abçs

 

 

Share this post


Link to post
Share on other sites

Amigo eu tentei fazer atráves de código como você havia dito mas ele continua apresentando o seguinte erro

Versão do SQL 2008 Express

Query

EXEC sp_attach_single_file_db @dbname = 'GWOLAP', 
@physname = 'C:\Base\GWOLAP.mdf'

 

Erro:

File activation failure. The physical file name "D:\Databases\GWOLAP_log.ldf" may be incorrect.

The log cannot be rebuilt because there were open transactions/users when the database was shutdown, no checkpoint occurred to the database, or the database was read-only. This error could occur if the transaction log file was manually deleted or lost due to a hardware or environment failure.

Msg 1813, Level 16, State 2, Line 1

Could not open new database 'GWOLAP'. CREATE DATABASE is aborted.

 

Esse caminho e muito menos o arquivos existem. Agradeço quem puder me ajudar.

Share this post


Link to post
Share on other sites

O erro persiste.. interessante.

Vamos a medidas drásticas :devil:

brincadeira.

Este erro se dá devido ao seu MDF ainda estar esperando por alguma transação.

Faça o passo a passo abaixo. Não pule nenhum item e se der erro post o log ok?!

 

1)

Crie uma base com o mesmo nome do MDF:

Altere a pasta que vai ficar os arquivos, caso seja o caso:

CREATE DATABASE GWOLAP
ON PRIMARY
( NAME = GWOLAP,
   FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\GWOLAP.mdf',
   SIZE = 1024,
   MAXSIZE = 2048,
   FILEGROWTH = 15% )
LOG ON
( NAME = GWOLAP_log,
   FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\GWOLAP_log.ldf',
   SIZE = 128MB,
   MAXSIZE = 2048MB,
   FILEGROWTH = 5MB ) ;
GO 

Verifique se o db esta criado corretamente.

 

2) Pare o serviço de SQL

3) Subistitua o arquivo MDF criado pelo que voce tem. Sim, pode substituir.

4) Reinicie o SQL

5) Verifique como esta o DB, deve estar SUSPECT, se nao tiver, não tem problema, o unico modo que nao pode estar é OFF-LINE

 

6) Rode o comando abaixo:

ALTER DATABASE GWOLAP SET EMERGENCY

O db vai ficar em modo emergency. Deste modo vai ser possível recuperar e vincular o LDF ao MDF.

 

7) rode o comando:

 DBCC CHECKDB (GWOLAP , REPAIR_ALLOW_DATA_LOSS) 

 

8) Voltar o DB ao modo ONLINE

ALTER DATABASE GWOLAP SET MULTI_USER
ALTER DATABASE GWOLAP SET ONLINE

 

9) Verifique se os dados estão ok.

 

Se algum item nao der certo, post o erro!

 

Abçs

Share this post


Link to post
Share on other sites

A.Jr me desculpe eu me enganei quando disse que a base era 2008, na verdade ela é 2000.

Utilizando o express 2008 eu consegui colocar ela em modo de emergência, só que na hora que dou o comando para reparar ele apresenta o erro informando que devo fazer um upgrade na base

Msg 946, Level 14, State 1, Line 1
Cannot open database 'GWOLAP' version 539. Upgrade the database to the latest version.

Ai fui tentar fazer o mesmo passo utilizando o sqlserver enterprise 8.0 que é o 2000, consigo criar a base certinho, faço a substituição do arquivo .mdf, mas quando vou colocar ela em modo de emergência ela diz que o comando é invalido

Incorrect syntax near 'EMERGENCY'

Queria saber se os códigos são diferentes para o 2000.

 

Acma, cara sou de Campinas mesmo, moro no Pq. das Universidades

 

Desde já agradeço imensamente.

Share this post


Link to post
Share on other sites

Para SQL2000 eu faria deste modo:

Tentativa um:

EXEC SP_ATTACH_DB ‘BASE’, ‘C:\BASE.MDF’

Aponte para o SEU MDF

 

Tentativa dois:

CREATE DATABASE BASE
ON
(
     NAME=‘BASE_MDF’,
     FILENAME=‘C:\BASE.MDF’
)
FOR ATTACH

Aponte para o SEU MDF E VERIFIQUE O NOME LOGICO DO ARQUIVO!

 

Tentativa tres:

DBCC REBUILD_LOG(‘EX’,‘C:\BASE.LDF’)

E, em seguida, executar:

DBCC CHECKDB(‘BASE’,‘REPAIR_ALLOW_DATA_LOSS’)

para verificar e corrigir erros de integridade:

 

 

São tres coisas distintas mas com a mesma finalidade: Recuperar o LDF a partir do MDF.

 

 

 

 

Share this post


Link to post
Share on other sites

Galera mesmo com todas essas dicas não estou conseguindo, estou utilizando os comandos que nosso amigo A.Jr me passou, mas não estou conseguindo dá erro na hora de compilar, estou disponibilizando a base online eu sei que é pedir muito mas se alguém pudesse me ajudar não precisa nem me mandar feito é só me explicar como foi feito.

Base SqlServer

Desde já agradeço ajuda de todos, galera eu não entendo de SqlServer, mas se alguém tiver alguma dúvida na área de Delphi, só postar no fórum que terei o maior prazer em ajudar.

Share this post


Link to post
Share on other sites

MEDIA,

em que parte deu erro???

Fez passo a passo? Tem que ser em SQL2000? Se for em 2008 faço pra ti numa boa, mas nao agora pq a net que tenho eh bloqueada, mas a noite eu faço...

O arquivo que dispobilizou eh um MDF somente?

 

O que eu posso fazer pra você, de momento, eh jogar em SQL2008, gerar txts com as tabelas (estruturas) e outro txt com os dados?

 

Pode ser?

Share this post


Link to post
Share on other sites

Nossa se você puder fazer isso, pois na verdade o que preciso é dos dados, pois quero exportar para outro banco.

Se puder fazer serei eternamente grato.

Share this post


Link to post
Share on other sites

Parece locura mas vou migrar uma base SqlServer para Firebird, pois o cliente vai utilizar um sistema que o banco é firebird.

Share this post


Link to post
Share on other sites

Sugestao minha e pessoal:

Instale o SQLExpress (2008) e migre por ele, ou por Impor/Export, ou por txt.

 

Devo conseguir fazer isso umas 19:00 ~ 20:00 da noite, pois eh o horario que vou estar em casa.

 

Eu posto os links e como fiz mais tarde.

 

Abçs e boa sorte

Share this post


Link to post
Share on other sites

Nossa falha minha estou postando arquivo de 22 mb

Banco

 

Valeu mesmo pela ajuda

 

 

 

Agora nao quero mais :hehehe:

já baixei e estou atualizando a base de dados.

 

Te passo em seguida um tutorial dos possiveis erros e solução!

 

 

Abçs

Share this post


Link to post
Share on other sites

A.Jr, você acredita que você consegue me enviar os arquivos. Desde já agradeço a sua ajuda amigo.

 

 

MEDIA,

 

hoje eu tive um problema pessoal e mal cheguei perto do PC.

Entre hoje e amanha eu posto, sem falta

1

 

Abçs

 

 

Share this post


Link to post
Share on other sites

MEDIA

soh para te dar um feedbak, estou tendo que instalar minha versao full do 2008 para ver se consigo restaurar sua base.

 

A cada momento é uma supresa (erro) diferente. No caso agora esta falando que minha versão é incompativel com sua base.

 

rodei os seguintes comandos (na ordem abaixo):

 

/*EXEC sp_attach_db @dbname = N'GWOLAP', 
  @filename1 = N'd:\GWOLAP.mdf', 
  @filename2 = N'd:\GWOLAP_log.ldf';
GO 
Msg 5120, Level 16, State 101, Line 1
Unable to open the physical file "d:\GWOLAP_log.ldf". Operating system error 2: "2(O sistema não pode encontrar o arquivo especificado.)".

*/
sp_attach_single_file_db 'GWOLAP', 'd:\GWOLAP.mdf' 


CREATE DATABASE GWOLAP ON
  (NAME = GWOLAP, FILENAME = N'd:\GWOLAP.mdf')
FOR ATTACH_REBUILD_LOG;
GO 


select name,state,state_desc from sys.databases  where  name='GWOLAP'
ALTER DATABASE GWOLAP SET EMERGENCY
select name,state,state_desc from sys.databases  where  name='GWOLAP'
ALTER DATABASE GWOLAP SET SINGLE_USER WITH ROLLBACK IMMEDIATE

DBCC CHECKDB('GWOLAP',REPAIR_ALLOW_DATA_LOSS)

/*
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"
*/

 

Esta deste jeito em minha tela, vamos ver se até na parte da tarde a gente resolve isso =D

 

Abçs

 

 

Share this post


Link to post
Share on other sites

×

Important Information

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