Detach e attach


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 ja estão acostumados com a utilização da linguagem T-SQL, segue o script abaixo para realizar esse procedimento só que via codigo.

/*
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

//CASO MUDE DE SERVIDOR TEREMOS QUE ALTERAR O CAMINHO
FILENAME = N'C:Program FilesMicrosoft SQL ServerMSSQL10.2MSSQLDATAOS.mdf' )
//ONDE O NUMERO 2 REPRESENTA OUTRO SERVIDOR

Anúncios

2 comentários sobre “Detach e attach

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s