O Azure DevOps Server é uma excelente ferramenta para o trabalho e colaboração de equipes de desenvolvimento, integrando controle de versão, gerenciamento de projetos e pipelines de CI/CD. Mas durante o longo uso de ferramenta podem ser necessários mauntenções, como a migração do banco para um novo servidor.
Embora a migração do banco de dados do Azure DevOps Server para um novo SQL Server seja tecnicamente simples, é uma tarefa crítica devido à importância do serviço, comumente este serviço é gerenciado por times de desenvolvimento, que não estão habituados aos processos de infraestrutura e, pela importância e criticidade deste serviço, é muito importante fazer a migração de forma precisa e rápida para a organização. Por isso vamos demonstrar como migrar o banco do Azure DevOps Server para um novo SQL Server em seu ambiente interno.
Separaremos nas seguintes etapas, a fim de deixar mais claro o que deverá ser feito para migrar os dados para um novo banco de dados MS SQL Server:
- Fazer o backup do banco de dados atual
- Alterar a conexão ao banco de dados
- Restaurar os dados para o novo banco
É importante que o processo descrito aqui seja executado com o usuário que foi instalado o Azure DevOps Server, este usuário também deve ter permissão no novo servidor de banco de dados para criar novas tabelas.
Fazer o backup do banco de dados atual
Abra o Azure DevOps Server Administration Console, configure o agendamento de backup em Scheduled Backups, selecione a opção Create Scheduled Backups. Preencha o caminho onde deve ser feito o backup (da forma como é proposto neste procedimento é necessário ser um caminho de rede, onde tanto este servidor e o servidor de banco de destino tenha acesso a essa pasta de rede) e clique em Next.
Na tela seguinte não é preciso marcar a caixa para enviar e-mail em caso de sucesso ou falha, apenas clique em Next. Na tela seguinte selecione Manual Backups Only e clique em Next.
Em resumo da configuração verifique se está tudo corretamente preenchido e clique em Next. O assistente executará rotinas de testes, se o teste finalizar com sucesso clique no botão Configure que será habilitado.
O guia vai realizar a configuração, após isso clicar em Next. Resumo do resultado da configuração, clicar em Close.
Para executar o backup, clique no link Take Full Backup Now. Aguarde o backup, na tela de sucesso clique em Close para fechar o Azure DevOps Server Administration Console.
Alterar a conexão ao banco de dados
Primeiramente, certifique-se de qual é o usuário utilizado no serviço do Azure DevOps Server (no Windows). Em seguida, garanta que este usuário tenha permissão no banco de dados SQL, onde será instalado e configurado o novo banco. Em seguida, abra o PowerShell como administrador e vá até a pasta onde está instalado o Azure Devops Server.
C:\
Cd Program Files\Azure DevOps Server 2020\Tools
Agora, para parar todos os serviços do AzureDevOps, execute:
.\TFSServiceControl.exe quiesce
Após todos os serviços parados atualize a string de conexão para o novo banco, executando o comando (alterando as partes em cinza, conforme sua realidade):
.\TfsConfig.exe registerDB /sqlInstance:NOME_DO_SERVIDOR/NOME_DA_INSTANCIA /databaseName:NOME_DA_DATABASE
Agora restaure novamente os serviços do Azure DevOps Server, executando o comando:
.\TFSServiceControl.exe Unquiesce
Agora abra o Azure DevOps Server Administration Console, vá na opção Application Tier e certifique-se de que a string de conexão esteja apontando para o novo servidor de banco. Clique no menu (lateral) Team Project Collection, clique na(s) collections existente e clique (embaixo) em Stop Collection (será necessário digitar uma justifica para a parada).
Ainda no menu (inferior) da collection, clique em Edit Settings, na tela que abrir preencha com o mesmo nome do servidor e instancia utilizado na linha de comando (deve existir o usuário no servidor de destino com a permissão para criar os bancos a serem migrados), execute o teste de conexão e (passando no teste com sucesso) clique em Save. Clique em Start Collection para inicializar a collection novamente.
Restaurar os dados para o novo banco
Agora, para restaurar o banco no novo servidor, abra o Azure DevOps Server Administration Console, vá em (no menu lateral) Scheduled Backups e clique em Restore Databases. No assistente de restauração informe o caminho onde foi salvo o backup, clique no link de List Backups, selecione o backup a ser restaurado e clique em Next.
Na tela seguinte confirme se os dados do banco estão corretos e clique em Next. Para confirmar o caminho e a data do backup que será restaurado, clique em Next e aguarde até a restauração finalizar com sucesso.
Fontes/Referências
https://azure.microsoft.com/pt-br/products/devops/server
https://learn.microsoft.com/en-us/azure/devops/server/command-line/tfsservicecontrol-cmd?view=azure-devops-2022
Mais Informações
Esperamos ter te ajudado e estaremos sempre a disposição para mais informações.
Se você tem interesse em algum assunto específico, tem alguma dúvida, precisa de ajuda, ou quer sugerir um post, entre em contato conosco pelo e-mail equipe@nvlan.com.br.