Blog do Cristiano

Porque criar Sistemas também é Arte.


1 comentário

Atachando um arquivo de Banco de dados MDF sem o Arquivo de Log no SQL Server

Olá a todos.

Após um pequeno tempo sem escrever no Blog, trago mais um artigo com uma necessidade que tive e então, resolvi compartilhar.
Recentemente necessite anexar um Banco de dados no Servidor SQL Server que trabalho, porém, somente foi entregue para mim o arquivo MDF e sem o arquivo de LOG para que eu pudesse atachá-lo junto.
Para enfatizar este artigo, usarei como exemplo o arquivo MDF sem os LOGs da base de Dados AdventureWorksDW2012, que por sua vez pode ser baixado no seguinte endereço:
– AdventureWorksDW2012: http://msftdbprodsamples.codeplex.com/downloads/get/165405

Normalmente faríamos este processo utilizando as seguintes sequências de telas:
Imagem01
Figura 1 – Selecionando a Opção de Attach no Banco de Dados

Imagem02
Figura 2 – Selecionando o arquivo MDF do Banco de dados que iremos atachar.

Desta forma, ao selecionarmos nosso banco de dados, conforme veremos na Figura 3 abaixo, o mesmo somente terá o arquivo MDF sendo informado, onde, para o Arquivo de Log, aparece uma mensagem ao lado direito da indicação do caminho do arquivo, informando que o mesmo não fora localizado.

Se tivéssemos o arquivo LOG disponível no computador/servidor, bastaria somente informarmos seu local de origem.

Imagem03

Figura 3 – Apresentando o arquivo MDF sem o Log informado.

Para resolvermos este problema, poderemos agir de duas formas, sendo a primeira:

– Removendo via Tela do SSMS a informação do arquivo de Log, selecionando o mesmo na tela que estamos utilizando para atachar o arquivo, conforme a Figura 4 demostra.

Imagem04

Figura 4 – Removendo o arquivo de Log pelo SSMS

– Executando uma query com a Procedure sp_attach_single_file_db, que espera receber dois parâmetros:

  • @dbname nvarchar(128): Nome do Banco de Dados
  • @physname nvarchar(260): Caminho de origem do arquivo MDF do Banco de Dados

No final, a query será interpretada da seguinte forma:

EXEC sp_attach_single_file_db @dbname=’AdventureWorksDW2012′,@physname=’D:\Software\SQL Server\MSSQL11.SQLBI01\MSSQL\DATA\AdventureWorksDW2012_Data.mdf’

GO

Imagem05

Figura 5 – Executando a query que irá atachar o banco de Dados AdventureWorksDW

Após, o banco de dados será criado e já estará disponível no SSMS, conforme Figura 6 abaixo.

Imagem06

Figura 6 – Banco de Dados criado e disponível no SQL Server

Só como Observação, este bancp de Dados do AdventureWorksDW é um modelo utilizado nos estudos do ambiente de BI da Microsoft, estando também disponível na versão do SQL Server 2008 R2.

Bons estudos.