Rotinas de Migração de Servidores
OBJETIVO GERAL
Este documento define um arcabouço descrevendo o conjunto de tarefas necessária para a execução correta da atividade de migração de servidores no período de testes. As etapas descritas a seguir foram planejadas de acordo com as ferramentas e tecnologias utilizadas e empregadas atualmente na organização.
OBJETIVOS ESPECÍFICOS
Este documento tem como objetivos específicos os seguintes desafios:
- A definição das etapas de migração de maneira genérica, possibilitando sua utilização em outros cenários (servidores);
- Disponibilização do conhecimento, permitindo que demais membros da SETIC possam ter ciência do processo.
São desejadas ainda a identificação de melhorias no processo.
ETAPAS DA MIGRAÇÃO
-
PREPARAÇÃO
- [CAGD] Definição da data de migração de acordo com período de validade das licenças;
- [INFRA] Solicitar criação de novo ambiente e alinhamento da data e horário de migração;
- [CAGD] Conferir recursos dos novos ambientes;
- [CAGD] Informar Gerência da proximidade da migração;
- [CAGD] Divulgação aos afetados da indisponibilização dos serviços relacionados para manutenção;
De posse do acesso ao novo ambiente, testado e com os requisitos de hardware iguais ou maiores ao ambiente antigo, não sendo declarado nenhum impedimento por parte da gerência e nem demais afetados, estão cumpridos os requisitos para dar inicio a etapa 2.
Com o intuito de minimizar o impacto durante o procedimento, recomenda-se a realização da etapa 2 após as 14h00.
A etapa de execução e disponibilização necessita de atuação por parte da equipe de Infraestrutura da SETIC, sendo indispensável o alinhamento e atribuição de responsável antes do inicio do procedimento.
-
EXECUÇÃO
- [NOVO] Instalação e Configuração do SQL Server (criar passo a passo)
- [ANTIGO] Parar serviço do SGBD;
É fundamental parar o serviço antes de realizar os backups para garantir a consistência dos dados. ( DOCUMENTAÇÃO OFICIAL )
- [ANTIGO] Realizar backup das bases;
- [INFRA] Mover disco com as bases;
- [NOVO] Atachar bases;
- [NOVO] Utilização de Script para gerar Attach e Detach
- [ANTIGO] Parar serviço do SGBD;
- [NOVO] Instalação e Configuração do SQL Server (criar passo a passo)
/**
************ Script gerar Attach automático
**/
use master;
alter function fn_geraScriptAtach
(@nome varchar(500),
@mdfname varchar(500),
@mdfcaminho varchar(500),
@ldfname varchar(500),
@ldfcaminho varchar(500))
returns varchar(max) as
begin
return ('CREATE DATABASE [' + @nome + '] ON ' +
' (name=''' + @mdfname + ''', FileName=''' + @mdfcaminho +'''), '+
' (name=''' + @ldfname + ''', FileName=''' + @ldfcaminho + ''') ' +
' FOR ATTACH;');
end
SELECT
dbo.fn_geraScriptAtach(db.name,mdf.name, mdf.physical_name, ldf.name, ldf.physical_name) as script
FROM sys.master_files AS mdf
inner join sys.master_files AS ldf
on mdf.database_id = ldf.database_id
inner join sys.databases db
on ldf.database_id = db.database_id
WHERE mdf.physical_name like '%.mdf'
and ldf.physical_name like '%.ldf'
and ldf.database_id > 4
--and ldf.database_id <> 66 -- treinamento.sei
/**
************ Script gerar Detach automático
**/
SELECT CONCAT(' ALTER DATABASE [',
b.name,
'] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; EXEC sp_detach_db ''',
b.name,
''', ''true''') as script
from sys.master_files a
inner join sys.databases b
on a.database_id = b.database_id
where a.database_id > 4
and physical_name like '%.mdf'
-
DISPONIBILIZAÇÃO
- [INFRA] Solicitar a alteração do endereço de IP da maquina para a Infra;
- [NOVO] Inicializar serviço do SGBD;
- [NOVO] Validar retorno das aplicações dependentes;
- [CAGD] Informar a finalização do processo de manutenção;
CRONOGRAMA
CONSIDERAÇÕES
Pode ser interessante a criação de um documento destacando os personagens envolvidos, as atividades por data, a lista de aplicações que precisa ser instalada e configurada, e o plano de reversão.
/**
********************* Script gerar Attach automático
**/
use master;
alter function fn_geraScriptAtach (@nome varchar(500), @mdfname varchar(500), @mdfcaminho varchar(500), @ldfname varchar(500), @ldfcaminho varchar(500)) returns varchar(max) as beginreturn ('CREATE DATABASE [' + @nome + '] ON ' + ' (name=''' + @mdfname + ''', FileName=''' + @mdfcaminho +'''), '+ ' (name=''' + @ldfname + ''', FileName=''' + @ldfcaminho + ''') ' + ' FOR ATTACH;');end SELECT dbo.fn_geraScriptAtach(db.name,mdf.name, mdf.physical_name, ldf.name, ldf.physical_name) as script FROM sys.master_files AS mdf inner join sys.master_files AS ldf on mdf.database_id = ldf.database_id inner join sys.databases db on ldf.database_id = db.database_idWHERE mdf.physical_name like '%.mdf' and ldf.physical_name like '%.ldf' and ldf.database_id > 4 --and ldf.database_id <> 66 -- treinamento.sei
## Script para gerar os detachs
SELECT CONCAT(' ALTER DATABASE [', b.name, '] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; EXEC sp_detach_db ''', b.name, ''', ''true''') as scriptfrom sys.master_files a inner join sys.databases b on a.database_id = b.database_idwhere a.database_id > 4and physical_name like '%.mdf'