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.

NVLAN - Consultoria