Movendo Arquivos de Banco de Dados

Posted on março 14, 2011

2


 

Vejamos o seguinte problema:

Um novo disco de 100 GB foi colocado pelo administrador de redes no servidor de banco de dados.É necessário mover os arquivos do banco TestMove para o novo disco instalado.  Como fazemos isso? Realize o seguinte script….

USE testemove

GO

 

Informações de Localidade dos Arquivos.

SELECT  name, physical_name, type_desc

FROM sys.database_files

image

Sabendo a localidade dos arquivos, agora temos que colocar o banco de dados em um estado em que ningúem consiga acessá-lo

USE master

ALTER DATABASE testemove

SET OFFLINE

 

Alterando a localidade dos arquivos.

ALTER DATABASE testemove

MODIFY FILE

      (NAME = testemove,

–Nova Localidade do Arqvuivo

       FILENAME = ‘C:\temp\testemove.MDF’)

GO

ALTER DATABASE testemove

MODIFY FILE

      (NAME = testemove_log,

–Nova Localidade do Arqvuivo

       FILENAME = ‘C:\temp\testemove_log.LDF’)

 

 

Nesse momento falamos  para o SQL Server que os arquivos desse banco de dados se encontram nesse novo diretório, mais de fato eles ainda não estão. Se tentarmos mover esses arquivos, não será possível, porque o SQL Server realiza um lock exclusivo para todos os arquivos dos banco de dados que ele possui.

 

Temos que realizar algumas configurações no banco de dados, quando temos antivírus na empresa.Os antivírus podem pegar o lock exclusivo da base de dados, para realizar algumas verificações nos arquivos, causando que a base entre em suspect.

 

Motivos para uma base entrar em modo suspect

  • O banco de dados pode ter sido corrompido.
  • Náo há espaço disponível para o SQL Sever inicializar as bases de dados.
  • Os arquivos dos bancos de dados podem estar inacessíveis.
  • Os arquivos de banco de dados estão em lock por outro aplicativo.
  • “Not Clean Shutdown” – Desligamento da máquina não esperada.

Quer saber como configurar sua instância de banco de dados tendo algum antivírus em sua empresa, utilize esse KB.

http://support.microsoft.com/kb/309422

 

Para que seja possível você mover os arquivos do banco de dados para um novo diretório, você tera que parar a instância do SQL Sever.

 

Fazendo isso, mova os arquivos para o novo diretório, e inicie a instância. Depois você terá que colocar a base de dados em modo que todos os usuários possam acessá-la, sendo assim utilize:

 

USE master

GO

ALTER DATABASE testemove

SET ONLINE

 

Veja os arquivos em sua nova localidade

SELECT  name, physical_name, type_desc

FROM sys.database_files

image

 

Pronto, agora seus se encontram na novo local desejado.

 

Luan.Moreno

Posted in: Script's