Como Migrar os bancos Master, Msdb e Model no SQL Server passo a passo

Artigo escrito por Otávio Freitas Teixeira. Processo passo a passo de Migração dos bancos de dados Master, Msdb, Model. O procedimento deve ser feito seguindo uma ordem. Primeiro deve-se migrar o banco master e depois o model, msdb e temp. O banco de dados temporário, segundo [1], deve ser direcionado o novo caminho. Pois cada vez que o serviço do banco de dados é iniciado o banco é reconstruído. Todas as ações em um ambiente cluster deve ser realizado em todos os nós participantes. Abaixo descreverei o passo-a-passo para migrar os bancos de dados no nó ativo, assim como configurar os nós passivos do cluster.

Pré – Migração em ambiente Cluster.

Antes de iniciar o processo de migração dos bancos de dados de sistema deve ser verificar se o novo disco faz parte do Grupo Cluster da instancia ao qual terá seus bancos migrados. No caso do disco não estiver presente no Grupo Cluster e não for dependente do serviço do SQL Server o erro abaixo é apresentado ao realizar o comando de mudança de localização dos arquivos de dados e logs. 1 Assim as seguistes ações devem ser realizadas:
  • Associar o disco ao Gupo Cluster
a - Identificar o Disco livre 2 b - Atribuir disco ao Grupo: Botão direito do mouse More Actions... Move this resource to another service or application 3 c - Escolher o Serviço do SQL Server que receberá o disco (No caso SQL Server (INSTANCEB)) clique em OK 4
  • Ajustar a dependência do disco com o serviço do SQL Server
a - Selecione na Coluna esquerda no item Services and Aplication o Serviço que teve o disco associado [No caso SQL Server (INSTANCEB) ] 5 b - Selecione o serviço do SQL Server 6 c - Clicar em Properties na coluna do lado direito (em amarelo) 7 9 d - Selecionar a aba Dependencies 10 e - Clicar em Insert, abrirá uma nova linha para selecionar o recurso. 11 Expandir o dropBox e selecionar o disco adicionado. 12 f - Clicar em Apply e OK
  • Nenhuma mensagem é emitida de confirmação da associação do disco

Para realizar a migração do banco de dados master.

  1. Acessar o banco de dados e executar o SQL abaixo para obter: nome lógico, caminho e status dos arquivos do banco de dados master.
SELECT name, physical_name AS CurrentLocation, state_desc

FROM sys.master_files

WHERE database_id = DB_ID('master');

GO
    2.  No menu Start Todos os programas Microsoft SQL Server 2008 Ferramentas de configuração SQL Server Configuration Manager.
    1. No item SQL Server Services, clique-direito no serviço (por exemplo, SQL Server (MSSQLSERVER)) e escolha
    2. Na caixa de diálogo da propriedade do SQL Server (nome_instancia), clique na aba Avançado.
    3. Editar o item Startup Parameters informando os novos caminhos dos arquivos de DADOS e LOGS, do banco de dados
      1. Mover o arquivo de log de erros é opcional.
-dY:MSSQL10.INSTANCEBMSSQLDATAmaster.mdf;-eY:MSSQL10.INSTANCEBMSSQLLogERRORLOG;-lY:MSSQL10.INSTANCEBMSSQLDATAmastlog.ldf
                         II. (-d) Caminho do arquivo de dados do banco de dados master                          III. (-e) Caminho do arquivo de erros do SQL Server                          IVI. (-l) Caminho do arquivo de log do banco de dados master.
  1. Stop na instancia do SQL Server.
    1. Na janela do Failover Cluster colocar o serviço do SQL Server offline. Botão direito mouse Take this resource offline
13
  1. Mover os arquivos mdf e master.ldf para o novo local.
  2. Start na instancia do SQL Server em modo master-only recovery com o seguinte comando no banco prompt de comando.
    1. Abrir o Command Prompt como
    2. Executar:
      1. Para instância default
        1. NET START MSSQLSERVER /f /T3608
      2. Para instância nomeada
        1. NET START MSSQL$INSTANCEB /f /T3608
      3. Acessar o banco em modo exclusivo SQLCMD –E –S
      4. Execute o seguinte comando que segue abaixo.
        1. Deve ser informado o novo caminho junto com o nome do arquivo *.mdf e *.ldf
        2. Modificar:
          1. Mssqlsystemresource Pelo nome do banco (No caso master)
          2. NAME=
  • FILENAME=
ALTER DATABASE mssqlsystemresource

MODIFY FILE (NAME=data, FILENAME= 'new_path_of_mastermssqlsystemresource.mdf');

GO

ALTER DATABASE mssqlsystemresource

MODIFY FILE (NAME=log, FILENAME= 'new_path_of_mastermssqlsystemresource.ldf');

GO
Mover os arquivos mssqlsystemresorce.mdf e mssqlsystemresorce.ldf para o novo local. 
  1. Saia do sqlcmd
    1. Comando
  2. Stop instância do SQL Server
    1. Para instância default
      1. NET STOP MSSQLSERVER
    2. Para instância nomeada
      1. NET STOP MSSQL$INSTANCEB
    3. Start instância do SQL Server na Janela do Failover Cluster. Botão direito Bring this resource online 
14
  1. Verifique se o banco de dados foi modificado com sucesso. Execute o SQL abaixo
SELECT name, physical_name AS CurrentLocation, state_desc

FROM sys.master_files

WHERE database_id = DB_ID('master');

GO

Para realizar a migração do banco de dados model.

  1. Executar a consulta abaixo:
SELECT name, physical_name

FROM sys.master_files

WHERE database_id = DB_ID(N'model');

GO
Alterar o caminho dos arquivos de dados e log do banco de dados com o comando abaixo.
ALTER DATABASE mssqlsystemresource

MODIFY FILE (NAME=data, FILENAME= 'new_path_of_mastermssqlsystemresource.mdf');

GO

ALTER DATABASE mssqlsystemresource

MODIFY FILE (NAME=log, FILENAME= 'new_path_of_mastermssqlsystemresource.ldf');

GO
Modificar o nome do banco de dados
  1. Informar o novo caminho.
  1. Stop na instância do SQL Server.
  2. Mover os arquivos de mdf e ldf do banco de dados model
  3. Start da instância do SQL Server.
  4. Executar novamente a consulta abaixo e verificar se o banco está como os caminhos corretos
SELECT name, physical_name

FROM sys.master_files

WHERE database_id = DB_ID(N'model');

GO

Para realizar a migração do banco de dados msdb.

  1. Executar a consulta abaixo:
SELECT name, physical_name

FROM sys.master_files

WHERE database_id = DB_ID(N'msdb');

GO
  1. Alterar o caminho dos arquivos de dados e log do banco de dados com o comando abaixo.
ALTER DATABASE mssqlsystemresource

MODIFY FILE (NAME=data, FILENAME= 'new_path_of_mastermssqlsystemresource.mdf');

GO

ALTER DATABASE mssqlsystemresource

MODIFY FILE (NAME=log, FILENAME= 'new_path_of_mastermssqlsystemresource.ldf');

GO
Modificar o nome do banco de dados
  1. Informar o novo caminho.
  1. Stop na instância do SQL Server.
  2. Mover os arquivos de mdf e ldf do banco de dados msdb
  3. Start da instância do SQL Server.
  4. Executar novamente a consulta abaixo e verificar se o banco está como os caminhos corretos
SELECT name, physical_name

FROM sys.master_files

WHERE database_id = DB_ID(N'msdb');

GO

Para realizar a migração do banco de dados tempdb.

Para o banco de dados tempdb não é necessário que o DBA movimente os arquivos de dados e log, pois toda vez que o banco de dados é inicializado esses arquivos são recriados no diretório configurado no parâmetro Startup Parameters. Assim deve-se apenas modificar os caminhos no catálogo.
  1. Executar a consulta abaixo:
SELECT name, physical_name

FROM sys.master_files

WHERE database_id = DB_ID(N'tempdb');

GO
  1. Alterar o caminho dos arquivos de dados e log do banco de dados com o comando abaixo.
ALTER DATABASE mssqlsystemresource

MODIFY FILE (NAME=data, FILENAME= 'new_path_of_mastermssqlsystemresource.mdf');

GO

ALTER DATABASE mssqlsystemresource

MODIFY FILE (NAME=log, FILENAME= 'new_path_of_mastermssqlsystemresource.ldf');

GO
Modificar o nome do banco de dados 
  1. Modificar o caminho lógico dos arquivos de dados e log do banco.
  2. Informar o novo caminho.
  3. Stop na instância do SQL Server.
  4. Start da instância do SQL Server.
  5. Executar novamente a consulta abaixo e verificar se o banco está como os caminhos corretos
SELECT name, physical_name

FROM sys.master_files

WHERE database_id = DB_ID(N'tempdb');

GO

As configurações abaixo devem ser realizadas nos nós participantes do Cluster

Configurando o SQL Server Agent
  1. Acessar Start run
  2. Digitar REGEDIT
  3. Acessar o diretório: HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Microsoft SQL Server / MSSQL10.
               a -    Modificar as chaves de registro, informando o novo diretório                              I - ErrorLogFile                              II - WorkingDirectory Configurando diretório de ErrorDump
  1. Acessar Start run
  2. Digitar REGEDIT
  3. Acessar o diretório: HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Microsoft SQL Server / MSSQL10.
a - Modificar as chaves de registro, informando o novo diretório                     I - ErrorDumpDir Configurando diretório de Backup
  1. Acessar Start run
  2. Digitar REGEDIT
  3. Acessar o diretório: HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Microsoft SQL Server / MSSQL10.
               a -   Modificar as chaves de registro, informando o novo diretório                     I -    BackupDirectory Configurando diretório de Replicação
  1. Acessar Start run
  2. Digitar REGEDIT
  3. Acessar o diretório: HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Microsoft SQL Server / MSSQL10.
                  a - Modificar as chaves de registro, informando o novo diretório                          I - WorkingDirectory Configurando diretório de Full Text
  1. Acessar Start run
  2. Digitar REGEDIT
  3. Acessar o diretório: HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Microsoft SQL Server / MSSQL10.
            a - Modificar as chaves de registro, informando o novo diretório                             I - FullTextDefaultPath                             II - SQLDataRoot Esse artigo foi escrito por Otávio Freitas Teixeira.