Quando fazemos migração de versão ou um update no Team Foundation Server é comum momentos antes executarmos um backup full da base de dados, porém quando temos uma base muito grande o tempo do backup acaba ultrapassando 30 minutos e a ferramenta do TFS corta o feedback visual e te dá uma outra maneira de acompanhar o processo. Porém ela não é muito amigável. Mas felizmente desde a versão 2005 do MS SQL Server temos uma feature chamada Dynamic Management Views (DMV), e com ela temos uma outra maneira de acompanhar o backup.

Backup no TFS

Configuração

Sempre é bom lembrar que para realizar o backup no TFS é recomendável o uso da ferramenta no Administration Console (1). É possível criar facilmente uma rotina de Schedule Backup (2), que atende, senão todos, a maioria dos cenários. Siga a documentação para maiores detalhes. A ferramenta executa procedimentos que se não forem feitos pode invalidar o backup e não será possível fazer restore.

2016-05-22 22_20_31

É altamente recomendável executar testes de disaster recovery regularmente, garantindo assim a restauração do ambiente em caso de falha

Bases adicionais

Normalmente o TFS acaba tendo um servidor de banco de dados exclusivo. E outras ferramentas de ALM podem utilizar esse servidor, como um serviço de Nuget privado ou mesmo o Release Management. Não se esqueça de adicionar essas bases ao seu processo de backup. Você pode incluí-las neste procedimento.

2016-05-22 22_11_55

Backup Full

Mesmo com os backups agendados, antes do upgrade ou update, tirar um backup full garante que foi armazenado com segurança as últimas transações executadas no TFS.

O Backup Full é executado baseado nas configurações do Scheduled Backup, portanto é necessário configurá-lo e adicionar Reporting Services ou bases do Sharepoint

Execução

Após clicar no link ele irá preparar o backup e executar em seguida.

2016-05-22 22_03_56-Greenshot

Passando os 30 minutos a janela irá fechar e será recomendados acompanhar o job através da tela de monitoramento. Porém, como ela não é tão amigável vamos usar uma instrução Dynamic Management Views (DMV) para dar um feedback melhor, através do SQL Management Studio.

Conecte-se no servidor do MS SQL Server através da ferramenta e abra uma janela para executar uma query, copie, cole e clique em Execute.

SELECT session_id as SPID, command, a.text AS Query, start_time, percent_complete, dateadd(second,estimated_completion_time/1000, getdate()) as estimated_completion_time 
FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a 
WHERE r.command in ('BACKUP DATABASE','RESTORE DATABASE')

2016-05-22 22_07_00-Greenshot

No destaque da imagem acima é possível ver a hora de início e de fim do backup, e principalmente o percentual executado, dando uma noção de quanto tempo irá levar a tarefa.

(Cross-post de http://egomesbrandao.com.br/2016/05/23/monitorando-um-backup-full-na-base-de-dados-team-foudation-server/)

Emmanuel Brandão