Movendo bancos de dados de sistema

      Nenhum comentário em Movendo bancos de dados de sistema

Às vezes surge a necessidade de alterar a localização física dos arquivos de banco de dados, ou por um upgrade no servidor (novo disco) ou simplesmente por questão de organização da infra.

Num caso deste, não podemos simplesmente fazer um backup e seguir numa restauração destes bancos para alterar o path. Se for necessário fazer algo assim, o detalhe fica com o banco master, que para restauração é necessário subir o serviço de servidor de banco de dados em modo single user.  Em outro artigo entrou em detalhes sobre este procedimento.
A propósito, lembro aqui que o banco “tempdb”  é o único que não necessita de backup.
Bem, vamos lá.

Lembre-se:
Todo procedimento aqui descrito deve ser feito por um dba, não me responsabilizo por qualquer problema que possa ocorrer. O banco de dados “master” é o banco de dados dos bancos de dados, o coração do sql server.

Primeiro, identifique a localização física da localização dos atuais arquivos de bancos de dados de sistema.
São no mínimo 8, master, model, msdb e tempdb, cada um deles divididos no mínimo em dois – dados e transaction log.

Feita esta identificação, pare o serviço do servidor de banco de dados.
Para isto, SEMPRE utilize o “Sql Server Configuration Manager”.

Copie no mínimo estes 8 arquivos citados acima para o novo local, assim que serviço estiver parado.

Propriedades Sql Server Configuration Manager

Propriedades Sql Server Configuration Manager

O próximo passo é apontar para o arquivo do banco de dados “master”.
Então, vá na aba “advanced”, que fica localizada na janela do “Sql Server Configuration Manager” (local onde você parou o serviço).
Em “Statup Parameters”, ajuste os parâmetros do caminho das novas localizações, onde:
. -d (caminho do arquivo de dados do banco);
. -e (caminho dos arquivos de log de erros);
. -l (caminho do arquivo de transaction log do banco).

Após este acerto, dê um “apply” e “ok”.
Inicie novamente o serviço de banco de dados.

Abra o Sql Server Management Studio, verifique se o banco de dados Master está utilizando os arquivos nos novos locais.
Agora é necessário alterar também os caminhos dos arquivos dos outros bancos de sistema.
Ainda no Sql Server Management Studio, abra uma nova query e execute os comandos:


-- Para listar os caminhos e nomes de arquivos de bancos ++ OBSERVE COM CUIDADO as informações apresentadas.
SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
WHERE database_id = DB_ID('tempdb');
GO


-- Para alterar o caminho do arquivo de banco de dados, baseados no resultado do script anterior em relação ao novo path.
USE master;
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdata, FILENAME = 'D:systems dbstempdb.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = 'D:systems dbstemplog.ldf');
GO

(Executar o mesmo procedimento para os bancos “model” e “msdb”)

Após todas as alterações pelo script, reiniciar o serviço.
Certifique-se após o término destes procedimentos se todos os bancos de sistemas estão nos devidos locais.
Se for necessário, altere o caminho dos logs do Sql Server agent, em “Error Logs”, botão do lado direito do mouse e “Configure”.

Deixe uma resposta