terça-feira, 9 de outubro de 2012

Alterando diretório do MDF ou LDF no SQLServer 2008

Se você precisar alterar um arquivo de dados ou Transaction Log de diretório, isso pode ocorrer por diversos motivos, pelo simples fato de uma padronização e organização de arquivos, para ganho de performance, quando coloca-se arquivos de dados (MDF ou NDF) dos arquivos de Log (LDF).

Execute a query abaixo e anote o nome lógico do arquivo que vamos alterar de diretório/pasta:

USE AdventureWorks
sp_helpfile
Verifica se tem conexões ativas no banco de dados:

USE master
SELECT * FROM sys.sysprocesses WHERE dbid = DB_ID ('AdventureWorks')

Fecha as conexões ativas no banco de dados:
ALTER DATABASE AdventureWorks SET OFFLINE WITH ROLLBACK IMMEDIATE


Atenção: Antes de colocar o banco em estado offline, verifique se o usuário que está usando para logar SQL Server tem permissões para logar em outro banco de dados, além desse que sera colocado em Offline. Se o banco default for o que vamos colocar Offline, devemos colocar alterar a opção Connect to database para outro banco que ele tenha acesso.
Documento isso, pois não sabia desse processo e estava tentando logar no banco de dados default (que estava offline), logo o SQL Server me retornada o error 4094
Agora vamos colocar o banco de Offline: Tasks >> Take Offline
Ok, agora o banco está em estado Offline.
Após mover o arquivo MDF ou LDF, execute a seguinte query. Essa query fala para o SQL Server alterar o banco AdventureWorks, modificando a localização do arquivo. Em NAME vamos informar o nome lógico do arquivo que pegamos no primeiro passos desse procedimento.
USE MASTER
GO
ALTER DATABASE AdventureWorks MODIFY FILE (NAME = 'AdventureWorks_Log'

FILENAME ='D:\LogsSQLServer\AdventureWorks_Log.ldf') GO
Agora, colocaremos o banco novamente Online.
Para verificar se a mudança foi feita corretamente, execute novamente a query abaixo e note o novo caminho do arquivo de LOG

USE AdventureWorks
sp_helpfile

Nenhum comentário:

Postar um comentário