Boa tarde pessoal, nem sempre encontramos uma documentação completa dos procedimentos para migrar todas as bases de dados do TFS para um novo servidor, por isso resolvi escrever esse post.

Esse é um procedimento bem simples, então vamos ao passo-a-passo :

Primeira etapa: Migrar a base de configuração do TFS

  1. Entre no servidor do TFS e coloque as bases offline e depois pare os serviços do TFS. Nesse momento se no seu servidor de aplicação só tiver o TFS, basta para o IIS todo, caso contrário, pare apenas o site do TFS.
  2. Depois de parar o site do TFS, pode parar o TFS Job, para isso, vá configuração dos serviços do Windows e de um stop no serviço do TFS.
  3. Entre na máquina onde as bases do TFS estão e faça um backup de todas as bases, tanto as de configuração quanto as das Project Collections.
  4. Entre no novo servidor do SQL e faça um restore nas bases que você quer subir nesse servidor.
  5. Precisamos de um usuário de domínio que tenha permissão de Administrador no TFS. Porvavelmente você já tem essa conta que está apontando para o servidor antigo, por tanto podemos utilizar ela mesma. Caso você esteja em um amibente single server e utilizou apenas uma conta, siga o procedimento no link de instalação do TFS.
    Agora que vem a parte dificil, convencer o DBA que precisamos que esse usuário tenha permissão de sysadmin temporariamente, apenas para fazer uma configuração e depois podemos revogar esse acesso.
  6. Volte  para o Servidor onde está o TFS abra o command do Visual Studio e rode o seguinte comando:

    TFSConfig ChangeServerID
    /SQLInstance:NM_Novo_Servidor_Onde_Esta_Sua_Base_De_Configuracao 
    /DatabaseName:TFS_Configuration(ou o nome que você deu para a sua base de configuração)

  7. Depois de rearumar os IDs do novo servidor, para que não haja nada repetido, vamos registrar esse novo servidor no TFS, para isso execute o seguinte comando:

    TFSConfig PrepSQL
    /SQLInstance:NM_Novo_Servidor_Onde_Esta_Sua_Base_De_Configuracao
     

  8. Com esse comando, estamos falando para o servidor do TFS que ele poderá usar esse novo servidor. Agora precisamos remapear a base de configuração, para isso, execute o seguinte comando:

    tfsconfig remapdbs
    /sqlinstances::NM_Novo_Servidor_Onde_Esta_Sua_Base_De_Configuracao
    /databasename:Tfs_Configuration

  9. Agora, vamos arrumar o permissionamento das contas, para isso, execute o seguinte comando:

    TFSConfig Accounts
    /ResetOwner
    /SQLInstance:NM_Novo_Servidor_Onde_Esta_Sua_Base_De_Configuracao
    /DatabaseName: Tfs_Configuration

  10. E para finalizar, vamos registrar esse banco de dados, para isso, digite o seguinte comando:

    tfsconfig RegisterDB
    /SQLInstance:NM_Novo_Servidor_Onde_Esta_Sua_Base_De_Configuracao
    /databasename:Tfs_Configuration

  11. E pronto, agora o seu TFS está apontando para o novo servidor de banco de dados. Agora, para a felicidade do DBA, podemos revogar o acesso de sysadmin dado e deixar apenas como DB_Owner das bases do TFS.
  12. Inicie novamente o IIS ou o site do TFS e o serviço de JOB do TFS
  13. Entre no Console Administration e veja que o servidor já está apontando para o novo servidor de banco de dados. Agora só falta reconfigurar a(s ) das ProjectsCollections. Para isso selecione a project collection e clique para editar as configurações. Coloque no nome do novo servidor, salve e coloque a coleção on-line novamente. Faça isso para todas project collections que você tiver e pronto, sua migração estará completa.

Bom, esses são os passos necessários para a migração de servidor do SQL do TFS. Caso tenham alguma dúvida ou problema, deixe no comentário que responderei com o maior prazer.

Até a próxima.

Claudio Leite

Claudio Leite é consultor de ALM da Lambda3, Visual Studio ALM Ranger, PSD, PSM I e PSM II. Graduado em Ciência da Computação pela Universidade Católica de Petrópolis, MBA e POS-MBA em Gestão de Projetos pela Fundação Getúlio Vargas. Twitter: @claudiobernardo