Essa semana surgiu a necessidade de migrar alguns bancos do servidor antigo para o novo Servidor de SQL Server, então além do backup de segurança utilizei uma opção bem legal que o SQL Server nos fornece o detach e attach.
Com a opção de detach e attach podemos mover ou copiar as bases idênticas do antigo servidor para o novo.
A opção detach retira o vinculo do banco selecionado com a instância do SQL Server, e a opção attach realiza o vinculo com a instância do SQL Server.
Para que possamos realizar tanto o detach como o attach teremos que ter certeza que os usuários não estejam conectados a este banco, que nenhum job esteja sendo executado e que nenhuma atualização esteja acontecendo nesse momento.
Segue as telas como exemplo:
Devemos selecionar a opção Tasks–>Detach.
Em seguida irá aparecer a seguinte tela :
Como relatei no texto devemos ter certeza que ninguém esteja conectado ao banco, para resolver esta situação devemos marcar a opção Drop Connections, para finalizar todas as conexões a esse banco. A opção Update Statistics é para atualizar todas as informações do SQL sobre como índices Etc.
Agora o vinculo do banco OS com a instância do SQL já não existe, podemos ver que o banco já não esta disponível na lista abaixo.
Agora já podemos ir no diretório onde esta armazenado o banco e mover ou copiar os arquivos com extensão .mdf, se sua instalação do SQL Server foi default então seu banco estará no diretório a seguir:
C:Program FilesMicrosoft SQL ServerMSSQL10.AMSSQLDATAOS.mdf
Agora vamos mover ou copiar a base para o novo Servidor colocando o arquivo OS.mdf no diretório onde o DBA ou Administrador habilitou na instalação do SQL Server.
Se a instalação foi default então o diretório que o SQL Server esta utilizando para armazenar as bases é o mesmo do diretório anterior só que estará localizado no Servidor (SRV02).
SRV02
C:Program FilesMicrosoft SQL ServerMSSQL10.AMSSQLDATA
Após copiar iremos para o nosso SQL Server no SRV02 e com o botão direito do mouse na opção Databases iremos clicar em Attach, depois na opção Add iremos no diretorio onde esta armazenado o banco, selecionamos o banco OS.mdf em seguida Ok –> Ok e ja estaremos com o banco no novo Servidor (SRV01) pronto para ser utilizado.
Segue a sequência das telas para auxiliar o entendimento do processo!
Para aqueles que já estão acostumados com a utilização da linguagem T-SQL, segue o script abaixo para realizar esse procedimento só que via código.
/*
Descrição: Processo de DETACH E ATTACH em T-SQL
*/
--—————————> DETACH (REMOVER) ATTACH (ADICIONAR)<—————————
USE [master]
GO
CREATE DATABASE [OS] ON
( FILENAME = N'C:Program FilesMicrosoft SQL ServerMSSQL10.AMSSQLDATAOS.mdf' ),
( FILENAME = N'C:Program FilesMicrosoft SQL ServerMSSQL10.AMSSQLDATAOS.ldf' )
FOR ATTACH OU FOR ATTACH_REBUILD_LOG --CASO QUEIRA RESTAURAR O LOG DE TRANSAÇÕES
GO
SQL