четверг, 24 февраля 2011 г.

Восстановление коллекции TFS из неотсоединённой базы коллекции

Для того, чтобы без проблем перенести базу колекции TFS на другой сервер, нужно:
1. отсоединить коллекцию (detach collection) в консоле администрирования TFS;
2. Отсоединить файлы базы данных коллекции на SQL-сервере. 
3. Перенести их на другой сервер и присоединить эту базу данных на SQL-сервере.
4. Присоединить коллекцию в консоли администрирования TFS и запустить её.

Иногда бывают сложности с 1-м шагом. Коллекцию не всегда можно отсоединить в консоли администрирования TFS, это случается по разным причинам. Но мы можем развернуть на другом сервере и базу неотсоединённой коллекции.

Если мы не можем выполнить шаг 1, тогда нам необходимо выполнить следующую команду в командной строке вместо шага 4:
TFSConfig Recover /ConfigurationDB:SQLServer\InstanceName;TFS_ConfigurationDBName /CollectionDB:SQLServer\instanceName;TFS_CollectionDBName


Пример для следующих исходных данных
  SQL-сервер: QServ
  Instance: MSSQLSERVER (по умолчанию)
  Конфигурационная база TFS: TFS_Configuration
  База TFS-коллекции: TFS_Test

Команда:
TFSConfig Recover /ConfigurationDB:QServ\MSSQLSERVER;TFS_Configuration /CollectionDB:QServ\MSSQLSERVER;Tfs_Test

Обязательно проверьте права доступа своей учётной записи. Например, учётная запись любого уважаемого администратора TFS :) должна удовлетворять следующим условиям:
- находится в списке администраторов в консоли администрирования TFS;
- находится в локальной группе Administrators на сервере;
- иметь роль sysadmin на SQL-сервере.